2 Source files are .c, .h and .lcl files. If there is no suffix,
3 Splint will look for <file>.c and <file>.lcl.
5 Use splint -help <topic or flag name> for more information
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)
25 Finished checking --- no code processed
27 Source files are .c, .h and .lcl files. If there is no suffix,
28 Splint will look for <file>.c and <file>.lcl.
30 Use splint -help <topic or flag name> for more information
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)
51 Command Line: Unrecognized option: asdf
52 A flag is not recognized or used in an incorrect way (Use -badflag to inhibit
55 Finished checking --- no code processed
57 Warning: setting +boolint redundant with current value
59 Finished checking --- no code processed
140 distinctexternalnames
141 distinctinternalnames
166 externalnamecaseinsensitive
169 externalprefixexclude
179 filestaticprefixexclude
217 impcheckedstrictglobs
218 impcheckedstrictspecglobs
219 impcheckedstrictstatics
225 implementationoptional
240 internalnamecaseinsensitive
242 internalnamelookalike
274 longunsignedunsignedintegral
291 macrovarprefixexclude
377 protoparamprefixexclude
472 uncheckedmacroprefixexclude
483 unrecognizeddirective
495 warnmissingglobsnoglobs
507 likelybool --- type name is probably a boolean type but does not match default
508 boolean type name, "bool", and alternate name is not set
509 impabstract --- assume user type definitions are abstract (unless
510 /*@concrete@*/ is used)
511 accessall --- set accessmodule, accessfile and accessczech
512 accessmodule --- allow access to abstract types in definition module
513 accessfile --- allow access to abstract types by file name convention
514 accessczech --- allow access to abstract types by czech naming convention
515 accessslovak --- allow access to abstract types by slovak naming convention
516 accessczechoslovak --- allow access to abstract types by czechoslovak naming
518 abstract --- data abstraction barriers
519 mutrep --- representation of mutable type has sharing semantics
520 globalias --- function returns with global aliasing external state (sets
521 checkstrictglobalias, checkedglobalias, checkmodglobalias and
523 checkstrictglobalias --- function returns with a checkstrict global aliasing
525 checkedglobalias --- function returns with a checked global aliasing external
527 checkmodglobalias --- function returns with a checkmod global aliasing external
529 uncheckedglobalias --- function returns with an unchecked global aliasing
531 aliasunique --- unique parameter is aliased
532 mayaliasunique --- unique parameter may be aliased
533 mustnotalias --- temp storage aliased at return point or scope exit
534 retalias --- function returns alias to parameter or global
535 noparams --- function declaration has no parameter list
536 oldstyle --- old style function definition
537 gnuextensions --- support some gnu (gcc) language extensions
538 usevarargs --- non-standard <varargs.h> included
539 warnposixheaders --- a POSIX header is included, but the POSIX library is not
541 exitarg --- argument to exit has implementation defined behavior
542 evalorder --- code has unspecified or implementation-dependent behavior because
543 of order of evaluation
544 evalorderuncon --- code involving call to unspecified function has undefined or
545 implementation-dependent behavior
546 boolfalse --- set name of boolean false (default FALSE)
547 booltype --- set name of boolean type (default bool)
548 booltrue --- set name of boolean true (default TRUE)
549 noaccess --- ignore access comments
550 nocomments --- ignore all stylized comments
551 unrecogcomments --- stylized comment is unrecognized
552 unrecogflagcomments --- stylized flag comment uses an unrecognized flag
553 continuecomment --- line continuation marker (\) in comment before */ on same
555 slashslashcomment --- C++ style // comment
556 nestcomment --- comment begins inside comment
557 tmpcomments --- interpret t comments (ignore errors in lines marked with
559 lintcomments --- interpret traditional lint comments (/*FALLTHROUGH*/,
561 warnlintcomments --- print a warning and suggest an alternative when a
562 traditional lint comment is used
563 declundef --- function or variable declared but never defined
564 specundef --- function or variable specified but never defined
565 specundecl --- function or variable specified but never declared in a source
567 loopexec --- assume all loops execute at least once (sets forloopexec,
568 whileloopexec and iterloopexec)
569 forloopexec --- assume all for loops execute at least once
570 whileloopexec --- assume all while loops execute at least once
571 iterloopexec --- assume all iterator loops execute at least once
572 obviousloopexec --- assume loop that can be determined to always execute always
574 infloops --- likely infinite loop is detected
575 infloopsuncon --- likely infinite loop is detected (may result from
576 unconstrained function)
577 deepbreak --- break inside nested while or for or switch
578 looploopbreak --- break inside nested while or for
579 switchloopbreak --- break in loop inside switch
580 loopswitchbreak --- break in switch inside loop
581 switchswitchbreak --- break in switch inside switch
582 looploopcontinue --- continue inside nested loop
583 unreachable --- unreachable code detected
584 whileempty --- a while statement has no body
585 whileblock --- the body of a while statement is not a block
586 forempty --- a for statement has no body
587 forblock --- the body of a for statement is not a block
588 ifempty --- an if statement has no body
589 ifblock --- the body of an if statement is not a block
590 allempty --- an if, while or for statement has no body (sets ifempty,
591 whileempty and forempty
592 allblock --- the body of an if, while or for statement is not a block (sets
593 ifblock, whileblock and forblock)
594 elseifcomplete --- if ... else if chains must have final else
595 noret --- path with no return detected in non-void function
596 casebreak --- non-empty case in a switch without preceding break
597 misscase --- switch on enum type missing case for some value
598 firstcase --- first statement in switch is not a case
599 shadow --- declaration reuses name visible in outer scope
600 incondefslib --- function, variable or constant defined in a library is
601 redefined with inconsistent type
602 overload --- library function overloaded
603 nestedextern --- an extern declaration is inside a function scope
604 redecl --- function or variable redeclared
605 redef --- function or variable redefined
606 incondefs --- function, variable or constant redefined with inconsistent type
607 imptype --- variable declaration has unknown (implicitly int) type
608 matchfields --- struct or enum type redefined with inconsistent fields or
610 usedef --- use before definition
611 impouts --- pointer parameters to unspecified functions may be implicit out
613 tmpdir --- set directory for writing temp files
614 larchpath --- set path for searching for library files (overrides LARCH_PATH
615 environment variable)
616 lclimportdir --- set directory to search for LCL import files (overrides
618 sysdirs --- set directories for system files (default /usr/include). Separate
619 directories with path separator (colons in Unix, semi-colons in Windows). Flag
620 settings propagate to files in a system directory. If -sysdirerrors is set, no
621 errors are reported for files in system directories.
622 skipansiheaders --- prevent inclusion of header files in a system directory
623 with names that match standard ANSI headers. The symbolic information in the
624 standard library is used instead. Flag in effect only if a library including
625 the ANSI library is loaded. The ANSI headers are:
626 assert, ctype, errno, float, limits, locale, math, setjmp, signal, stdarg,
627 stddef, stdio, stdlib, strings, string, time, and wchar.
628 skipposixheaders --- prevent inclusion of header files in a system directory
629 with names that match standard POSIX headers. The symbolic information in the
630 posix library is used instead. The POSIX headers are:
631 dirent, fcntl, grp, pwd, termios, sys/stat, sys/times, sys/types, sys/utsname,
632 sys/wait, unistd, and utime.
633 sysdirerrors --- report errors in files in system directories (set by -sysdirs)
634 sysdirexpandmacros --- expand macros in system directories regardless of other
635 settings, except for macros corresponding to names defined in a load library
636 I<directory> --- add to C include path
637 S<directory> --- add to spec path
638 quiet --- suppress herald and error count
639 usestderr --- send error messages to standard error (instead of standard out)
640 showsummary --- show summary of all errors reported and suppressed
641 showscan --- show file names are they are processed
642 stats --- display lines processed and time
643 timedist --- display time distribution
644 showalluses --- show sorted list of uses of all globals
645 noeffect --- statement with no effect
646 noeffectuncon --- statement with no effect (except possibly through call to
647 unconstrained function)
648 exportany --- variable, function or type exported but not specified
649 exportfcn --- function exported but not specified
650 exportmacro --- expanded macro exported but not specified
651 exporttype --- type definition exported but not specified
652 exportvar --- variable exported but not specified
653 exportconst --- constant exported but not specified
654 exportiter --- constant exported but not specified
655 repexpose --- abstract representation is exposed (sets assignexpose, retexpose,
657 retexpose --- abstract representation is exposed (return values only)
658 assignexpose --- abstract representation is exposed (assignments only)
659 castexpose --- abstract representation is exposed through a cast
660 linelen --- set length of messages (number of chars)
661 indentspaces --- set number of spaces to indent sub-messages
662 showcolumn --- show column number where error is found
663 parenfileformat --- show column number where error is found
664 showfunc --- show name of function containing error
665 showallconjs --- show all possible types
666 impconj --- make all alternate types implicit (useful for making system
668 expect --- expect <int> code errors
669 lclexpect --- expect <int> spec errors
670 partial --- check as partial system (-specundef, -declundef, -exportlocal,
671 don't check macros in headers without corresponding .c files)
672 globs --- undocumented use of a checked global variable
673 globuse --- global listed for a function not used
674 internalglobs --- use of internalState
675 internalglobsnoglobs --- use of internalState (in function with no globals
677 warnmissingglobs --- global variable used in modifies clause is not listed in
679 warnmissingglobsnoglobs --- global variable used in modifies clause in a
680 function with no globals list
681 globnoglobs --- use of checked global in a function with no globals list or
683 allglobs --- report use and modification errors for globals not annotated with
685 checkstrictglobs --- report use and modification errors for checkedstrict
687 impcheckedspecglobs --- assume checked qualifier for unqualified global
688 declarations in .lcl files
689 impcheckmodspecglobs --- assume checkmod qualifier for unqualified global
690 declarations in .lcl files
691 impcheckedstrictspecglobs --- assume checkmod qualifier for unqualified global
692 declarations in .lcl files
693 impcheckedglobs --- assume checked qualifier for unqualified global
695 impcheckmodglobs --- assume checkmod qualifier for unqualified global
697 impcheckedstrictglobs --- assume checkedstrict qualifier for unqualified global
699 impcheckedstatics --- assume checked qualifier for unqualified file static
701 impcheckmodstatics --- assume checkmod qualifier for unqualified file static
703 impcheckmodinternals --- assume checkmod qualifier for unqualified local static
704 declarations (for internal state modifications)
705 impcheckedstrictstatics --- assume checkedstrict qualifier for unqualified file
707 modglobs --- undocumented modification of a checked global variable
708 modglobsnomods --- undocumented modification of a checked global variable in a
709 function declared with no modifies clause
710 modstrictglobsnomods --- undocumented modification of a strict checked global
711 variable in a function declared with no modifies clause
712 modglobsunchecked --- undocumented modification of an unchecked checked global
714 lh --- generate .lh files
715 lcs --- generate .lcs files
716 singleinclude --- optimize header inclusion to eliminate redundant includes
717 neverinclude --- optimize header inclusion to not include any header files
718 skipsysheaders --- do not include header files in system directories (set by
720 warnflags --- warn when command line sets flag in abnormal way
721 warnrc --- warn when there are problems with reading the initialization files
722 warnunixlib --- warn when the unix library is used
723 badflag --- warn about bad command line flags
724 forcehints --- provide a hint for every warnings
725 help --- -help <flags> will describe flags
726 hints --- provide a hint the first time a particular warning appears
727 retval --- return value ignored (sets retvalint, retvalbool and retvalother)
728 retvalother --- return value of type other than bool or int ignored
729 retvalbool --- return value of manifest type bool ignored
730 retvalint --- return value of type int ignored
731 f --- read an options file (default ~/.splintrc not loaded)
732 i --- set LCL initilization file
733 nof --- do not read options file
734 needspec --- information in specifications is not also included in syntactic
736 newdecl --- report new global declarations in source files
737 hasyield --- iter declaration has no yield parameters
738 dump --- save state for merging (default suffix .lcd)
739 load --- load state from dump file (default suffix .lcd)
740 nolib --- do not load standard library
741 isolib --- use normal standard library
742 strictlib --- interpret standard library strictly
743 unixlib --- use UNIX (sort-of) standard library
744 unixstrictlib --- use strict version of UNIX (sort-of) library
745 posixlib --- use POSIX standard library
746 posixstrictlib --- use strict POSIX standard library
747 whichlib --- show standard library filename
748 mts --- load meta state declaration and corresponding xh file
749 commentchar --- set marker character for syntactic comments (default is '@')
750 allmacros --- sets fcnmacros and constmacros
751 libmacros --- check all macros with declarations in library as functions
752 specmacros --- check all macros corresponding to specified functions or
754 fcnmacros --- check all macros with parameter lists as functions
755 constmacros --- check all macros without parameter lists as constants
756 macromatchname --- macro definition does not match iter or constant declaration
757 nextlinemacros --- the line after a constant or iter declaration must be a
759 macrostmt --- macro definition is syntactically not equivalent to function
760 macroempty --- macro definition for is empty
761 macroparams --- macro parameter not used exactly once
762 macroassign --- assignment to a macro parameter
763 sefparams --- a parameter with side-effects is passed as a sef parameter
764 sefuncon --- a parameter with unconstrained side-effects is passed as a sef
766 macroparens --- macro parameter used without parentheses (in potentially
768 macrodecl --- macro without prototype or specification (sets macrofcndecl and
770 macrofcndecl --- parameterized macro without prototype or specification
771 macroconstdecl --- non-parameterized macro without prototype or specification
772 macroredef --- macro redefined
773 macrounrecog --- unrecognized identifier in macro
774 stackref --- external reference to stack-allocated storage is created
775 usereleased --- storage used after release
776 strictusereleased --- element used after it may have been released
777 compdef --- parameter, return value or global completely defined
778 compmempass --- actual parameter matches alias kind of formal parameter
780 mustdefine --- out storage not defined before return or scope exit
781 uniondef --- at least one field of a union must be defined
782 memimp --- memory errors for unqualified storage
783 paramimptemp --- assume unannotated parameter is temp
784 allimponly --- sets globimponly, retimponly, structimponly, specglobimponly,
785 specretimponly and specstructimponly
786 codeimponly --- sets globimponly, retimponly and structimponly
787 specimponly --- sets specglobimponly, specretimponly and specstructimponly
788 globimponly --- assume unannotated global storage is only
789 retimponly --- assume unannotated returned storage is only
790 structimponly --- assume unannotated structure field is only
791 specglobimponly --- assume unannotated global storage is only
792 specretimponly --- assume unannotated returned storage is only
793 specstructimponly --- assume unannotated structure field is only
794 deparrays --- array elements are dependent storage
795 compdestroy --- all only references derivable from void pointer out only
796 parameter are released
797 strictdestroy --- report complete destruction errors for array elements that
798 may have been released
799 mustfreefresh --- freshly allocated storage not released before return or scope
801 mustfreeonly --- only storage not released before return or scope exit
802 mustfree --- fresh or only storage not released before return or scope exit
803 (sets mustfreefresh and mustfreeonly)
804 branchstate --- storage has inconsistent states of alternate paths through a
806 strictbranchstate --- storage through array fetch has inconsistent states of
807 alternate paths through a branch
808 memchecks --- sets all dynamic memory checking flags (memimplicit, mustfree,
809 mustdefine, mustnotalias, null, memtrans)
810 memtrans --- memory transfer errors (sets all *trans flags)
811 exposetrans --- exposure transfer errors
812 observertrans --- observer transfer errors
813 dependenttrans --- dependent transfer errors
814 newreftrans --- new reference transfer to reference counted reference
815 onlytrans --- only storage transferred to non-only reference (memory leak)
816 onlyunqglobaltrans --- only storage transferred to an unqualified global or
817 static reference (memory leak)
818 ownedtrans --- owned storage transferred to non-owned reference (memory leak)
819 freshtrans --- fresh storage transferred to non-only reference (memory leak)
820 sharedtrans --- shared storage transferred to non-shared reference
821 temptrans --- temp storage transferred to non-temporary reference
822 kepttrans --- kept storage transferred to non-temporary reference
823 keeptrans --- keep storage transferred inconsistently
824 immediatetrans --- an immediate address (result of &) is transferred
826 refcounttrans --- reference counted storage is transferred in an inconsistent
828 statictrans --- static storage is transferred in an inconsistent way
829 unqualifiedtrans --- unqualified storage is transferred in an inconsistent way
830 staticinittrans --- static storage is used as an initial value in an
832 unqualifiedinittrans --- unqualified storage is used as an initial value in an
834 readonlystrings --- string literals are read-only (error if one is modified or
836 readonlytrans --- report memory transfer errors for initializations to
837 read-only string literals
838 passunknown --- passing a value as an un-annotated parameter clears its
840 mods --- unspecified modification of caller-visible state
841 mustmod --- specified modification is not detected
842 modobserver --- possible modification of observer storage
843 modobserveruncon --- possible modification of observer storage through
845 modinternalstrict --- possible modification of internal storage through
847 modfilesys --- report undocumented file system modifications (applies to
848 unspecified functions if modnomods is set)
849 modunspec --- modification in unspecified functions (sets modnomods,
850 modglobunspec and modstrictglobsunspec)
851 modnomods --- modification in a function with no modifies clause
852 moduncon --- possible modification through a call to an unconstrained function
853 modunconnomods --- possible modification through a call to an unconstrained
854 function in a function with no modifies clause
855 globsimpmodsnothing --- functions declared with a globals list but no modifies
856 clause are assumed to modify nothing
857 modsimpnoglobs --- functions declared with a modifies clause but no globals
858 list are assumed to use no globals
859 namechecks --- controls name checking without changing other settings
860 czech --- czech naming convention (sets accessczech, czechfunctions, czechvars,
861 czechconstants, czechenums, and czechmacros)
862 czechfcns --- czech naming convention violated in a function or iterator
864 czechvars --- czech naming convention violated in a variable declaration
865 czechmacros --- czech naming convention violated in an expanded macro name
866 czechconsts --- czech naming convention violated in a constant declaration
867 czechtypes --- czech naming convention violated in a user-defined type
869 slovak --- slovak naming convention violated
870 slovakfcns --- slovak naming convention violated in a function or iterator
872 slovakmacros --- slovak naming convention violated in an expanded macro name
873 slovakvars --- slovak naming convention violated in a variable declaration
874 slovakconsts --- slovak naming convention violated in a constant declaration
875 slovaktypes --- slovak naming convention violated in a use-defined type
877 czechoslovak --- czech or slovak naming convention violated
878 czechoslovakfcns --- czechoslovak naming convention violated in a function or
880 czechoslovakmacros --- czechoslovak naming convention violated in an expanded
882 czechoslovakvars --- czechoslovak naming convention violated in a variable
884 czechoslovakconsts --- czechoslovak naming convention violated in a constant
886 czechoslovaktypes --- czechoslovak naming convention violated in a user-defined
888 isoreserved --- external name conflicts with name reserved for system or
890 cppnames --- external or internal name is a C++ keyword or reserved word
891 isoreservedinternal --- internal name conflicts with name reserved for system
893 distinctexternalnames --- external name is not distinguishable from another
894 external name using the number of significant characters
895 externalnamelen --- set the number of significant characters in an external
897 externalnamecaseinsensitive --- alphabetic comparisons for external names are
899 distinctinternalnames --- internal name is not distinguishable from another
900 internal name using the number of significant characters
901 internalnamelen --- set the number of significant characters in an internal
903 internalnamecaseinsensitive --- set whether case is significant an internal
904 names (-internalnamecaseinsensitive means case is significant)
905 internalnamelookalike --- lookalike characters match in internal names
906 macrovarprefix --- set namespace prefix for variables declared in a macro body
907 macrovarprefixexclude --- the macrovarprefix may not be used for non-macro
909 tagprefix --- set namespace prefix for struct, union and enum tags
910 tagprefixexclude --- the tagprefix may not be used for non-tag identifiers
911 enumprefix --- set namespace prefix for enum members
912 enumprefixexclude --- the enumprefix may not be used for non-enum member
914 filestaticprefix --- set namespace prefix for file static declarations
915 filestaticprefixexclude --- the filestaticprefix may not be used for
916 identifiers that are not file static
917 globalprefix --- set namespace prefix for global variables
918 globalprefixexclude --- the globalprefix may not be used for non-global
920 typeprefix --- set namespace prefix for user-defined types
921 typeprefixexclude --- the typeprefix may not be used for identifiers that are
923 externalprefix --- set namespace prefix for external identifiers
924 externalprefixexclude --- the externalprefix may not be used for non-external
926 localprefix --- set namespace prefix for local variables
927 localprefixexclude --- the localprefix may not be used for non-local
929 uncheckedmacroprefix --- set namespace prefix for unchecked macros
930 uncheckedmacroprefixexclude --- the uncheckmacroprefix may not be used for
931 identifiers that are not unchecked macros
932 constprefix --- set namespace prefix for constants
933 constprefixexclude --- the constprefix may not be used for non-constant
935 iterprefix --- set namespace prefix for iterators
936 iterprefixexclude --- the iterprefix may not be used for non-iter identifiers
937 protoparamprefix --- set namespace prefix for parameters in function prototype
939 protoparamname --- a parameter in a function prototype has a name
940 protoparammatch --- the name of a parameter in a function prototype and
941 corresponding declaration must match (after removing the protoparamprefix
942 protoparamprefixexclude --- the protoparamprefix may not be used for
943 non-declaraction parameter identifiers
944 controlnestdepth --- set maximum nesting depth of compound statements,
945 iteration control structures, and selection control structures (ANSI89 minimum
947 stringliterallen --- set maximum length of string literals (ANSI89 minimum is
949 numstructfields --- set maximum number of fields in a struct or union (ANSI89
950 minimum is 127; ISO99 is 1023)
951 numenummembers --- set maximum number of members of an enum (ANSI89 minimum is
953 includenest --- set maximum number of nested #include files
954 ansi89limits --- check for violations of standard limits (controlnestdepth,
955 stringliterallen, includenest, numstructfields, numenummembers) based on ANSI89
957 iso99limits --- check for violations of standard limits (controlnestdepth,
958 stringliterallen, includenest, numstructfields, numenummembers) based on ISO99
960 null --- misuses of null pointer
961 nullterminated --- misuse of nullterminated allocation
962 arrayread --- possible out of bounds read
963 arraywrite --- possible buffer overflow from an out of bounds write
964 fcnpost --- Function has the post condition
965 parenconstraint --- parenthesize constraint term
966 debugfcnconstraint --- debuging constraint flas
967 arraybounds --- Possible out-of-bounds store. Unable to resolve constraint:
968 arrayboundsread --- Possible out-of-bounds read. Unable to resolve constraint:
969 fcnconstraint --- unresolved constraint
970 checkpost --- unable to verify ensures annotation
971 constraintlocation --- display full c expression for every constraint generated
972 implictconstraint --- Try to generate implicit constraints for functions
973 orconstraint --- Use limited OR expressions to resolve constraints
974 nullterminated --- misuse of nullterminated allocation
975 nullderef --- possible dereferencce of null pointer
976 fcnderef --- dereferencce of a function type
977 nullpass --- possibly null pointer passed as formal with no null annotation
978 nullret --- possibly null pointer returned as result with no null annotation
979 nullstate --- possibly null pointer reachable from a reference with no null
981 nullassign --- inconsistent assignment or initialization involving null pointer
982 boolcompare --- comparison between bools (dangerous because of multiple TRUE
984 realcompare --- dangerous comparison between reals (dangerous because of
985 inexact floating point representations)
986 unsignedcompare --- comparison using <, <=, >= between an unsigned integral and
988 ptrarith --- arithmetic involving pointer and integer
989 nullptrarith --- arithmetic involving possibly null pointer and integer
990 ptrcompare --- comparison between pointer and number
991 strictops --- primitive operation does not type check strictly
992 bitwisesigned --- a bitwise logical operator does not have unsigned operands
993 shiftnegative --- a shift right operand may be negative
994 shiftimplementation --- a shift left operand may be negative
995 boolops --- primitive operation (!, && or ||) does not has a boolean argument
996 ptrnegate --- allow ! to be used on pointer operand
997 sizeoftype --- sizeof operator has a type argument
998 sizeofformalarray --- sizeof operator has an array formal parameter argument
999 fixedformalarray --- formal parameter of type array is declared with size
1000 incompletetype --- formal parameter has an incomplete type
1001 formalarray --- formal parameter is an array
1002 predassign --- condition test (if, while or for) is an assignment
1003 predbool --- type of condition test (if, while or for) not bool (sets
1004 predboolint, predboolptr and predboolothers)
1005 predboolint --- type of condition test (if, while or for) is an integral type
1006 predboolothers --- type of condition test (if, while or for) not bool, int or
1008 predboolptr --- type of condition test (if, while or for) is a pointer
1009 D<initializer> --- passed to pre-processor
1010 U<initializer> --- passed to pre-processor
1011 unrecognizeddirective --- unrecognized pre-processor directive
1012 globstate --- returns with global in inconsistent state (null or undefined)
1013 supcounts --- The number of errors detected does not match number in
1015 limit --- limit <int> consecutive repeated errors
1016 syntax --- syntax error in parsing
1017 trytorecover --- try to recover from parse error
1018 type --- type mismatch
1019 fullinitblock --- initializer sets all fields
1020 initallelements --- initializer defines all array elements
1021 initsize --- initializer defines extra array elements
1022 stringliteraltoolong --- string literal too long for character array
1023 stringliteralnoroom --- string literal leaves no room for null terminator
1024 stringliteralsmaller --- string literal is smaller than the char array it is
1026 enummembers --- enum members must be int values
1027 maintype --- type of main does not match expected type
1028 formattype --- type-mismatch in parameter corresponding to format code in a
1029 printf or scanf-like function
1030 formatconst --- format parameter is not a string constant (hence variable
1031 arguments cannot be typechecked)
1032 formatcode --- invalid format code in format string for printf or scanf-like
1034 forwarddecl --- forward declarations of pointers to abstract representation
1036 voidabstract --- void * matches pointers to abstract types, casting ok
1038 castfcnptr --- a pointer to a function is cast to a pointer to void (or vice
1040 charindex --- char can be used to index arrays
1041 enumindex --- enum can be used to index arrays
1042 boolint --- bool and int are equivalent
1043 charint --- char and int are equivalent
1044 enumint --- enum and int are equivalent
1045 floatdouble --- float and double are equivalent
1046 ignorequals --- ignore type qualifiers (long, short, unsigned)
1047 duplicatequals --- report duplicate type qualifiers (e.g., long long)
1048 ignoresigns --- ignore signs in type comparisons (unsigned matches signed)
1049 numliteral --- int literals can be reals
1050 charintliteral --- character constants (e.g., 'a') can be used as ints
1051 relaxquals --- report qualifier mismatches only if dangerous
1052 relaxtypes --- allow all numeric types to match
1053 charunsignedchar --- allow char and unsigned char types to match
1054 matchanyintegral --- allow any intergral type to match an arbitrary integral
1056 longunsignedintegral --- allow long unsigned type to match an arbitrary
1057 integral type (e.g., dev_t)
1058 longintegral --- allow long type to match an arbitrary integral type (e.g.,
1060 longunsignedunsignedintegral --- allow long unsigned type to match an arbitrary
1061 unsigned integral type (e.g., size_t)
1062 longsignedintegral --- allow long type to match an arbitrary signed integral
1063 type (e.g., ssize_t)
1064 zeroptr --- 0 is treated as a pointer
1065 zerobool --- 0 is treated as a boolean
1066 repeatunrecog --- do not suppress repeated unrecognized identifier messages
1067 (instead of only reporting the first error)
1068 sysunrecog --- report unrecognized identifiers with system (__) prefix
1069 unrecog --- unrecognized identifier
1070 topuse --- declaration at top level not used
1071 exportlocal --- a declaration is exported but not used outside this module
1072 exportheader --- a declaration is exported but does not appear in a header file
1073 exportheadervar --- a variable declaration is exported but does not appear in a
1075 fielduse --- field of structure type not used
1076 enummemuse --- member of an enum type not used
1077 constuse --- constant declared but not used
1078 fcnuse --- function declared but not used
1079 paramuse --- function parameter not used
1080 typeuse --- type declared but not used
1081 varuse --- variable declared but not used
1082 unusedspecial --- unused declaration in special file (corresponding to .l or .y
1084 redundantsharequal --- declaration uses observer qualifier that is always true
1085 misplacedsharequal --- declaration of unsharable storage uses sharing
1087 annotationerror --- annotation is used in inconsistent location
1088 commenterror --- inconsistent syntactic comment
1089 bugslimit --- set maximum number of bugs detected before giving up
1090 fileextensions --- warn when command line file does not have a recognized
1092 warnuse --- warn when declaration marked with warn is used
1093 statetransfer --- storage has been transfered with invalid state
1094 statemerge --- control paths merge with storage in incompatible states
1095 its4mostrisky --- most risky security vulnerabilities (from its4 database)
1096 its4veryrisky --- very risky security vulnerabilities (from its4 database)
1097 its4risky --- risky security vulnerabilities (from its4 database)
1098 its4moderate --- moderately risky security vulnerabilities (from its4 database)
1099 its4low --- risky security vulnerabilities (from its4 database)
1100 bufferoverflowhigh --- likely buffer overflow vulnerability
1101 bufferoverflow --- possible buffer overflow vulnerability
1102 toctou --- possible time of check, time of use vulnerability
1103 multithreaded --- function is not reentrant
1104 portability --- function may have undefined behavior
1105 unixstandard --- function is not required in Standard UNIX Specification
1106 superuser --- function is restricted to superusers
1107 implementationoptional --- declarator is implementation optional (ISO99 does
1108 not require an implementation to provide it)
1109 legacy --- legacy declaration in Unix Standard