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