LCLint Version 2.2
26 August 1996
Version 2.2 is a minor upgrade to the last publically released version
of LCLint, Version 2.1b.
Bug Fixes
All known bugs in Version 2.1b have been fixed.
New Features
The LCLint distribution now includes a POSIX standard library
(contributed by Jens Schweikhardt). Strict versions of the POSIX and
UNIX libraries are also provided. Flags may be used to select the
standard libraries:
posixlib, posixstrictlib,
unixlib and
unixstrictlib. The skip-posix-headers
flag controls inclusion of header files associated with the POSIX
library when a library that includes the POSIX library (either
posixlib or unixlib) is ussed.
Prototype Parameters
If proto-param-name
is set, LCLint will report messages for named parameters in prototypes.
(Note, this is dangerous since the name could be defined by a macro.) A
new namespace is added to handle prototype parameter names --- the
proto-param-prefix and
proto-param-prefix-exclude
flags control checking for prototype parameter names. If
proto-param-match is set, a message is reported if the name of
the parameter in the prototype (after removing the
protoprarmprefix, if set) does not match the name of the
corresponding parameter in the function definition.
Array Formal Parameters
LCLint reports an error if the sizeof operator is used with an
operand that is a formal parameter declared as an array (controlled by
sizeof-formal-array).
A message is reported is a formal array parameter is declared with a
size if fixed-formal-array is set. A message is reported for
any formal array parameter if formal-array is set.
Flag Names
Flag names may now include hyphens (-), underscores
(_) and spaces to enhance legibility. These characters are
stripped from the flag before it is interpreted.
LCLint now supports more flexible arbitrary integral types, including
unsignedintegral and signedintegral.
Other New Flags
cpp-names
Identifier is a C++ keyword or reserved word. This could lead to
problems if the code is compiled with a C++ compiler.
mod-file-sys
Report undocumented file system modifications.
nest-comment
A comment open sequence (/*) appears within a comment. This usually
means an earlier comment was not closed.
nested-extern
An extern declaration is used inside a function scope.
Thanks
Many people have contributed to this release with suggestions for new
features, bug reports, and bug fixes. As always, LCLint development is
largely user-driven, and your comments and suggestions are much
appreciated. Special thanks go to Richard O'Keefe for suggesting many
of the new checks and Jens Schweikhardt for contributing the POSIX
library. I hope his example will inspire others to contribute standard
libraries to future LCLint releases.
Previous release notices
David
Evans
University of Virginia, Computer Science
evans@cs.virginia.edu