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