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