Annotation of 43BSDReno/pgrm/lint/lpass1/lint.1, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1980, 1990 Regents of the University of California.
        !             2: .\" All rights reserved.  The Berkeley Software License Agreement
        !             3: .\" specifies the terms and conditions for redistribution.
        !             4: .\"
        !             5: .\"     @(#)lint.1     6.5 (Berkeley) 7/24/90
        !             6: .\"
        !             7: .Dd July 24, 1990
        !             8: .Dt LINT 1
        !             9: .Os BSD 4
        !            10: .Sh NAME
        !            11: .Nm lint
        !            12: .Nd a C program verifier
        !            13: .Sh SYNOPSIS
        !            14: .Nm lint
        !            15: .Op Fl abchnpuvx
        !            16: .Ar file ...
        !            17: .Sh DESCRIPTION
        !            18: .Nm Lint
        !            19: attempts to detect features of the C program
        !            20: .Ar files
        !            21: which are
        !            22: likely to be bugs, or non-portable, or wasteful.
        !            23: It also checks the type usage of the program more strictly
        !            24: than the compilers.
        !            25: Among the things which are currently found are
        !            26: unreachable statements,
        !            27: loops not entered at the top,
        !            28: automatic variables declared and not used,
        !            29: and logical expressions whose value is constant.
        !            30: Moreover, the usage of functions is checked to find
        !            31: functions which return values in some places and not in others,
        !            32: functions called with varying numbers of arguments,
        !            33: and functions whose values are not used.
        !            34: .Pp
        !            35: By default, it is assumed that all the
        !            36: .Ar files
        !            37: are to be loaded together; they are checked for
        !            38: mutual compatibility.
        !            39: Function definitions for certain libraries are available to
        !            40: .Nm lint  ;
        !            41: these libraries are referred to by a
        !            42: conventional name,
        !            43: such as `\-lm', in the style of
        !            44: .Xr ld  1  .
        !            45: Arguments ending in
        !            46: .Va .ln
        !            47: are also treated as library files.  To create lint libraries,
        !            48: use the
        !            49: .Fl C
        !            50: option:
        !            51: .Pp
        !            52: .Dl lint \-Cfoo files . . .
        !            53: .Pp
        !            54: where
        !            55: .Ar files
        !            56: are the C sources of library
        !            57: .Ar foo .
        !            58: The result is a file
        !            59: .Em llib-lfoo .ln
        !            60: in the correct library format suitable for linting programs
        !            61: using
        !            62: .Ar foo .
        !            63: .Pp
        !            64: Any number of the options in the following list
        !            65: may be used.
        !            66: The
        !            67: .Fl D
        !            68: .Fl U
        !            69: and
        !            70: .Fl I
        !            71: options of
        !            72: .Xr cc  1
        !            73: are also recognized as separate arguments.
        !            74: .Tp Fl p
        !            75: Attempt to check portability to the
        !            76: .Em IBM
        !            77: and
        !            78: .Em GCOS
        !            79: dialects of C.
        !            80: .Tp Fl h
        !            81: Apply a number of heuristic tests to attempt to
        !            82: intuit bugs, improve style, and reduce waste.
        !            83: .Tp Fl b
        !            84: Report
        !            85: .Ar break
        !            86: statements that cannot be reached.
        !            87: (This is not the default because, unfortunately,
        !            88: most
        !            89: .Xr lex 1
        !            90: and many
        !            91: .Xr yacc 1
        !            92: outputs produce dozens of such comments.)
        !            93: .Tp Fl v
        !            94: Suppress complaints about unused arguments in functions.
        !            95: .Tp Fl x
        !            96: Report variables referred to by extern declarations,
        !            97: but never used.
        !            98: .Tp Fl a
        !            99: Report assignments of long values to int variables.
        !           100: .Tp Fl c
        !           101: Complain about casts which have questionable portability.
        !           102: .Tp Fl u
        !           103: Do not complain about functions and variables used and not
        !           104: defined, or defined and not used (this is suitable for running
        !           105: .Nm lint
        !           106: on a subset of files out of a larger program).
        !           107: .Tp Fl n
        !           108: Do not check compatibility against the standard library.
        !           109: .Tp Fl z
        !           110: Do not complain about structures that are never defined (e.g.
        !           111: using a structure pointer without knowing its contents.).
        !           112: .Tp
        !           113: .Pp
        !           114: .Xr Exit  2
        !           115: and other functions which do not return
        !           116: are not understood; this causes various lies.
        !           117: .Pp
        !           118: Certain conventional comments in the C source
        !           119: will change the behavior of
        !           120: .Nm lint  :
        !           121: .Tw Ds
        !           122: .Tp Li /*NOTREACHED*/
        !           123: at appropriate points
        !           124: stops comments about unreachable code.
        !           125: .Tp Li /*VARARGS n */
        !           126: suppresses
        !           127: the usual checking for variable numbers of arguments
        !           128: in the following function declaration.
        !           129: The data types of the first
        !           130: .Ar n
        !           131: arguments are checked;
        !           132: a missing
        !           133: .Ar n
        !           134: is taken to be 0.
        !           135: .Tp Li /*NOSTRICT*/
        !           136: shuts off strict type checking in the next expression.
        !           137: .Tp Li /*ARGSUSED*/
        !           138: turns on the
        !           139: .Fl v
        !           140: option for the next function.
        !           141: .Tp Li /*LINTLIBRARY*/
        !           142: at the beginning of a file shuts off complaints about
        !           143: unused functions in this file.
        !           144: .Yp
        !           145: .Sh AUTHOR
        !           146: S.C. Johnson.  Lint library construction implemented by Edward Wang.
        !           147: .Sh FILES
        !           148: .Dw /usr/libdata/lint/llib-port.ln
        !           149: .Di L
        !           150: .Dp Pa /usr/libdata/lint/llib-lc.ln
        !           151: declarations for standard functions
        !           152: .Dp Pa /usr/libdata/lint/llib-lc
        !           153: human readable version of above
        !           154: .Dp Pa /usr/lib/lintdata/llib-port.ln
        !           155: declarations for portable functions
        !           156: .Dp Pa /usr/lib/lintdata/llib-port
        !           157: human readable . . .
        !           158: .Dp Pa llib-l*.ln
        !           159: library created with
        !           160: .Fl C
        !           161: .Dp
        !           162: .Sh SEE ALSO
        !           163: .Xr cc 1
        !           164: .br
        !           165: S. C. Johnson,
        !           166: .Em Lint ,
        !           167: a C Program Checker
        !           168: .Sh HISTORY
        !           169: .Nm Lint
        !           170: appeared in Version 7 AT&T Unix.
        !           171: .Sh BUGS
        !           172: There are some things you just
        !           173: can't
        !           174: get lint to shut up about.
        !           175: .Pp
        !           176: /*NOSTRICT*/
        !           177: is not implemented in the current version (alas).

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.