4.3BSD-Reno/share/man/cat1/lint.0

Compare this file to the similar file:
Show the results in this format:

LINT(1)                     UNIX Reference Manual		       LINT(1)

NNAAMMEE
     lliinntt - a C program verifier

SSYYNNOOPPSSIISS
     lliinntt [--aabbcchhnnppuuvvxx] _f_i_l_e ...

DDEESSCCRRIIPPTTIIOONN
     LLiinntt attempts to detect features of the C program _f_i_l_e_s which are likely
     to be bugs, or non-portable, or wasteful.	It also checks the type usage
     of the program more strictly than the compilers.  Among the things which
     are currently found are unreachable statements, loops not entered at the
     top, automatic variables declared and not used, and logical expressions
     whose value is constant.  Moreover, the usage of functions is checked to
     find functions which return values in some places and not in others,
     functions called with varying numbers of arguments, and functions whose
     values are not used.

     By default, it is assumed that all the _f_i_l_e_s are to be loaded together;
     they are checked for mutual compatibility.  Function definitions for cer-
     tain libraries are available to lliinntt; these libraries are referred to by
     a conventional name, such as `-lm', in the style of ld(1).  Arguments
     ending in ._l_n are also treated as library files.  To create lint li-
     braries, use the --CC option:

	   lint -Cfoo files . . .

     where _f_i_l_e_s are the C sources of library _f_o_o.  The result is a file
     _l_l_i_b-_l_f_o_o ._l_n in the correct library format suitable for linting programs
     using _f_o_o.

     Any number of the options in the following list may be used.  The --DD --UU
     and --II options of cc(1) are also recognized as separate arguments.

     --pp        Attempt to check portability to the _I_B_M and _G_C_O_S dialects of C.

     --hh        Apply a number of heuristic tests to attempt to intuit bugs,
	       improve style, and reduce waste.

     --bb        Report _b_r_e_a_k statements that cannot be reached.	(This is not
	       the default because, unfortunately, most lex(1) and many
	       yacc(1) outputs produce dozens of such comments.)

     --vv        Suppress complaints about unused arguments in functions.

     --xx        Report variables referred to by extern declarations, but never
	       used.

     --aa        Report assignments of long values to int variables.

     --cc        Complain about casts which have questionable portability.

     --uu        Do not complain about functions and variables used and not de-
	       fined, or defined and not used (this is suitable for running
	       lliinntt on a subset of files out of a larger program).

     --nn        Do not check compatibility against the standard library.

     --zz        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
     lliinntt:

     /*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 --vv option for the next function.

     /*LINTLIBRARY*/
	   at the beginning of a file shuts off complaints about unused func-
	   tions in this file.

AAUUTTHHOORR
     S.C. Johnson.  Lint library construction implemented by Edward Wang.

FFIILLEESS
     /_u_s_r/_l_i_b_d_a_t_a/_l_i_n_t/_l_l_i_b-_l_c._l_n     declarations for standard functions
     /_u_s_r/_l_i_b_d_a_t_a/_l_i_n_t/_l_l_i_b-_l_c	      human readable version of above
     /_u_s_r/_l_i_b/_l_i_n_t_d_a_t_a/_l_l_i_b-_p_o_r_t._l_n   declarations for portable functions
     /_u_s_r/_l_i_b/_l_i_n_t_d_a_t_a/_l_l_i_b-_p_o_r_t      human readable . . .
     _l_l_i_b-_l*._l_n                       library created with --CC


SSEEEE AALLSSOO
     cc(1)
     S. C. Johnson, _L_i_n_t, a C Program Checker

HHIISSTTOORRYY
     LLiinntt appeared in Version 7 AT&T Unix.

BBUUGGSS
     There are some things you just can't get lint to shut up about.

     /*NOSTRICT*/ is not implemented in the current version (alas).