Windows 95/NT


User's Guide
       HTML Online
Release Notes

Other Sources

What's New
Mailing Lists


Last update: 18 April 1998 - What's New

LCLint Home Page

LCLint Version 2.4b is now available.

LCLint is a tool for statically checking C programs. With minimal effort, LCLint can be used as a better lint. If additional effort is invested adding annotations to programs, LCLint can perform stronger checks than can be done by any standard lint.

LCLint does many of the traditional lint checks including unused declarations, type inconsistencies, use-before-definition, ignored return values, execution paths with no return, likely infinite loops, and fall-through cases. Our main focus, however, is on more powerful checks that are made possible by additional information given in source code annotations. Annotations are stylized comments that document certain assumptions about functions, variables, parameters, and types. They may be used to indicate where the representation of a user-defined type is hidden, to limit where a global variable may be used or modified, to constrain what a function implementation may do to its parameters, and to express checked assumptions about variables, types, structure fields, function parameters, and function results. In addition to the checks specifically enabled by annotations, many of the traditional lint checks are improved by exploiting this additional information.

Some problems detected by LCLint include:

LCLint checking can be customized to select what classes of errors are reported using command line flags and stylized comments in the code.

David Evans
Software Devices and Systems