All rights reserved. The Berkeley software License Agreement
specifies the terms and conditions for redistribution.
@(#)lint.1 6.1 (Berkeley) 04/29/85
By default, it is assumed that all the files are to be loaded together; they are checked for mutual compatibility. Function definitions for certain libraries are available to lint ; these libraries are referred to by a conventional name, such as `-lm', in the style of ld (1). Arguments ending in .ln are also treated as library files. To create lint libraries, use the -C option:
lint -Cfoo files . . .where files are the C sources of library foo. The result is a file llib-lfoo.ln in the correct library format suitable for linting programs using foo.
Any number of the options in the following list may be used. The -D "\*S," -U "\*S," and -I options of cc (1) are also recognized as separate arguments.
p Attempt to check portability to the IBM and GCOS dialects of C.
h Apply a number of heuristic tests to attempt to intuit bugs, improve style, and reduce waste.
b Report break statements that cannot be reached. (This is not the default because, unfortunately, most lex and many yacc outputs produce dozens of such comments.)
v Suppress complaints about unused arguments in functions.
x Report variables referred to by extern declarations, but never used.
a Report assignments of long values to int variables.
c Complain about casts which have questionable portability.
u Do not complain about functions and variables used and not defined, or defined and not used (this is suitable for running lint on a subset of files out of a larger program).
n Do not check compatibility against the standard library.
z Do not complain about structures that are never defined (e.g. using a structure pointer without knowing its contents.).
Exit (2) and other functions which do not return are not understood; this causes various lies.
Certain conventional comments in the C source will change the behavior of lint :
/*NOTREACHED*/ at appropriate points stops comments about unreachable code.
/*VARARGS n */ suppresses the usual checking for variable numbers of arguments in the following function declaration. The data types of the first n arguments are checked; a missing n is taken to be 0.
/*NOSTRICT*/ shuts off strict type checking in the next expression.
/*ARGSUSED*/ turns on the -v option for the next function.
/*LINTLIBRARY*/ at the beginning of a file shuts off complaints about unused functions in this file.
/usr/lib/lint/llib-lc.ln declarations for standard functions
/usr/lib/lint/llib-lc human readable version of above
/usr/lib/lint/llib-port.ln declarations for portable functions
/usr/lib/lint/llib-port human readable . . .
llib-l*.ln library created with -C
S. C. Johnson, Lint, a C Program Checker