]>
Commit | Line | Data |
---|---|---|
885824d3 | 1 | |
2 | Source files are .c, .h and .lcl files. If there is no suffix, | |
11db3170 | 3 | Splint will look for <file>.c and <file>.lcl. |
885824d3 | 4 | |
11db3170 | 5 | Use splint -help <topic or flag name> for more information |
885824d3 | 6 | |
7 | Topics: | |
8 | ||
9 | annotations (describes source-code annotations) | |
10 | comments (describes control comments) | |
11 | flags (describes flag categories) | |
12 | flags <category> (describes flags in category) | |
13 | flags all (short description of all flags) | |
14 | flags alpha (list all flags alphabetically) | |
15 | flags full (full description of all flags) | |
16 | mail (information on mailing lists) | |
17 | modes (show mode settings) | |
18 | parseerrors (help on handling parser errors) | |
19 | prefixcodes (character codes in namespace prefixes) | |
20 | references (sources for more information) | |
21 | vars (environment variables) | |
22 | version (information on compilation, maintainer) | |
23 | ||
24 | ||
11db3170 | 25 | Finished checking --- no code processed |
885824d3 | 26 | |
27 | Source files are .c, .h and .lcl files. If there is no suffix, | |
11db3170 | 28 | Splint will look for <file>.c and <file>.lcl. |
885824d3 | 29 | |
11db3170 | 30 | Use splint -help <topic or flag name> for more information |
885824d3 | 31 | |
32 | Topics: | |
33 | ||
34 | annotations (describes source-code annotations) | |
35 | comments (describes control comments) | |
36 | flags (describes flag categories) | |
37 | flags <category> (describes flags in category) | |
38 | flags all (short description of all flags) | |
39 | flags alpha (list all flags alphabetically) | |
40 | flags full (full description of all flags) | |
41 | mail (information on mailing lists) | |
42 | modes (show mode settings) | |
43 | parseerrors (help on handling parser errors) | |
44 | prefixcodes (character codes in namespace prefixes) | |
45 | references (sources for more information) | |
46 | vars (environment variables) | |
47 | version (information on compilation, maintainer) | |
48 | ||
49 | ||
60868d40 | 50 | |
15b3d2b2 | 51 | Command Line: Unrecognized option: asdf |
52 | A flag is not recognized or used in an incorrect way (-badflag will suppress | |
53 | message) | |
885824d3 | 54 | |
11db3170 | 55 | Finished checking --- no code processed |
885824d3 | 56 | |
57 | Warning: setting +boolint redundant with current value | |
58 | ||
11db3170 | 59 | Finished checking --- no code processed |
885824d3 | 60 | |
61 | D<initializer> | |
62 | I<directory> | |
63 | S<directory> | |
64 | U<initializer> | |
65 | abstract | |
66 | accessall | |
67 | accessczech | |
68 | accessczechoslovak | |
69 | accessfile | |
70 | accessmodule | |
71 | accessslovak | |
72 | aliasunique | |
73 | allblock | |
74 | allempty | |
75 | allglobs | |
76 | allimponly | |
77 | allmacros | |
15b3d2b2 | 78 | annotationerror |
885824d3 | 79 | ansilib |
80 | ansilimits | |
81 | ansireserved | |
82 | ansireservedinternal | |
15b3d2b2 | 83 | arraybounds |
84 | arrayboundsread | |
8e349e11 | 85 | arrayread |
86 | arraywrite | |
885824d3 | 87 | assignexpose |
88 | badflag | |
89 | bitwisesigned | |
885824d3 | 90 | boolcompare |
91 | boolfalse | |
92 | boolint | |
93 | boolops | |
94 | booltrue | |
95 | booltype | |
96 | branchstate | |
8e349e11 | 97 | bufferoverflow |
15b3d2b2 | 98 | bufferoverflowhigh |
99 | bugslimit | |
885824d3 | 100 | casebreak |
101 | castexpose | |
102 | castfcnptr | |
103 | charindex | |
104 | charint | |
105 | charintliteral | |
106 | charunsignedchar | |
107 | checkedglobalias | |
108 | checkmodglobalias | |
15b3d2b2 | 109 | checkpost |
885824d3 | 110 | checkstrictglobalias |
111 | checkstrictglobs | |
112 | codeimponly | |
113 | commentchar | |
15b3d2b2 | 114 | commenterror |
885824d3 | 115 | compdef |
116 | compdestroy | |
117 | compmempass | |
118 | constmacros | |
119 | constprefix | |
120 | constprefixexclude | |
15b3d2b2 | 121 | constraintlocation |
885824d3 | 122 | constuse |
123 | continuecomment | |
124 | controlnestdepth | |
125 | cppnames | |
126 | czech | |
127 | czechconsts | |
128 | czechfcns | |
129 | czechmacros | |
130 | czechoslovak | |
131 | czechoslovakconsts | |
132 | czechoslovakfcns | |
133 | czechoslovakmacros | |
134 | czechoslovaktypes | |
135 | czechoslovakvars | |
136 | czechtypes | |
137 | czechvars | |
15b3d2b2 | 138 | debugfcnconstraint |
885824d3 | 139 | declundef |
140 | deepbreak | |
141 | deparrays | |
142 | dependenttrans | |
143 | distinctexternalnames | |
144 | distinctinternalnames | |
145 | dump | |
146 | duplicatequals | |
147 | elseifcomplete | |
148 | enumindex | |
149 | enumint | |
150 | enummembers | |
151 | enummemuse | |
152 | enumprefix | |
153 | enumprefixexclude | |
154 | evalorder | |
155 | evalorderuncon | |
156 | exitarg | |
157 | expect | |
158 | exportany | |
159 | exportconst | |
160 | exportfcn | |
161 | exportheader | |
162 | exportheadervar | |
163 | exportiter | |
164 | exportlocal | |
165 | exportmacro | |
166 | exporttype | |
167 | exportvar | |
168 | exposetrans | |
169 | externalnamecaseinsensitive | |
170 | externalnamelen | |
171 | externalprefix | |
172 | externalprefixexclude | |
173 | f | |
8e349e11 | 174 | fcnconstraint |
885824d3 | 175 | fcnderef |
176 | fcnmacros | |
8e349e11 | 177 | fcnpost |
885824d3 | 178 | fcnuse |
179 | fielduse | |
15b3d2b2 | 180 | fileextensions |
885824d3 | 181 | filestaticprefix |
182 | filestaticprefixexclude | |
183 | firstcase | |
184 | fixedformalarray | |
185 | floatdouble | |
186 | forblock | |
187 | forcehints | |
188 | forempty | |
189 | formalarray | |
190 | formatcode | |
15b3d2b2 | 191 | formatconst |
885824d3 | 192 | formattype |
193 | forwarddecl | |
194 | freshtrans | |
195 | fullinitblock | |
196 | globalias | |
197 | globalprefix | |
198 | globalprefixexclude | |
199 | globimponly | |
200 | globnoglobs | |
201 | globs | |
202 | globsimpmodsnothing | |
203 | globstate | |
204 | globuse | |
205 | gnuextensions | |
206 | hasyield | |
207 | help | |
208 | hints | |
209 | i | |
210 | ifblock | |
211 | ifempty | |
212 | ignorequals | |
213 | ignoresigns | |
214 | immediatetrans | |
215 | impabstract | |
216 | impcheckedglobs | |
217 | impcheckedspecglobs | |
218 | impcheckedstatics | |
219 | impcheckedstrictglobs | |
220 | impcheckedstrictspecglobs | |
221 | impcheckedstrictstatics | |
222 | impcheckmodglobs | |
223 | impcheckmodinternals | |
224 | impcheckmodspecglobs | |
225 | impcheckmodstatics | |
226 | impconj | |
15b3d2b2 | 227 | implementationoptional |
228 | implictconstraint | |
885824d3 | 229 | impouts |
230 | imptype | |
231 | includenest | |
232 | incompletetype | |
233 | incondefs | |
234 | incondefslib | |
15b3d2b2 | 235 | indentspaces |
885824d3 | 236 | infloops |
237 | infloopsuncon | |
8fe44445 | 238 | initallelements |
239 | initsize | |
885824d3 | 240 | internalglobs |
241 | internalglobsnoglobs | |
242 | internalnamecaseinsensitive | |
243 | internalnamelen | |
244 | internalnamelookalike | |
245 | iterprefix | |
246 | iterprefixexclude | |
15b3d2b2 | 247 | its4low |
248 | its4moderate | |
249 | its4mostrisky | |
250 | its4risky | |
251 | its4veryrisky | |
885824d3 | 252 | keeptrans |
253 | kepttrans | |
254 | larchpath | |
255 | lclexpect | |
256 | lclimportdir | |
257 | lcs | |
79127b5d | 258 | legacy |
885824d3 | 259 | lh |
260 | libmacros | |
261 | likelybool | |
262 | limit | |
263 | linelen | |
264 | lintcomments | |
265 | load | |
266 | localprefix | |
267 | localprefixexclude | |
268 | longintegral | |
269 | longsignedintegral | |
270 | longunsignedintegral | |
271 | longunsignedunsignedintegral | |
272 | loopexec | |
273 | looploopbreak | |
274 | looploopcontinue | |
275 | loopswitchbreak | |
276 | macroassign | |
277 | macroconstdecl | |
278 | macrodecl | |
279 | macroempty | |
280 | macrofcndecl | |
281 | macromatchname | |
282 | macroparams | |
283 | macroparens | |
284 | macroredef | |
285 | macrostmt | |
286 | macrounrecog | |
287 | macrovarprefix | |
288 | macrovarprefixexclude | |
289 | maintype | |
290 | matchanyintegral | |
291 | matchfields | |
292 | mayaliasunique | |
293 | memchecks | |
294 | memimp | |
295 | memtrans | |
15b3d2b2 | 296 | misplacedsharequal |
885824d3 | 297 | misscase |
298 | modfilesys | |
299 | modglobs | |
300 | modglobsnomods | |
301 | modglobsunchecked | |
302 | modinternalstrict | |
303 | modnomods | |
304 | modobserver | |
305 | modobserveruncon | |
306 | mods | |
307 | modsimpnoglobs | |
308 | modstrictglobsnomods | |
309 | moduncon | |
310 | modunconnomods | |
311 | modunspec | |
15b3d2b2 | 312 | mts |
313 | multithreaded | |
885824d3 | 314 | mustdefine |
315 | mustfree | |
316 | mustmod | |
317 | mustnotalias | |
318 | mutrep | |
319 | namechecks | |
320 | needspec | |
321 | nestcomment | |
322 | nestedextern | |
323 | neverinclude | |
324 | newdecl | |
325 | newreftrans | |
326 | nextlinemacros | |
327 | noaccess | |
328 | nocomments | |
329 | noeffect | |
330 | noeffectuncon | |
331 | nof | |
332 | nolib | |
333 | noparams | |
334 | noret | |
335 | null | |
336 | nullassign | |
337 | nullderef | |
338 | nullpass | |
339 | nullptrarith | |
340 | nullret | |
341 | nullstate | |
8e349e11 | 342 | nullterminated |
343 | nullterminated | |
885824d3 | 344 | numenummembers |
345 | numliteral | |
346 | numstructfields | |
347 | observertrans | |
348 | oldstyle | |
349 | onlytrans | |
350 | onlyunqglobaltrans | |
15b3d2b2 | 351 | orconstraint |
885824d3 | 352 | overload |
353 | ownedtrans | |
354 | paramimptemp | |
355 | paramuse | |
15b3d2b2 | 356 | parenconstraint |
885824d3 | 357 | parenfileformat |
358 | partial | |
359 | passunknown | |
1d239d69 | 360 | portability |
885824d3 | 361 | posixlib |
362 | posixstrictlib | |
363 | predassign | |
364 | predbool | |
365 | predboolint | |
366 | predboolothers | |
367 | predboolptr | |
368 | protoparammatch | |
369 | protoparamname | |
370 | protoparamprefix | |
371 | protoparamprefixexclude | |
372 | ptrarith | |
373 | ptrcompare | |
374 | ptrnegate | |
375 | quiet | |
376 | readonlystrings | |
377 | readonlytrans | |
378 | realcompare | |
379 | redecl | |
380 | redef | |
15b3d2b2 | 381 | redundantsharequal |
885824d3 | 382 | refcounttrans |
383 | relaxquals | |
384 | relaxtypes | |
385 | repeatunrecog | |
386 | repexpose | |
387 | retalias | |
388 | retexpose | |
389 | retimponly | |
390 | retval | |
391 | retvalbool | |
392 | retvalint | |
393 | retvalother | |
394 | sefparams | |
395 | sefuncon | |
396 | shadow | |
397 | sharedtrans | |
398 | shiftsigned | |
399 | showallconjs | |
400 | showalluses | |
401 | showcolumn | |
402 | showfunc | |
403 | showscan | |
404 | showsummary | |
405 | singleinclude | |
406 | sizeofformalarray | |
407 | sizeoftype | |
408 | skipansiheaders | |
409 | skipposixheaders | |
410 | skipsysheaders | |
1f11dead | 411 | slashslashcomment |
885824d3 | 412 | slovak |
413 | slovakconsts | |
414 | slovakfcns | |
415 | slovakmacros | |
416 | slovaktypes | |
417 | slovakvars | |
418 | specglobimponly | |
419 | specimponly | |
420 | specmacros | |
421 | specretimponly | |
422 | specstructimponly | |
423 | specundecl | |
424 | specundef | |
425 | stackref | |
15b3d2b2 | 426 | statemerge |
427 | statetransfer | |
885824d3 | 428 | staticinittrans |
429 | statictrans | |
430 | stats | |
431 | strictbranchstate | |
432 | strictdestroy | |
433 | strictlib | |
434 | strictops | |
435 | strictusereleased | |
436 | stringliterallen | |
8fe44445 | 437 | stringliteralnoroom |
438 | stringliteralsmaller | |
439 | stringliteraltoolong | |
885824d3 | 440 | structimponly |
441 | supcounts | |
15b3d2b2 | 442 | superuser |
885824d3 | 443 | switchloopbreak |
444 | switchswitchbreak | |
445 | syntax | |
446 | sysdirerrors | |
447 | sysdirexpandmacros | |
448 | sysdirs | |
449 | sysunrecog | |
450 | tagprefix | |
451 | tagprefixexclude | |
452 | temptrans | |
453 | timedist | |
454 | tmpcomments | |
455 | tmpdir | |
15b3d2b2 | 456 | toctou |
885824d3 | 457 | topuse |
458 | trytorecover | |
459 | type | |
460 | typeprefix | |
461 | typeprefixexclude | |
462 | typeuse | |
463 | uncheckedglobalias | |
464 | uncheckedmacroprefix | |
465 | uncheckedmacroprefixexclude | |
466 | uniondef | |
467 | unixlib | |
1d239d69 | 468 | unixstandard |
885824d3 | 469 | unixstrictlib |
470 | unqualifiedinittrans | |
471 | unqualifiedtrans | |
472 | unreachable | |
473 | unrecog | |
474 | unrecogcomments | |
15b3d2b2 | 475 | unrecogflagcomments |
4c9767b3 | 476 | unrecognizeddirective |
1d239d69 | 477 | unsignedcompare |
885824d3 | 478 | unusedspecial |
479 | usedef | |
480 | usereleased | |
481 | usestderr | |
482 | usevarargs | |
483 | varuse | |
484 | voidabstract | |
485 | warnflags | |
486 | warnlintcomments | |
487 | warnmissingglobs | |
488 | warnmissingglobsnoglobs | |
489 | warnposixheaders | |
60868d40 | 490 | warnrc |
885824d3 | 491 | warnunixlib |
15b3d2b2 | 492 | warnuse |
885824d3 | 493 | whichlib |
494 | whileblock | |
495 | whileempty | |
cc78dedd | 496 | zerobool |
885824d3 | 497 | |
498 | ||
885824d3 | 499 | likelybool --- type name is probably a boolean type but does not match default |
500 | boolean type name, "bool", and alternate name is not set | |
501 | impabstract --- assume user type definitions are abstract (unless | |
502 | /*@concrete@*/ is used) | |
503 | accessall --- set accessmodule, accessfile and accessczech | |
504 | accessmodule --- allow access to abstract types in definition module | |
505 | accessfile --- allow access to abstract types by file name convention | |
506 | accessczech --- allow access to abstract types by czech naming convention | |
507 | accessslovak --- allow access to abstract types by slovak naming convention | |
508 | accessczechoslovak --- allow access to abstract types by czechoslovak naming | |
509 | convention | |
510 | abstract --- data abstraction barriers | |
511 | mutrep --- representation of mutable type has sharing semantics | |
512 | globalias --- function returns with global aliasing external state (sets | |
513 | checkstrictglobalias, checkedglobalias, checkmodglobalias and | |
514 | uncheckedglobalias) | |
515 | checkstrictglobalias --- function returns with a checkstrict global aliasing | |
516 | external state | |
517 | checkedglobalias --- function returns with a checked global aliasing external | |
518 | state | |
519 | checkmodglobalias --- function returns with a checkmod global aliasing external | |
520 | state | |
521 | uncheckedglobalias --- function returns with an unchecked global aliasing | |
522 | external state | |
523 | aliasunique --- unique parameter is aliased | |
524 | mayaliasunique --- unique parameter may be aliased | |
525 | mustnotalias --- temp storage aliased at return point or scope exit | |
526 | retalias --- function returns alias to parameter or global | |
527 | noparams --- function declaration has no parameter list | |
528 | oldstyle --- old style function definition | |
529 | gnuextensions --- support some gnu (gcc) language extensions | |
530 | usevarargs --- non-standard <varargs.h> included | |
531 | warnposixheaders --- a POSIX header is included, but the POSIX library is not | |
532 | used | |
533 | exitarg --- argument to exit has implementation defined behavior | |
534 | evalorder --- code has unspecified or implementation-dependent behavior because | |
535 | of order of evaluation | |
536 | evalorderuncon --- code involving call to unspecified function has undefined or | |
537 | implementation-dependent behavior | |
538 | boolfalse --- set name of boolean false (default FALSE) | |
539 | booltype --- set name of boolean type (default bool) | |
540 | booltrue --- set name of boolean true (default TRUE) | |
541 | noaccess --- ignore access comments | |
542 | nocomments --- ignore all stylized comments | |
543 | unrecogcomments --- stylized comment is unrecognized | |
15b3d2b2 | 544 | unrecogflagcomments --- stylized flag comment uses an unrecognized flag |
885824d3 | 545 | continuecomment --- line continuation marker (\) in comment before */ on same |
546 | line | |
1f11dead | 547 | slashslashcomment --- C++ style // comment |
885824d3 | 548 | nestcomment --- comment begins inside comment |
549 | tmpcomments --- interpret t comments (ignore errors in lines marked with | |
550 | /*@t<n>@*/ | |
551 | lintcomments --- interpret traditional lint comments (/*FALLTHROUGH*/, | |
552 | /*NOTREACHED*/) | |
553 | warnlintcomments --- print a warning and suggest an alternative when a | |
554 | traditional lint comment is used | |
555 | declundef --- function or variable declared but never defined | |
556 | specundef --- function or variable specified but never defined | |
557 | specundecl --- function or variable specified but never declared in a source | |
558 | file | |
559 | loopexec --- assume all loops execute at least once | |
560 | infloops --- likely infinite loop is detected | |
561 | infloopsuncon --- likely infinite loop is detected (may result from | |
562 | unconstrained function) | |
563 | deepbreak --- break inside nested while or for or switch | |
564 | looploopbreak --- break inside nested while or for | |
565 | switchloopbreak --- break in loop inside switch | |
566 | loopswitchbreak --- break in switch inside loop | |
567 | switchswitchbreak --- break in switch inside switch | |
568 | looploopcontinue --- continue inside nested loop | |
569 | unreachable --- unreachable code detected | |
570 | whileempty --- a while statement has no body | |
571 | whileblock --- the body of a while statement is not a block | |
572 | forempty --- a for statement has no body | |
573 | forblock --- the body of a for statement is not a block | |
574 | ifempty --- an if statement has no body | |
575 | ifblock --- the body of an if statement is not a block | |
576 | allempty --- an if, while or for statement has no body (sets ifempty, | |
577 | whileempty and forempty | |
578 | allblock --- the body of an if, while or for statement is not a block (sets | |
579 | ifblock, whileblock and forblock) | |
580 | elseifcomplete --- if ... else if chains must have final else | |
581 | noret --- path with no return detected in non-void function | |
582 | casebreak --- non-empty case in a switch without preceding break | |
583 | misscase --- switch on enum type missing case for some value | |
584 | firstcase --- first statement in switch is not a case | |
585 | shadow --- declaration reuses name visible in outer scope | |
586 | incondefslib --- function, variable or constant defined in a library is | |
587 | redefined with inconsistent type | |
588 | overload --- library function overloaded | |
589 | nestedextern --- an extern declaration is inside a function scope | |
590 | redecl --- function or variable redeclared | |
591 | redef --- function or variable redefined | |
592 | incondefs --- function, variable or constant redefined with inconsistent type | |
593 | imptype --- variable declaration has unknown (implicitly int) type | |
594 | matchfields --- struct or enum type redefined with inconsistent fields or | |
595 | members | |
596 | usedef --- use before definition | |
597 | impouts --- pointer parameters to unspecified functions may be implicit out | |
598 | parameters | |
599 | tmpdir --- set directory for writing temp files | |
600 | larchpath --- set path for searching for library files (overrides LARCH_PATH | |
601 | environment variable) | |
602 | lclimportdir --- set directory to search for LCL import files (overrides | |
603 | LCLIMPORTDIR) | |
604 | sysdirs --- set directories for system files (default /usr/include). Separate | |
15b3d2b2 | 605 | directories with path separator (colons in Unix, semi-colons in Windows). Flag |
606 | settings propagate to files in a system directory. If -sysdirerrors is set, no | |
607 | errors are reported for files in system directories. | |
885824d3 | 608 | skipansiheaders --- prevent inclusion of header files in a system directory |
609 | with names that match standard ANSI headers. The symbolic information in the | |
610 | standard library is used instead. Flag in effect only if a library including | |
611 | the ANSI library is loaded. The ANSI headers are: | |
612 | assert, ctype, errno, float, limits, locale, math, setjmp, signal, stdarg, | |
613 | stddef, stdio, stdlib, strings, string, time, and wchar. | |
614 | skipposixheaders --- prevent inclusion of header files in a system directory | |
615 | with names that match standard POSIX headers. The symbolic information in the | |
616 | posix library is used instead. The POSIX headers are: | |
617 | dirent, fcntl, grp, pwd, termios, sys/stat, sys/times, sys/types, sys/utsname, | |
618 | sys/wait, unistd, and utime. | |
619 | sysdirerrors --- report errors in files in system directories (set by -sysdirs) | |
620 | sysdirexpandmacros --- expand macros in system directories regardless of other | |
621 | settings, except for macros corresponding to names defined in a load library | |
622 | I<directory> --- add to C include path | |
623 | S<directory> --- add to spec path | |
624 | quiet --- suppress herald and error count | |
625 | usestderr --- send error messages to standard error (instead of standard out) | |
626 | showsummary --- show summary of all errors reported and suppressed | |
627 | showscan --- show file names are they are processed | |
628 | stats --- display lines processed and time | |
629 | timedist --- display time distribution | |
630 | showalluses --- show sorted list of uses of all globals | |
631 | noeffect --- statement with no effect | |
632 | noeffectuncon --- statement with no effect (except possibly through call to | |
633 | unconstrained function) | |
634 | exportany --- variable, function or type exported but not specified | |
635 | exportfcn --- function exported but not specified | |
636 | exportmacro --- expanded macro exported but not specified | |
637 | exporttype --- type definition exported but not specified | |
638 | exportvar --- variable exported but not specified | |
639 | exportconst --- constant exported but not specified | |
640 | exportiter --- constant exported but not specified | |
641 | repexpose --- abstract representation is exposed (sets assignexpose, retexpose, | |
642 | and castexpose) | |
643 | retexpose --- abstract representation is exposed (return values only) | |
644 | assignexpose --- abstract representation is exposed (assignments only) | |
645 | castexpose --- abstract representation is exposed through a cast | |
646 | linelen --- set length of messages (number of chars) | |
15b3d2b2 | 647 | indentspaces --- set number of spaces to indent sub-messages |
885824d3 | 648 | showcolumn --- show column number where error is found |
649 | parenfileformat --- show column number where error is found | |
650 | showfunc --- show name of function containing error | |
651 | showallconjs --- show all possible types | |
652 | impconj --- make all alternate types implicit (useful for making system | |
653 | libraries | |
654 | expect --- expect <int> code errors | |
655 | lclexpect --- expect <int> spec errors | |
656 | partial --- check as partial system (-specundef, -declundef, -exportlocal, | |
657 | don't check macros in headers without corresponding .c files) | |
658 | globs --- undocumented use of a checked global variable | |
659 | globuse --- global listed for a function not used | |
660 | internalglobs --- use of internalState | |
661 | internalglobsnoglobs --- use of internalState (in function with no globals | |
662 | list) | |
663 | warnmissingglobs --- global variable used in modifies clause is not listed in | |
664 | globals list | |
665 | warnmissingglobsnoglobs --- global variable used in modifies clause in a | |
666 | function with no globals list | |
667 | globnoglobs --- use of checked global in a function with no globals list or | |
668 | specification | |
669 | allglobs --- report use and modification errors for globals not annotated with | |
670 | unchecked | |
671 | checkstrictglobs --- report use and modification errors for checkedstrict | |
672 | globals | |
673 | impcheckedspecglobs --- assume checked qualifier for unqualified global | |
674 | declarations in .lcl files | |
675 | impcheckmodspecglobs --- assume checkmod qualifier for unqualified global | |
676 | declarations in .lcl files | |
677 | impcheckedstrictspecglobs --- assume checkmod qualifier for unqualified global | |
678 | declarations in .lcl files | |
679 | impcheckedglobs --- assume checked qualifier for unqualified global | |
680 | declarations | |
681 | impcheckmodglobs --- assume checkmod qualifier for unqualified global | |
682 | declarations | |
683 | impcheckedstrictglobs --- assume checkedstrict qualifier for unqualified global | |
684 | declarations | |
685 | impcheckedstatics --- assume checked qualifier for unqualified file static | |
686 | declarations | |
687 | impcheckmodstatics --- assume checkmod qualifier for unqualified file static | |
688 | declarations | |
689 | impcheckmodinternals --- assume checkmod qualifier for unqualified local static | |
690 | declarations (for internal state modifications) | |
691 | impcheckedstrictstatics --- assume checkedstrict qualifier for unqualified file | |
692 | static declarations | |
693 | modglobs --- undocumented modification of a checked global variable | |
694 | modglobsnomods --- undocumented modification of a checked global variable in a | |
695 | function declared with no modifies clause | |
696 | modstrictglobsnomods --- undocumented modification of a strict checked global | |
697 | variable in a function declared with no modifies clause | |
698 | modglobsunchecked --- undocumented modification of an unchecked checked global | |
699 | variable | |
700 | lh --- generate .lh files | |
701 | lcs --- generate .lcs files | |
702 | singleinclude --- optimize header inclusion to eliminate redundant includes | |
703 | neverinclude --- optimize header inclusion to not include any header files | |
704 | skipsysheaders --- do not include header files in system directories (set by | |
705 | -sysdirs) | |
60868d40 | 706 | warnflags --- warn when command line sets flag in abnormal way |
707 | warnrc --- warn when there are problems with reading the initialization files | |
885824d3 | 708 | warnunixlib --- warn when the unix library is used |
15b3d2b2 | 709 | badflag --- warn about bad command line flags |
60868d40 | 710 | forcehints --- provide a hint for every warnings |
885824d3 | 711 | help --- -help <flags> will describe flags |
60868d40 | 712 | hints --- provide a hint the first time a particular warning appears |
885824d3 | 713 | retval --- return value ignored (sets retvalint, retvalbool and retvalother) |
714 | retvalother --- return value of type other than bool or int ignored | |
cc78dedd | 715 | retvalbool --- return value of manifest type bool ignored |
885824d3 | 716 | retvalint --- return value of type int ignored |
60868d40 | 717 | f --- read an options file (default ~/.splintrc not loaded) |
885824d3 | 718 | i --- set LCL initilization file |
719 | nof --- do not read options file | |
720 | needspec --- information in specifications is not also included in syntactic | |
721 | comments | |
722 | newdecl --- report new global declarations in source files | |
723 | hasyield --- iter declaration has no yield parameters | |
724 | dump --- save state for merging (default suffix .lcd) | |
725 | load --- load state from dump file (default suffix .lcd) | |
726 | nolib --- do not load standard library | |
727 | ansilib --- use ANSI (ISO) standard library | |
728 | strictlib --- interpret standard library strictly | |
729 | unixlib --- use UNIX (sort-of) standard library | |
730 | unixstrictlib --- use strict version of UNIX (sort-of) library | |
731 | posixlib --- use POSIX standard library | |
732 | posixstrictlib --- use strict POSIX standard library | |
733 | whichlib --- show standard library filename | |
15b3d2b2 | 734 | mts --- load meta state declaration and corresponding xh file |
885824d3 | 735 | commentchar --- set marker character for syntactic comments (default is '@') |
736 | allmacros --- sets fcnmacros and constmacros | |
737 | libmacros --- check all macros with declarations in library as functions | |
738 | specmacros --- check all macros corresponding to specified functions or | |
739 | constants | |
740 | fcnmacros --- check all macros with parameter lists as functions | |
741 | constmacros --- check all macros without parameter lists as constants | |
742 | macromatchname --- macro definition does not match iter or constant declaration | |
743 | nextlinemacros --- the line after a constant or iter declaration must be a | |
744 | macro definition | |
745 | macrostmt --- macro definition is syntactically not equivalent to function | |
746 | macroempty --- macro definition for is empty | |
747 | macroparams --- macro parameter not used exactly once | |
748 | macroassign --- assignment to a macro parameter | |
749 | sefparams --- a parameter with side-effects is passed as a sef parameter | |
750 | sefuncon --- a parameter with unconstrained side-effects is passed as a sef | |
751 | parameter | |
752 | macroparens --- macro parameter used without parentheses (in potentially | |
753 | dangerous context) | |
754 | macrodecl --- macro without prototype or specification (sets macrofcndecl and | |
755 | macroconstdecl) | |
756 | macrofcndecl --- parameterized macro without prototype or specification | |
757 | macroconstdecl --- non-parameterized macro without prototype or specification | |
758 | macroredef --- macro redefined | |
759 | macrounrecog --- unrecognized identifier in macro | |
760 | stackref --- external reference to stack-allocated storage is created | |
761 | usereleased --- storage used after release | |
762 | strictusereleased --- element used after it may have been released | |
763 | compdef --- parameter, return value or global completely defined | |
764 | compmempass --- actual parameter matches alias kind of formal parameter | |
765 | completely | |
766 | mustdefine --- out storage not defined before return or scope exit | |
767 | uniondef --- at least one field of a union must be defined | |
768 | memimp --- memory errors for unqualified storage | |
769 | paramimptemp --- assume unannotated parameter is temp | |
770 | allimponly --- sets globimponly, retimponly, structimponly, specglobimponly, | |
771 | specretimponly and specstructimponly | |
772 | codeimponly --- sets globimponly, retimponly and structimponly | |
773 | specimponly --- sets specglobimponly, specretimponly and specstructimponly | |
774 | globimponly --- assume unannotated global storage is only | |
775 | retimponly --- assume unannotated returned storage is only | |
776 | structimponly --- assume unannotated structure field is only | |
777 | specglobimponly --- assume unannotated global storage is only | |
778 | specretimponly --- assume unannotated returned storage is only | |
779 | specstructimponly --- assume unannotated structure field is only | |
780 | deparrays --- array elements are dependent storage | |
781 | compdestroy --- all only references derivable from void pointer out only | |
782 | parameter are released | |
783 | strictdestroy --- report complete destruction errors for array elements that | |
784 | may have been released | |
785 | mustfree --- only storage not released before return or scope exit | |
786 | branchstate --- storage has inconsistent states of alternate paths through a | |
787 | branch | |
788 | strictbranchstate --- storage through array fetch has inconsistent states of | |
789 | alternate paths through a branch | |
790 | memchecks --- sets all dynamic memory checking flags (memimplicit, mustfree, | |
791 | mustdefine, mustnotalias, null, memtrans) | |
792 | memtrans --- memory transfer errors (sets all *trans flags) | |
793 | exposetrans --- exposure transfer errors | |
794 | observertrans --- observer transfer errors | |
795 | dependenttrans --- dependent transfer errors | |
796 | newreftrans --- new reference transfer to reference counted reference | |
797 | onlytrans --- only storage transferred to non-only reference (memory leak) | |
798 | onlyunqglobaltrans --- only storage transferred to an unqualified global or | |
799 | static reference (memory leak) | |
800 | ownedtrans --- owned storage transferred to non-owned reference (memory leak) | |
801 | freshtrans --- fresh storage transferred to non-only reference (memory leak) | |
802 | sharedtrans --- shared storage transferred to non-shared reference | |
803 | temptrans --- temp storage transferred to non-temporary reference | |
804 | kepttrans --- kept storage transferred to non-temporary reference | |
805 | keeptrans --- keep storage transferred inconsistently | |
806 | immediatetrans --- an immediate address (result of &) is transferred | |
807 | inconsistently | |
808 | refcounttrans --- reference counted storage is transferred in an inconsistent | |
809 | way | |
810 | statictrans --- static storage is transferred in an inconsistent way | |
811 | unqualifiedtrans --- unqualified storage is transferred in an inconsistent way | |
812 | staticinittrans --- static storage is used as an initial value in an | |
813 | inconsistent way | |
814 | unqualifiedinittrans --- unqualified storage is used as an initial value in an | |
815 | inconsistent way | |
816 | readonlystrings --- string literals are read-only (error if one is modified or | |
817 | released) | |
818 | readonlytrans --- report memory transfer errors for initializations to | |
819 | read-only string literals | |
820 | passunknown --- passing a value as an un-annotated parameter clears its | |
821 | annotation | |
822 | mods --- unspecified modification of caller-visible state | |
823 | mustmod --- specified modification is not detected | |
824 | modobserver --- possible modification of observer storage | |
825 | modobserveruncon --- possible modification of observer storage through | |
826 | unconstrained call | |
827 | modinternalstrict --- possible modification of internal storage through | |
828 | function call | |
829 | modfilesys --- report undocumented file system modifications (applies to | |
830 | unspecified functions if modnomods is set) | |
831 | modunspec --- modification in unspecified functions (sets modnomods, | |
832 | modglobunspec and modstrictglobsunspec) | |
833 | modnomods --- modification in a function with no modifies clause | |
834 | moduncon --- possible modification through a call to an unconstrained function | |
835 | modunconnomods --- possible modification through a call to an unconstrained | |
836 | function in a function with no modifies clause | |
837 | globsimpmodsnothing --- functions declared with a globals list but no modifies | |
838 | clause are assumed to modify nothing | |
839 | modsimpnoglobs --- functions declared with a modifies clause but no globals | |
840 | list are assumed to use no globals | |
841 | namechecks --- controls name checking without changing other settings | |
842 | czech --- czech naming convention (sets accessczech, czechfunctions, czechvars, | |
843 | czechconstants, czechenums, and czechmacros) | |
844 | czechfcns --- czech naming convention violated in a function or iterator | |
845 | declaration | |
846 | czechvars --- czech naming convention violated in a variable declaration | |
847 | czechmacros --- czech naming convention violated in an expanded macro name | |
848 | czechconsts --- czech naming convention violated in a constant declaration | |
849 | czechtypes --- czech naming convention violated in a user-defined type | |
850 | definition | |
851 | slovak --- slovak naming convention violated | |
852 | slovakfcns --- slovak naming convention violated in a function or iterator | |
853 | declaration | |
854 | slovakmacros --- slovak naming convention violated in an expanded macro name | |
855 | slovakvars --- slovak naming convention violated in a variable declaration | |
856 | slovakconsts --- slovak naming convention violated in a constant declaration | |
857 | slovaktypes --- slovak naming convention violated in a use-defined type | |
858 | definition | |
859 | czechoslovak --- czech or slovak naming convention violated | |
860 | czechoslovakfcns --- czechoslovak naming convention violated in a function or | |
861 | iterator declaration | |
862 | czechoslovakmacros --- czechoslovak naming convention violated in an expanded | |
863 | macro name | |
864 | czechoslovakvars --- czechoslovak naming convention violated in a variable | |
865 | declaration | |
866 | czechoslovakconsts --- czechoslovak naming convention violated in a constant | |
867 | declaration | |
868 | czechoslovaktypes --- czechoslovak naming convention violated in a user-defined | |
869 | type definition | |
870 | ansireserved --- external name conflicts with name reserved for system or | |
871 | standard library | |
872 | cppnames --- external or internal name is a C++ keyword or reserved word | |
873 | ansireservedinternal --- internal name conflicts with name reserved for system | |
874 | or standard library | |
875 | distinctexternalnames --- external name is not distinguishable from another | |
876 | external name using the number of significant characters | |
877 | externalnamelen --- set the number of significant characters in an external | |
878 | name | |
879 | externalnamecaseinsensitive --- alphabetic comparisons for external names are | |
880 | case-insensitive | |
881 | distinctinternalnames --- internal name is not distinguishable from another | |
882 | internal name using the number of significant characters | |
883 | internalnamelen --- set the number of significant characters in an internal | |
884 | name | |
885 | internalnamecaseinsensitive --- set whether case is significant an internal | |
886 | names (-internalnamecaseinsensitive means case is significant) | |
887 | internalnamelookalike --- lookalike characters match in internal names | |
888 | macrovarprefix --- set namespace prefix for variables declared in a macro body | |
889 | macrovarprefixexclude --- the macrovarprefix may not be used for non-macro | |
890 | variables | |
891 | tagprefix --- set namespace prefix for struct, union and enum tags | |
892 | tagprefixexclude --- the tagprefix may not be used for non-tag identifiers | |
893 | enumprefix --- set namespace prefix for enum members | |
894 | enumprefixexclude --- the enumprefix may not be used for non-enum member | |
895 | identifiers | |
896 | filestaticprefix --- set namespace prefix for file static declarations | |
897 | filestaticprefixexclude --- the filestaticprefix may not be used for | |
898 | identifiers that are not file static | |
899 | globalprefix --- set namespace prefix for global variables | |
900 | globalprefixexclude --- the globalprefix may not be used for non-global | |
901 | identifiers | |
902 | typeprefix --- set namespace prefix for user-defined types | |
903 | typeprefixexclude --- the typeprefix may not be used for identifiers that are | |
904 | not type names | |
905 | externalprefix --- set namespace prefix for external identifiers | |
906 | externalprefixexclude --- the externalprefix may not be used for non-external | |
907 | identifiers | |
908 | localprefix --- set namespace prefix for local variables | |
909 | localprefixexclude --- the localprefix may not be used for non-local | |
910 | identifiers | |
911 | uncheckedmacroprefix --- set namespace prefix for unchecked macros | |
912 | uncheckedmacroprefixexclude --- the uncheckmacroprefix may not be used for | |
913 | identifiers that are not unchecked macros | |
914 | constprefix --- set namespace prefix for constants | |
915 | constprefixexclude --- the constprefix may not be used for non-constant | |
916 | identifiers | |
917 | iterprefix --- set namespace prefix for iterators | |
918 | iterprefixexclude --- the iterprefix may not be used for non-iter identifiers | |
919 | protoparamprefix --- set namespace prefix for parameters in function prototype | |
920 | declarations | |
921 | protoparamname --- a parameter in a function prototype has a name | |
922 | protoparammatch --- the name of a parameter in a function prototype and | |
923 | corresponding declaration must match (after removing the protoparamprefix | |
924 | protoparamprefixexclude --- the protoparamprefix may not be used for | |
925 | non-declaraction parameter identifiers | |
926 | controlnestdepth --- set maximum nesting depth of compound statements, | |
927 | iteration control structures, and selection control structures (ANSI minimum is | |
928 | 15) | |
929 | stringliterallen --- set maximum length of string literals (ANSI minimum is | |
930 | 509) | |
931 | numstructfields --- set maximum number of fields in a struct or union (ANSI | |
932 | minimum is 127) | |
933 | numenummembers --- set maximum number of members of an enum (ANSI minimum is | |
934 | 127) | |
935 | includenest --- set maximum number of nested #include files | |
936 | ansilimits --- check for violations of standard limits (controlnestdepth, | |
937 | stringliterallen, includenest, numstructfields, numenummembers) | |
938 | null --- misuses of null pointer | |
8e349e11 | 939 | nullterminated --- misuse of nullterminated allocation |
8e349e11 | 940 | arrayread --- possible out of bounds read |
941 | arraywrite --- possible buffer overflow from an out of bounds write | |
942 | fcnpost --- Function has the post condition | |
15b3d2b2 | 943 | parenconstraint --- parenthesize constraint term |
944 | debugfcnconstraint --- debuging constraint flas | |
945 | arraybounds --- Possible out-of-bounds store. Unable to resolve constraint: | |
946 | arrayboundsread --- Possible out-of-bounds read. Unable to resolve constraint: | |
8e349e11 | 947 | fcnconstraint --- unresolved constraint |
15b3d2b2 | 948 | checkpost --- unable to verify ensures annotation |
949 | constraintlocation --- display full c expression for every constraint generated | |
950 | implictconstraint --- Try to generate implicit constraints for functions | |
951 | orconstraint --- Use limited OR expressions to resolve constraints | |
8e349e11 | 952 | nullterminated --- misuse of nullterminated allocation |
885824d3 | 953 | nullderef --- possible dereferencce of null pointer |
954 | fcnderef --- dereferencce of a function type | |
955 | nullpass --- possibly null pointer passed as formal with no null annotation | |
956 | nullret --- possibly null pointer returned as result with no null annotation | |
957 | nullstate --- possibly null pointer reachable from a reference with no null | |
958 | annotation | |
959 | nullassign --- inconsistent assignment or initialization involving null pointer | |
960 | boolcompare --- comparison between bools (dangerous because of multiple TRUE | |
961 | values) | |
962 | realcompare --- dangerous comparison between reals (dangerous because of | |
963 | inexact floating point representations) | |
1d239d69 | 964 | unsignedcompare --- comparison using <, <=, >= between an unsigned integral and |
965 | zero constant | |
885824d3 | 966 | ptrarith --- arithmetic involving pointer and integer |
967 | nullptrarith --- arithmetic involving possibly null pointer and integer | |
968 | ptrcompare --- comparison between pointer and number | |
969 | strictops --- primitive operation does not type check strictly | |
970 | bitwisesigned --- a bitwise logical operator does not have unsigned operands | |
971 | shiftsigned --- a shift operator does not have unsigned operands | |
972 | boolops --- primitive operation (!, && or ||) does not has a boolean argument | |
973 | ptrnegate --- allow ! to be used on pointer operand | |
974 | sizeoftype --- sizeof operator has a type argument | |
975 | sizeofformalarray --- sizeof operator has an array formal parameter argument | |
976 | fixedformalarray --- formal parameter of type array is declared with size | |
977 | incompletetype --- formal parameter has an incomplete type | |
978 | formalarray --- formal parameter is an array | |
979 | predassign --- condition test (if, while or for) is an assignment | |
980 | predbool --- type of condition test (if, while or for) not bool (sets | |
981 | predboolint, predboolptr and predboolothers) | |
982 | predboolint --- type of condition test (if, while or for) is an integral type | |
983 | predboolothers --- type of condition test (if, while or for) not bool, int or | |
984 | pointer | |
985 | predboolptr --- type of condition test (if, while or for) is a pointer | |
986 | D<initializer> --- passed to pre-processor | |
987 | U<initializer> --- passed to pre-processor | |
4c9767b3 | 988 | unrecognizeddirective --- unrecognized pre-processor directive |
885824d3 | 989 | globstate --- returns with global in inconsistent state (null or undefined) |
990 | supcounts --- The number of errors detected does not match number in | |
991 | /*@i<n>@*/. | |
992 | limit --- limit <int> consecutive repeated errors | |
993 | syntax --- syntax error in parsing | |
994 | trytorecover --- try to recover from parse error | |
995 | type --- type mismatch | |
996 | fullinitblock --- initializer sets all fields | |
8fe44445 | 997 | initallelements --- initializer defines all array elements |
998 | initsize --- initializer defines extra array elements | |
999 | stringliteraltoolong --- string literal too long for character array | |
1000 | stringliteralnoroom --- string literal leaves no room for null terminator | |
1001 | stringliteralsmaller --- string literal is smaller than the char array it is | |
1002 | assigned to | |
885824d3 | 1003 | enummembers --- enum members must be int values |
1004 | maintype --- type of main does not match expected type | |
1005 | formattype --- type-mismatch in parameter corresponding to format code in a | |
1006 | printf or scanf-like function | |
15b3d2b2 | 1007 | formatconst --- format parameter is not a string constant (hence variable |
1008 | arguments cannot be typechecked) | |
885824d3 | 1009 | formatcode --- invalid format code in format string for printf or scanf-like |
1010 | function | |
1011 | forwarddecl --- forward declarations of pointers to abstract representation | |
1012 | match abstract type | |
1013 | voidabstract --- void * matches pointers to abstract types, casting ok | |
1014 | (dangerous) | |
1015 | castfcnptr --- a pointer to a function is cast to a pointer to void (or vice | |
1016 | versa) | |
1017 | charindex --- char can be used to index arrays | |
1018 | enumindex --- enum can be used to index arrays | |
1019 | boolint --- bool and int are equivalent | |
1020 | charint --- char and int are equivalent | |
1021 | enumint --- enum and int are equivalent | |
1022 | floatdouble --- float and double are equivalent | |
1023 | ignorequals --- ignore type qualifiers (long, short, unsigned) | |
1024 | duplicatequals --- report duplicate type qualifiers (e.g., long long) | |
1025 | ignoresigns --- ignore signs in type comparisons (unsigned matches signed) | |
1026 | numliteral --- int literals can be reals | |
1027 | charintliteral --- character constants (e.g., 'a') can be used as ints | |
1028 | relaxquals --- report qualifier mismatches only if dangerous | |
1029 | relaxtypes --- allow all numeric types to match | |
1030 | charunsignedchar --- allow char and unsigned char types to match | |
1031 | matchanyintegral --- allow any intergral type to match an arbitrary integral | |
1032 | type (e.g., dev_t) | |
1033 | longunsignedintegral --- allow long unsigned type to match an arbitrary | |
1034 | integral type (e.g., dev_t) | |
1035 | longintegral --- allow long type to match an arbitrary integral type (e.g., | |
1036 | dev_t) | |
1037 | longunsignedunsignedintegral --- allow long unsigned type to match an arbitrary | |
1038 | unsigned integral type (e.g., size_t) | |
1039 | longsignedintegral --- allow long type to match an arbitrary signed integral | |
1040 | type (e.g., ssize_t) | |
1041 | zeroptr --- 0 is treated as a pointer | |
cc78dedd | 1042 | zerobool --- 0 is treated as a boolean |
885824d3 | 1043 | repeatunrecog --- do not suppress repeated unrecognized identifier messages |
1044 | (instead of only reporting the first error) | |
1045 | sysunrecog --- report unrecognized identifiers with system (__) prefix | |
1046 | unrecog --- unrecognized identifier | |
1047 | topuse --- declaration at top level not used | |
1048 | exportlocal --- a declaration is exported but not used outside this module | |
1049 | exportheader --- a declaration is exported but does not appear in a header file | |
1050 | exportheadervar --- a variable declaration is exported but does not appear in a | |
1051 | header file | |
1052 | fielduse --- field of structure type not used | |
1053 | enummemuse --- member of an enum type not used | |
1054 | constuse --- constant declared but not used | |
1055 | fcnuse --- function declared but not used | |
1056 | paramuse --- function parameter not used | |
1057 | typeuse --- type declared but not used | |
1058 | varuse --- variable declared but not used | |
1059 | unusedspecial --- unused declaration in special file (corresponding to .l or .y | |
1060 | file) | |
15b3d2b2 | 1061 | redundantsharequal --- declaration uses observer qualifier that is always true |
1062 | misplacedsharequal --- declaration of unsharable storage uses sharing | |
1063 | annotation | |
1064 | annotationerror --- annotation is used in inconsistent location | |
1065 | commenterror --- inconsistent syntactic comment | |
1066 | bugslimit --- set maximum number of bugs detected before giving up | |
1067 | fileextensions --- warn when command line file does not have a recognized | |
1068 | extension | |
1069 | warnuse --- warn when declaration marked with warn is used | |
1070 | statetransfer --- storage has been transfered with invalid state | |
1071 | statemerge --- control paths merge with storage in incompatible states | |
1072 | its4mostrisky --- most risky security vulnerabilities (from its4 database) | |
1073 | its4veryrisky --- very risky security vulnerabilities (from its4 database) | |
1074 | its4risky --- risky security vulnerabilities (from its4 database) | |
1075 | its4moderate --- moderately risky security vulnerabilities (from its4 database) | |
1076 | its4low --- risky security vulnerabilities (from its4 database) | |
1077 | bufferoverflowhigh --- likely buffer overflow vulnerability | |
1078 | bufferoverflow --- possible buffer overflow vulnerability | |
1079 | toctou --- possible time of check, time of use vulnerability | |
1080 | multithreaded --- function is not reentrant | |
1d239d69 | 1081 | portability --- function may have undefined behavior |
1082 | unixstandard --- function is not required in Standard UNIX Specification | |
15b3d2b2 | 1083 | superuser --- function is restricted to superusers |
1084 | implementationoptional --- declarator is implementation optional (ISO99 does | |
1085 | not require an implementation to provide it) | |
79127b5d | 1086 | legacy --- legacy declaration in Unix Standard |
885824d3 | 1087 |