This is a release notice for an obsolete version of LCLint. It is
included for archival purposes only. The links on this page may no
longer be relevant or accurate.
LCLint Version 2.0
29 February 1996
Version 2.0 is a major upgrade to the last publically released version
of LCLint, Version 1.4c.
The most important enhancement is detection of errors relating to
dynamic memory management: uses of
deallocated storage, memory leaks,
dangerous data sharing or unexpected aliasing,
uses of possibly undefined storage,
dereferencing a possibly null
pointer. These errors are detected using information provided in
annotations. This is described
in
Static
Detection of Dynamic Memory Errors. David Evans. To appear in SIGPLAN
Conference on Programming Language Design and Implementation (PLDI
'96), Philadelphia, PA, May 1996.
Other new features include:
- Support for customizable naming
conventions.
- Side-effect free macro
parameters.
- More flexible checking of
global variables.
- Checking of control structures.
- Hints providing more
information on a reported error and how the message can be suppressed
are optionally included.
- Source code comments can now be used to express everything that can
be expressed in LCL specifications and is used in LCLint checking.
- LCLint now manages memory explicitly and requires no garbage
collector. This was accompilshed using LCLint's static memory checking.
Many of these features were suggested by user comments. Development is
largely driven by user feedback, so please continue to send me
suggestions, ideas, complaints and bug reports. Thanks to everyone who sent comments
and bug reports. We are also interested in any more general feedback or
experience you have to report.
LCLint 2.0 can be downloaded from
http://lclint.cs.virginia.edu/download.html.
Previous release notices:
David
Evans
University of Virginia, Computer Science
evans@cs.virginia.edu