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