|
|
1.1 root 1: .TH LINT 1
2: .UC 4
3: .SH NAME
4: lint \- a C program verifier
5: .SH SYNOPSIS
6: .B lint
7: [
8: .B \-abchnpuvx
9: ]
10: file ...
11: .SH DESCRIPTION
12: .I Lint
13: attempts to detect features of the C program
14: .I files
15: which are
16: likely to be bugs, or non-portable, or wasteful.
17: It also checks the type usage of the program more strictly
18: than the compilers.
19: Among the things which are currently found are
20: unreachable statements,
21: loops not entered at the top,
22: automatic variables declared and not used,
23: and logical expressions whose value is constant.
24: Moreover, the usage of functions is checked to find
25: functions which return values in some places and not in others,
26: functions called with varying numbers of arguments,
27: and functions whose values are not used.
28: .PP
29: By default, it is assumed that all the
30: .I files
31: are to be loaded together; they are checked for
32: mutual compatibility.
33: Function definitions for certain libraries are available to
34: .IR lint ;
35: these libraries are referred to by a
36: conventional name,
37: such as `\-lm', in the style of
38: .IR ld (1).
39: .PP
40: Any number of the options in the following list
41: may be used.
42: The
43: .SM
44: .BR \-D "\*S,"
45: .SM
46: .BR \-U "\*S,"
47: and
48: .SM
49: .B \-I
50: options of
51: .IR cc (1)
52: are also recognized as separate arguments.
53: .TP
54: .B p
55: Attempt to check portability to the
56: .I IBM
57: and
58: .I GCOS
59: dialects of C.
60: .TP
61: .B h
62: Apply a number of heuristic tests to attempt 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: (This is not the default because, unfortunately,
70: most
71: .I lex
72: and many
73: .I yacc
74: outputs produce dozens of such comments.)
75: .TP
76: .B v
77: Suppress complaints about unused arguments in functions.
78: .TP
79: .B x
80: Report variables referred to by extern declarations,
81: but never used.
82: .TP
83: .B a
84: Report assignments of long values to int variables.
85: .TP
86: .B c
87: Complain about casts which have questionable portability.
88: .TP
89: .B u
90: Do not complain about functions and variables used and not
91: defined, or defined and not used (this is suitable for running
92: .I lint
93: on a subset of files out of a larger program).
94: .TP
95: .B n
96: Do not check compatibility against the standard library.
97: .PP
98: .IR Exit (2)
99: and other functions which do not return
100: are not understood; this causes various lies.
101: .PP
102: Certain conventional comments in the C source
103: will change the behavior of
104: .IR lint :
105: .TP
106: /*NOTREACHED*/
107: at appropriate points
108: stops comments about unreachable code.
109: .TP
110: .RI /*VARARGS n */
111: suppresses
112: the usual checking for variable numbers of arguments
113: in the following function declaration.
114: The data types of the first
115: .I n
116: arguments are checked;
117: a missing
118: .I n
119: is taken to be 0.
120: .TP
121: /*NOSTRICT*/
122: shuts off strict type checking in the next expression.
123: .TP
124: /*ARGSUSED*/
125: turns on the
126: .B \-v
127: option for the next function.
128: .TP
129: /*LINTLIBRARY*/
130: at the beginning of a file shuts off complaints about
131: unused functions in this file.
132: .SH FILES
133: .ta \w'/usr/lib/llib-port 'u
134: /usr/lib/lint/lint[12] programs
135: .br
136: /usr/lib/lint/llib-lc declarations for standard functions
137: .br
138: /usr/lib/lint/llib-port declarations for portable functions
139: .SH SEE ALSO
140: cc(1)
141: .br
142: S. C. Johnson,
143: .I Lint, a C Program Checker
144: .SH BUGS
145: There are some things you just
146: .B can't
147: get lint to shut up about.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.