NOTE: Although some of these reviews refer specifically to PC-lint or FlexeLint,
the functionality of the two products is identical.
Reviews and Awards
Like all good tools, PC-lint provides ways to
easily disable any of its checks that you donít
consider valuable. So donít be put off if a small
number of the checks PC-lint performs are not to
PC-lint is exceptionally good at identifying unused fields and
variables. Before you think the Microsoft tools identify unused
variables sufficiently well, consider that Visual Studio with /W4
only catches unused local variables. If you have an unused
static variable, global variable or structure member, neither the
MS VC compiler nor PREfast will flag them; But PC-lint will
identify them for you. In many cases I find that an
unreferenced variable means that a piece of code is missing.
There had to be a reason you declared the item in the first place, right? So what was it?
Another area that PC-lint checks is compatibility of variables in
expressions. A number of these can show up as integer
overflow or underflow problems and lead to security holes or
crashes. The Microsoft tools do some of this, but PC-lint is
outstanding in finding potential problems such as mixing signed
and unsigned variables in the same expression. PC-lint applies a
stricter set of tests for loss of precision and loss of sign than
Don Burn, "
Guest Article - Another Look at Lint",
The NT Insider (Page 12), March-April 2013
Fortunately, one great version of lint is still available
today for all platforms. That is PC-lint from Gimpel Software. The
Unix version is called FlexeLint.
At $239 per seat. PC-lint is the best bargain in software development
tools this side of open source. It catches
just about all suspicious C and C++ code. After you've configured it
to fit your style, it delivers jewels.
For this review, I prepared a small C file with obvious bugs in
it and asked each vendor to run it at the most
sensitive bug-sniffing levels. Coverity, due to its
detection philosophy, found zero; Klocwork found five.
PC-lint generated 15 warnings. Here, however, is the critical
difference. Only PC-lint correctly identified a miscoded function
call. All vendors agreed this call could generate a null-pointer
exception, which is a showstopper in C and C++ and a specific target
of the reviewed suites.
Lint is particularly useful for locating a bug in code that compiles
correctly -- syntactically correct code that does not behave as
expected almost always has an error that lint will catch.
"Lint traps bugs at compile time",
InfoWorld, January 30, 2006
ALOA (short for
A Lint Output Analyzer) is a tool that processes output
generated by PC-lint and computes various useful metrics
that give a quick overview of the internal quality of any
C/C++ project. Furthermore, it shows which kind of
Lint issues are most frequently encountered and highlights
issue-laden modules. The metrics produced by ALOA are
useful for tracking a project's lint compliance and for
fine-tuning Lint policies.
ALOA is a simple yet powerful tool, particularly for
introducing PC-lint to ongoing C/C++ projects.
It quickly gives an overview of all encountered Lint
issues, helps monitor a project's Lint quality over
the course of time, and pinpoints troublesome modules.
I have successfully used ALOA on various projects,
ranging from extremely resource-constrained embedded
systems to GUI-based desktop systems. In all
cases, PC-lint and ALOA have jointly helped reducing
Ralf Holly, "Lint Metrics &
ALOA", C/C++ Users Journal, June 2004
On my current project the uninitialized value was
often valid because a fluke of the memory map meant
that the location of x was the same on each call
and that the variable picked up the value of x from
the previous call. So every time I examined x with
the debugger, it looked reasonable. Thus the worst value
for an uninitialized variable to take is the correct value,
since that's the value that makes the bug hardest to spot.
While your compiler is unlikely to warn you when some paths fail to
initialize the value, the PC-lint tool from Gimpel Software
will. This particular warning has saved my skin a couple of
times. PC-lint can output an avalanche of warnings, however,
making it difficult to assess which ones represent real bugs
and which are identifying bad style. When this happens I do
a quick search for certain warnings. The warning of uninitialized
values almost always represents a real problem in the code.
Niall Murphy, "Start me up",
Embedded Systems Programming, April 2004
Lint is a program that examines the source code and
identifies suspicious areas. It's like a compiler's syntax
checker on steroids. Only Lint is smart enough to watch
variable and function usage across multiple files. Compilers
can't do that. For a fraction of the cost, aggressive Lint
usage picks out many problems before debugging starts. Lint
all source files before doing code inspections.
Gimpel sells one for $239. It's up to you to buy it and to
ensure your engineers use it on all new code. Lint
is annoying at first, often initially zeroing in on constructs that
are indeed fine. Don't let that quirk turn your people
off. Tame it, and then reap great reductions in debugging times.
Debugging eats 50% of most projects' schedules. The average
developer has a 5 to 10% error rate. Anything that trims
that rate even a smidgen saves big bucks.
Jack Ganssle, "Firmware basics for the boss, part 2",
Systems Programming, March 2004
I've used PC-lint on projects ranging from 100,000 to 200,000
lines of C++ source code and have always run across bugs that otherwise would
have been extremely hard to find and fix.
I present a report generator that
reads in all the PC-lint messages generated from all the files in the project,
and then displays them organized into user-specified categories. This
gives you an overview of the state of the project, and helps you decide which
are the most important messages to deal with first. It also encourages
the use of PC-lint for project management.( See pclint.txt
and pclint.zip )
Jon Zyzyck, "A Report Generator for PC-lint",
Dr. Dobb's Journal, Feb. 2003
Static source-code analysis tools explore your source code, hunting for
bugs, somewhat like an automated code inspection. Lint is one of the
oldest and most valuable static source-code analysis tools for C
software The principle difficulty here is that lint churns out volumes
of output, and only a small subset of this output reflects real errors.
To combat this verbosity, I purchased FlexeLint from Gimpel Software because
this version of lint can suppress specific warnings and operates well on C++
source code. After a few weeks of experimenting, I crafted a set of lint
rules with an extremely good signal-to-noise ratio. Running lint in this
fashion quickly yielded 1843 defects. The first
lint configuration file presents a list of lint rules that are good at
identifying real defects.
This configuration file is intended to help with
manual code inspections by identifying common C++ coding errors, potential
memory leaks, and common coding standards violations.
The second lint configuration file is a subset of the
previous file; this file checks
for blatant and serious errors. The second lint configuration file
should produce a clean run on any code that is submitted into the source-code
repository. These configuration files do not use the full power of lint
since some legitimate errors are suppressed in favor of producing high
signal-to-noise output. This technique works by asking lint to suppress
all warnings, then only turning on the select few that you are scanning for.
I recommend performing a selective static analysis (using a properly
configured lint or equivalent) since it offers the biggest bang in the
shortest time period.
Kevin Smith, "Automated Defect Identification"
Dr. Dobb's Journal, Feb. 2003
The first thing that needs to be stated is that
PC-lint is a far cry from the lint of days gone by. Under Gimpel's
direction, PC-lint has evolved into a powerful static analysis tool focused on
the C and C++ languages
To my surprise the error wasn't what I had
expected at all. In fact, PC-lint found a case where I'd been bitten
with a cut and paste bug, and actually could dereference a NULL pointer.
Ooops. In fact, I found this same bug (in the, ahem, same code sequence)
in two different places. Well done, PC-lint! I must remember to
log a bug against myself for this.
PC-lint also found a couple of solid cases in
the drivers we tested where there was a path through a complicated function
that could result in the function trying to return the value from an
Checking the code I discovered that the variable
in question ("ntStatus") held the return value for the function.
This is clearly a nasty error, and PC-lint found it. In fact, PC-lint
found a couple of these during our tests, as well as a couple of cases where a
potentially uninitialized variable was being tested in if statements.
The reason we all, including you, are grateful to Udo [Eberhardt]
is that he has taken the time to send us a nice clean, set of control and configuration
files for running PC-lint on Windows drivers. He has even
zipped up these files with some comments and a sample driver to demonstrate
PC-lint's use on a real project.
"All About Lint -- PC-lint and Windows Drivers"
The NT Insider, Sept-Oct 2002
Gimpel PC-lint 8.00 (Lint) is arguably one of the most powerful, and yet
daunting tools for C/C++ programmers. ... The latest version of Lint doesn't
disappoint, adding nearly 90 new messages and 40 enhanced messages and options
to the range of information supplied. ... If you don't have Lint, get it
Game Developer Magazine -- See page 10 in the Jan. 2002 archives.
Gimpel Software's PC-lint 8.00 is a powerful tool in a small
wrapper that helps you locate elusive bugs in your C++ code.
PC-lint can track down a large number of syntactic and semantic
errors in your code that may escape the attention of your
compiler and linker.... PC-lint is a great tool to have in
your toolbox. You can use it early in development to smooth
out your code's rough edges, or you can use it to maintain
legacy code by tracking down bugs that others left behind.
This simple yet effective tool can be just the thing to brush
the "lint" off your product.
Visual Studio Magazine, Nov. 2001
This product (PC-lint) has a huge user base and is very
stable. It's a small price for such fantastic diagnostic
information, particularly in the embedded world, where
compilers may cost thousands of dollars.
Jack G. Ganssle,
Embedded Systems Programming, April 2001
This little gem is a source code analyzer that finds
everything that is wrong with your code.... PC-lint is the samurai
sword of development tools.... As a time saving tool, nothing beats
PC-lint. If you're hunting for bugs, or trying to improve the
quality of code to prevent bugs from happening in the first
place, PC-lint is the tool to have. It not only does its job well, it
does it far better than any other tool in its class.
Mike Kelleghan, Game Developer Magazine -- See page 13 in the Jan. 2001 archives.
The Front Line Awards honor a wide range of tools that help
development teams of interactive entertainment titles to create and innovate,"
said Mark DeLoura, editor-in-chief, Game Developer magazine.
There are so many amazingly powerful tools for game
developers -- it was difficult to narrow it down. ... In addition
to the Front Line Award category winners, each
year one product is inducted into the Front Line Awards Hall of Fame. The
inductee is chosen for its outstanding contribution to the game
development industry. This year's honor was presented to Gimpel
Software's PC-lint. PC-lint is a tool for programmers which enables them to
search for thousands of types of common errors in their game's C and C++
source code. Even after a decade of availability, PC-lint continues to be the
tool of choice to verify cross-platform compatibility and source code validity
with the highest standards.
Game Developer Magazine Press Release, Dec. 11, 2000,
Many software companies run their code through PC-lint before
it gets anywhere near the compiler, and find that they get a huge cost saving
because subsequent time spent debugging code is greatly reduced.
PC Plus, August 2000
PC-lint is a refreshing change, being a utility program which is
genuinely useful, doesn't cost the earth, and doesn't take
up all your free disk space. It is going to be a very valuable
tool for anyone who is concerned about code quality .... Highly
Julian Templeman, Developer's Review U.K., June 2000
From Apollo to Chernobyl -- PC-lint, a tool that increases the
reliability & integrity of 'C' programs.
Chris Tapp, Hitex, Summer 1999
PC-lint V.7.50 from Gimpel Software is an indispensable
tool that finds all kinds of hard-to-find nits in your source
code that compilers miss. All of my framework code has been
subject to Lint's scrutiny.
Richard Russell, " Embedded Development Tools "
Circuit Cellar Ink, March 1999
To find the code bugs before someone else does, we use a combination of
Gimpel's PC-lint and code reviews. PC-lint
rummages through the code and checks it against thousands of possible
error types. This can produce much white noise, but PC-lint lets you
have a set of common message suppression flags that represent your
policy of lint-acceptable code. Table 1 lists our policy. On most
projects, we mandate that the final shipped code must pass PC-lint
with no warnings or errors. In fact, PC-lint has more than paid for
itself in the time savings of tracking down bugs due to uninitialized
Wes Faler,"Building Solid Code"
Dr. Dobb's Journal, November 1998
I would strongly recommend it [PC-lint] for use with C and
C++ programming, since it will uncover much dubious or outright
incorrect code that many other tools will miss."
Ron van der Wal, "Testing Testers"
Dr. Dobb's Journal, Feb. 1997
PC-lint is a power tool that just about
every C and C++ programmer should have. Its ability to
find subtle semantic and syntactic errors will save you
time and make your programs more robust.... When I want
my code to be well-groomed -- and I always do -- I'll
have PC-lint check it out first.
Noah Davids, "Neatness Counts" Windows Tech Journal, Sept. 1996
The leader in this field is PC-lint for C/C++ from Gimpel Software.
I've been using this tool for years and have found it to be
indispensable.... I'd be surprised if it didn't pay for itself
in the first week. It either will find dormant bugs and
potential porting problems or will reassure you your code is
clean; either way, you can rest easier.
Rex Jaeschke, "When Filename Truncation Isn't" ent, May 1996
The whole FlexeLint package radiates a thoroughness
of design that is difficult to find in many tools today. But
underlying this design is an attribute that is generally
found in inverse proportion to a product's flexibility and
thoroughness: simplicity.... Highly recommended.
Andrew Binstock, editor-in-chief, UNIX Review, August 1995
I highly recommend PC-lint for C and C++ programmers at all skill
levels. It tirelessly inspects every line of your source code
and reports an enormous number of warnings and error messages
for potentially ill-behaved lines.
Gregory Bergmann, "The Ultimate Insecticide" Computer, Feb. 1995
I consider PC-lint an important part of my C education
and recommend it without reservation to the serious C
Mike Maddox, Unisys World, June 1994
I'm happy to say that PC-lint for C/C++ will further Gimpel's
long-standing reputation for quality. PC-lint for C/C++ is a thorough,
configurable, accurate, and capable lint for C++.
Larry O'Brien, Software Development, June 1994
PC-lint for C/C++ has earned a permanent place in my
toolbox. This inexpensive utility does its job very well and
is adaptable to almost any compiler. PC-lint can help you find
bugs you'd probably never discover otherwise.
Mark Davidson, Windows Tech Journal, May 1994
PC-lint is a complex and versatile program with more
than a hundred options and several hundred messages.... Once
configured, PC-lint requires little additional information,
and it will unearth oddities, idiosyncrasies, and bugs in your
source code that no other program can find.
Rex Conn, "Syntax Checkers" PC Magazine, March 16, 1993
PC-lint is a solid product, and if you make your
living developing C code, it's a worthwhile investment.
If it catches just one bug that otherwise would have
slipped through, it can pay for itself.
Bruce Graves, PC Techniques, Feb/March 1993
With these products, Gimpel Software continues its tradition of
delivering topnotch software at reasonable prices.... PC-lint 386
is an electrifying product.... If you need a lint-like tool, PC-lint
is a good choice.... (About C-Vision): Gimpel Software once again
stands out with a fantastic new product that does an outstanding
job and, unlike many of the other systems, doesn't break.
Dave Shaver, Computer Language, Aug. 1992
Your algorithms look solid, the compiler chews through your source
without a hiccup, yet your output looks like a passage of Finnegan's
Wake that's been run through a Cuisinart. What I do in this
situation is tell the boss it's a hardware bug and reach for the
PC-lint. PC-lint helps locate "roach motel"
variables and code fragments -- the ones that check in but don't
check out. And PC-lint offers something akin to the strong
type-checking we never missed in C until C++ came along. ... Lint
early, lint often and fight the impulse to get defensive and say
"Yeah but it kinda works the way it is"
Language, April 1991
FlexeLint worked, and worked very well.
It caught things our other lint programs didn't, and offers
considerably more flexibility than any other lint on the market.
It is a superbly crafted program, and we cannot think of any
improvements to the software we would wish for ...
We can unhesitatingly recommend FlexeLint for anyone who
programs in C. Those who craft large projects, or those
with multiple person teams will wonder why it took so
long to find this utility. FlexeLint, although not inexpensive, is
definitely worth the investment for serious programmers.
We have used PC-lint for years now, and
FlexeLint takes Gimpel's excellent product to new levels.
Tim Parker, Unique, Dec. 1990
PC-lint,the one tool I believe all C programmers should have.
Billy Rubin, The C Gazette, Autumn 1989
PC-lint from Gimpel Software, Collegeville, Penn., is a very impressive
tool indeed. In addition to training novices in good C
programming practices, PC-lint also serves as a great aid
to veteran programmers slogging their way through a multimodule
David Burnette, Computer Language, February 1989
PC-lint does its job well and belongs in the C programmer's toolbox.
Alex Lane, BYTE magazine, November 1988
Lint is extremely powerful and flexible. It made writing C code
easier and greatly reduced debugging time.
All in all, I highly recommend Gimpel's Lint to ALL Amiga C programmers.
Gary Sjogren, Amiga Friends Newsletter, October 1988
PC-lint would be a wise investment for the novice and the professional C
programmer. Overall Rating: A
George O’Neal Keyes, Book of IBM Software, 4/18/86
Home | Contact
PC-lint and FlexeLint are trademarks of Gimpel Software LLC
Copyright © 2015, Gimpel Software LLC, All rights reserved.