Difference between revisions of "32v 1m lint"

From Computer History Wiki
Jump to: navigation, search
(New page: LINT(1) UNIX Programmer's Manual LINT(1) == NAME == lint - a C program verifier == SYNOPSIS == lint [ -abchnpuvx ] file ... == DESCRIPTION == _...)
 
(update formatting)
 
Line 1: Line 1:
LINT(1)            UNIX Programmer's Manual              LINT(1)
 
 
 
 
 
== NAME ==
 
== NAME ==
    lint - a C program verifier
+
lint - a C program verifier
  
 
== SYNOPSIS ==
 
== SYNOPSIS ==
    lint [ -abchnpuvx ] file ...
+
lint [ -abchnpuvx ] file ...
  
 
== DESCRIPTION ==
 
== DESCRIPTION ==
    _L_i_n_t attempts to detect features of the C program _f_i_l_e_s
+
Lint attempts to detect features of the C program files 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
    which are likely to be bugs, or non-portable, or wasteful.
+
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.
    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
+
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).
    loaded together; they are checked for mutual compatibility.
 
    Function definitions for certain libraries are available to
 
    _l_i_n_t; these libraries are referred to by a conventional
 
    name, such as `-lm', in the style of _l_d(1).
 
  
    Any number of the options in the following list may be used.
+
Any number of the options in the following list may be used. The -D, -U, and -I options of cc(1) are also recognized as separate arguments.
    The -D, -U, and -I options of _c_c(1) are also recognized as
 
    separate arguments.
 
  
    p    Attempt to check portability to the _I_B_M and _G_C_O_S
+
-p    Attempt to check portability to the IBM and GCOS dialects of C.
          dialects of C.
 
  
    h    Apply a number of heuristic tests to attempt to intuit
+
-h    Apply a number of heuristic tests to attempt to intuit bugs, improve style, and reduce waste.
          bugs, improve style, and reduce waste.
 
  
    b    Report _b_r_e_a_k statements that cannot be reached.  (This
+
-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.)
          is not the default because, unfortunately, most _l_e_x and
 
          many _y_a_c_c outputs produce dozens of such comments.)
 
  
    v    Suppress complaints about unused arguments in func-
+
-v    Suppress complaints about unused arguments in functions.
          tions.
 
  
    x    Report variables referred to by extern declarations,
+
-x    Report variables referred to by extern declarations, but never used.
          but never used.
 
  
    a    Report assignments of long values to int variables.
+
-a    Report assignments of long values to int variables.  
  
    c    Complain about casts which have questionable portabil-
+
-c    Complain about casts which have questionable portability.
          ity.
 
  
    u    Do not complain about functions and variables used and
+
-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).
          not defined, or defined and not used (this is suitable
 
          for running _l_i_n_t on a subset of files out of a larger
 
          program).
 
  
    n    Do not check compatibility against the standard
+
-n    Do not check compatibility against the standard library.
          library.
 
  
    _E_x_i_t(2) and other functions which do not return are not
+
Exit(2) and other functions which do not return are not understood; this causes various lies.
    understood; this causes various lies.
 
  
    Certain conventional comments in the C source will change
+
Certain conventional comments in the C source will change the behavior of lint:
    the behavior of _l_i_n_t:
 
  
    /*NOTREACHED*/
+
/*NOTREACHED*/
          at appropriate points stops comments about unreachable
+
at appropriate points stops comments about unreachable code.
          code.
 
  
    /*VARARGS_n*/
+
/*VARARGSn*/
          suppresses the usual checking for variable numbers of
+
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.
          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*/
+
/*NOSTRICT*/
          shuts off strict type checking in the next expression.
+
shuts off strict type checking in the next expression.
  
    /*ARGSUSED*/
+
/*ARGSUSED*/
          turns on the -v option for the next function.
+
turns on the -v option for the next function.
  
    /*LINTLIBRARY*/
+
/*LINTLIBRARY*/
          at the beginning of a file shuts off complaints about
+
at the beginning of a file shuts off complaints about unused functions in this file.
          unused functions in this file.
 
  
 
== FILES ==
 
== FILES ==
    /usr/lib/lint[12] programs
+
/usr/lib/lint[12] programs
    /usr/lib/llib-lc declarations for standard functions
+
/usr/lib/llib-lc declarations for standard functions
    /usr/lib/llib-port declarations for portable functions
+
/usr/lib/llib-port declarations for portable functions
  
 
== SEE ALSO ==
 
== SEE ALSO ==
    [[32v 1m cc|cc(1)]]
+
[[32v 1m cc|cc(1)]]
    S. C. Johnson, _L_i_n_t, _a _C _P_r_o_g_r_a_m _C_h_e_c_k_e_r
+
S. C. Johnson, Lint, a C Program Checker
  
 
[[Category:32v man section 1]]
 
[[Category:32v man section 1]]

Latest revision as of 01:47, 23 September 2015

NAME

lint - a C program verifier

SYNOPSIS

lint [ -abchnpuvx ] file ...

DESCRIPTION

Lint attempts to detect features of the C program files 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 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).

Any number of the options in the following list may be used. The -D, -U, 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.

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.

/*VARARGSn*/ 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.

FILES

/usr/lib/lint[12] programs /usr/lib/llib-lc declarations for standard functions /usr/lib/llib-port declarations for portable functions

SEE ALSO

cc(1) S. C. Johnson, Lint, a C Program Checker