Annotation of researchv10dc/man/adm/man1/lint.1, revision 1.1.1.1

1.1       root        1: .TH LINT 1
                      2: .CT 1 prog_c
                      3: .SH NAME
                      4: lint, cyntax, cem \- C program verifiers
                      5: .SH SYNOPSIS
                      6: .B lint
                      7: [
                      8: .B -abchnpuvx
                      9: ] [
                     10: .I option ...
                     11: ]
                     12: .I file ...
                     13: .PP
                     14: .B cyntax
                     15: [
                     16: .I option ...
                     17: ]
                     18: .I file ...
                     19: .PP
                     20: .B /usr/lib/cyntax/cem
                     21: [
                     22: .I option ...
                     23: ]
                     24: .I file ...
                     25: .SH DESCRIPTION
                     26: .I Lint
                     27: checks, more thoroughly than
                     28: .IR cc (1),
                     29: the syntactic validity and semantic consistency of
                     30: one or more C program
                     31: .I files.
                     32: It is assumed that all the
                     33: .I files
                     34: are to be loaded together; they are checked for
                     35: mutual compatibility.
                     36: Function definitions for certain libraries are available to
                     37: .IR lint ;
                     38: these libraries are referred to by a
                     39: conventional name,
                     40: such as
                     41: .LR -lm ,
                     42: in the style of
                     43: .IR ld (1).
                     44: .PP
                     45: Any number of the option letters in the following list
                     46: may be used.
                     47: The
                     48: .BR -D ,
                     49: .BR -U ,
                     50: and
                     51: .B -I
                     52: options of
                     53: .IR cc (1)
                     54: are also recognized as separate arguments.
                     55: .TP
                     56: .B p
                     57: Attempt to check portability to some other
                     58: dialects of C.
                     59: .PD 0
                     60: .TP
                     61: .B h
                     62: Apply heuristics to
                     63: intuit bugs, improve style, and reduce waste.
                     64: .TP
                     65: .B b
                     66: Report
                     67: .I break
                     68: statements that cannot be reached.
                     69: .TP
                     70: .B v
                     71: Suppress complaints about unused arguments in functions.
                     72: .TP
                     73: .B x
                     74: Report variables referred to by extern declarations,
                     75: but never used.
                     76: .TP
                     77: .B a
                     78: Report assignments of long values to int variables.
                     79: .TP
                     80: .B c
                     81: Complain about casts which have questionable portability.
                     82: .TP
                     83: .B u
                     84: Do not complain about functions and variables used and not
                     85: defined, or defined and not used (this is suitable for running
                     86: .I lint
                     87: on a subset of files out of a larger program).
                     88: .TP
                     89: .B n
                     90: Do not check compatibility against the standard library.
                     91: .PD
                     92: .PP
                     93: Certain conventional comments in the C source
                     94: will change the behavior of
                     95: .IR lint :
                     96: .TP
                     97: .B /*NOTREACHED*/
                     98: at appropriate points.
                     99: Stop comments about unreachable code.
                    100: .PD 0
                    101: .TP
                    102: .BI /*VARARGS n */
                    103: Suppress
                    104: the usual checking for variable numbers of arguments
                    105: in the following function declaration.
                    106: The data types of the first
                    107: .I n
                    108: arguments are checked;
                    109: a missing
                    110: .I n
                    111: is taken to be 0.
                    112: .TP
                    113: .BI /*PRINTFLIKE n */
                    114: The data types of the first
                    115: .I n\^
                    116: arguments are checked as usual.
                    117: The remaining arguments are
                    118: checked
                    119: against the
                    120: .IR n th
                    121: argument, which is interpreted as a
                    122: .IR printf (3)
                    123: format string.
                    124: .TP
                    125: .BI /*SCANFLIKE n */
                    126: Similarly for
                    127: .IR scanf (3).
                    128: .TP
                    129: .B /*NOSTRICT*/
                    130: Shut off strict type checking in the next expression.
                    131: .TP
                    132: .B /*ARGSUSED*/
                    133: Turn on the
                    134: .B -v
                    135: option for the next function.
                    136: .TP
                    137: .B /*LINTLIBRARY*/
                    138: at the beginning of a file.  Shut off complaints about
                    139: unused functions in this file.
                    140: .PD
                    141: .PP
                    142: .I Cyntax
                    143: makes checks similar to those of
                    144: .I lint,
                    145: more stringent about syntax, less observant of portability issues.
                    146: It keeps type information gleaned from source files,
                    147: whose names end with
                    148: .LR .c ,
                    149: in `object files' with corresponding names ending in
                    150: .LR .O .
                    151: If all goes well it will cross check among all the 
                    152: .L .c
                    153: and
                    154: .L .O
                    155: input
                    156: .I files.
                    157: .PP
                    158: Options
                    159: .BR -D ,
                    160: .BR -I ,
                    161: .BR -U ,
                    162: .BR -o ,
                    163: .BR -l
                    164: are as in
                    165: .IR cc (1).
                    166: Options
                    167: .BR -O ,
                    168: .BR -P ,
                    169: .BR -g ,
                    170: .BR -p ,
                    171: and
                    172: .BR -s
                    173: are ignored.
                    174: Other options are:
                    175: .TP
                    176: .B -c
                    177: Suppress cross checking.
                    178: .PD 0
                    179: .TP
                    180: .B -d
                    181: Passed to
                    182: .IR cem .
                    183: .TP
                    184: .B -h
                    185: Base object files on the basename of the source file
                    186: rather than the full pathname.
                    187: .TP
                    188: .B -n
                    189: Do not check compatibility against the standard library.
                    190: .TP
                    191: .B -G
                    192: Change default directory of include files to
                    193: .FR /usr/2include ,
                    194: pass 
                    195: .B -lg
                    196: to
                    197: .I cem
                    198: instead of
                    199: .BR -lc .
                    200: .TP
                    201: .B -j
                    202: Change default directory of include files to
                    203: .FR /usr/jerq/include ,
                    204: pass 
                    205: .B -lj
                    206: to
                    207: .I cem
                    208: instead of
                    209: .BR -lc .
                    210: .TP
                    211: .B -k
                    212: Change default directory of include files to
                    213: .FR /usr/ninclude ,
                    214: pass 
                    215: .B -lk
                    216: to
                    217: .I cem
                    218: instead of
                    219: .BR -lc .
                    220: .TP
                    221: .B -w
                    222: Enable pedantic warning diagnostics.
                    223: .TP
                    224: .B -m
                    225: equivalent to
                    226: .LR "-j -DMUX" .
                    227: .TP
                    228: .B -v
                    229: Report what
                    230: .I cyntax
                    231: is actually doing.
                    232: .TP
                    233: .BI -V func : n
                    234: Declare function
                    235: .I func
                    236: to have a variable number of arguments, the first
                    237: .I n
                    238: of which are to be type checked.
                    239: .PD
                    240: .PP
                    241: .I Cem
                    242: (cemantics), the cross-checker, is normally invoked only by
                    243: .IR cyntax .
                    244: It also has options, some of which
                    245: .I cyntax
                    246: can't be coerced into providing.
                    247: Besides
                    248: .B -o
                    249: and
                    250: .BR -l ,
                    251: they are:
                    252: .TP
                    253: .B -m
                    254: Don't believe file modification times.
                    255: These are normally used to avert redundant type checking.
                    256: .PD0
                    257: .TP
                    258: .B -d
                    259: Debug: print ascii version of 
                    260: .L .O
                    261: files on standard output.
                    262: .TP
                    263: .B -p
                    264: Be pedantic about type checking.
                    265: .TP
                    266: .B -t
                    267: Unconditionally include file modification times in diagnostics.
                    268: .TP
                    269: .B -v
                    270: Use a verbose format for type names.
                    271: .PD
                    272: .SH FILES
                    273: .TF /usr/lib/lint/llib-port
                    274: .TP
                    275: .F /usr/lib/lint/lint[12]
                    276: programs
                    277: .TP
                    278: .F /usr/lib/lint/llib-lc
                    279: declarations for standard functions
                    280: .TP
                    281: .F /usr/lib/lint/llib-lport
                    282: declarations for portable functions
                    283: .TP
                    284: .F /usr/include/*
                    285: .TP
                    286: .F /usr/lib/cyntax/ccom
                    287: cyntax proper
                    288: .TP
                    289: .F /usr/lib/cyntax/libc
                    290: type library
                    291: .TP
                    292: .F /usr/lib/cyntax/libj
                    293: .SH SEE ALSO
                    294: .IR cc (1),
                    295: .IR cin (1)
                    296: .SH BUGS
                    297: .IR Exit (2)
                    298: and other functions which do not return
                    299: are not understood by
                    300: .IR lint ;
                    301: this causes various lies.
                    302: .br
                    303: The unnatural default setting of
                    304: .I lint
                    305: option
                    306: .B -b
                    307: is intended to hide the ugliness of
                    308: C code produced by
                    309: .IR yacc (1)
                    310: and
                    311: .IR lex (1).

unix.superglobalmegacorp.com

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