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