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