+cpp(.cc) // extensions for C++ that are commonly used in addition // to the default extensions of .cpp and .cxx -cgnu // defines LANGUAGE_C for C modules -ie:\cygwin/home/radsett/install/arm-elf/include/ -ie:\cygwin/home/radsett/install/lib/gcc-lib/arm-elf/3.3.2/include -vfs#h- // Floating point endianness -d__IEEE_LITTLE_ENDIAN -si4 // int's are typically 4 bytes -sp4 // ptr's are typically 4 bytes +fct // Creates tags for untagged structs +ffn // Reports full file name +fod // export all declared objects to lobs +fsc // strings are const +fxa // pointer/array matching in args // Message format -hsFa|3 -A // strict ANSI -passes(6,-v) // 6 passes -w4 // Up warning level -rw(*ms) // No ms keywords -strong(AzXJe) // strong typing // Turn on extra warnings +e909 -e910 // Implicit conversion of 0 to a pointer -e911 // Implicit promotion to int (too noisy) -e912 // Implicit binary conversion smaller range to larger range -e915 // Implicit conversion +e916 -e919 // Lower precision assigned to a higher precision. -e920 // cast from int to void -e921 // Cast between integral types -e935 // int within struct +e936 +e937 +e938 +e939 +e940 +e941 +e942 +e944 +e945 -e946 // Relational or subtract operator applied to pointers. To noisy, fires // for overrun comparisons in the same block. -e947 // Pointer subtracted. Same problem as above. +e950 -e952 // parameter could be declared const. +e953 +e954 +e955 -e956 // non-const non-volatile static, ie not thread safe. but warns on // register defs. Needs library fix to enable. +e957 -e958 // Padding required for alignment -e959 // Struct not even multiple of alignment +e960 // MISRA -elib(960) // Can't expect gcc and newlib to meet MISRA requirements +e961 -e964 // header file not directly used (includes other header that is) -e966 // Indirectly included header file not used +e973 -e970 // C99? Don't use std types -e971 // use of char w/o sign or unsigned. Too many conflicts with strings. // while processing library headers -wlib(1) // sets the warning level within library headers to 1 // (no warnings, just syntax errors). Comment out if you // are actually linting library headers. This // option makes obsolete options of the form -elib(axxx) where // xxx >= 400 which may be retained for historical reasons. //-elib(15) // redeclaration of symbol //-elib(516) // lots of redeclarations in Linux stdlib.h //-elib(652) // suppress message about #define of earlier declared symbols //-elib(762) // suppress message about multiple identical declarations and //-elib(760) // suppress message about multiple identical macro defs //-elib(553) // undefined preprocessor variables are taken as 0 //-elib(410) // unusual size_t //-elib(767) // differently defined macro //-elib(624) // typedef symbol redeclared //-elib(607) // parameter substitution within string //-elib(602) // in dial.h there are comments within comments ? -e537 // repeated include files //-elib(2) // unclosed quotes in nserve.h //-elib(123) // size is both a variable and a macro with args //-elib(1014) // class member definition within extern "C++" //-emacro(734,putc) // don't complain about items being too large. //-emacro((???),va_arg) // the va_arg() macro can yield 415, 416, 661, 662 // 796 and 797 (out-of-bounds errors). //-emacro(413,offsetof) // use of NULL pointer creates a stir //-emacro(545,offsetof) // addressing an array member is OK //-elib(793) // Linux has minor ANSI violation in stddef.h //-elib(569) // Linux truncates some data in huge_val.h //-esym(528,__huge_val,__nan,__qnan,__qnanf,__snan,__snanf) // We don't care if we don't reference some GNU funcs //-esym(528,__gnu_malloc,__gnu_calloc) // The following options were found necessary when processing // the Unix headers within /usr/include +fdi // Use the directory of the including file //+ppw(ident) // Tolerate #ident //+rw(__inline) // enable the (non-standard) __inline keyword //+rw(__inline__) // enable the (non-standard) __inline__ keyword // The following functions exhibit variable return modes. // That is, they may equally-usefully be called for a value // as called just for their effects. Accordingly we inhibit // Warning 534 for these functions. // Feel free to add to or subtract from this list. -esym(534,close,creat,fclose,fprintf,fputc) -esym(534,fputs,fscanf,fseek,fwrite,lseek,memcpy,memmove,memset) -esym(534,printf,puts,scanf,sprintf,sscanf,strcat,strcpy) -esym(534,strncat,strncpy,unlink,write) // For non-ANSI compilers we suppress messages 515 and 516 // for functions known to have variable argument lists. // For ANSI compilers, header files should take care of this. //-esym(515,fprintf,printf,sprintf,fscanf,scanf,sscanf) //-esym(516,fprintf,printf,sprintf,fscanf,scanf,sscanf) // The following options are required by most compilers to // noiselessly process iostream.h //-elib(1717) //empty prototypes //-elib(522) //function return value ignored //-elib(1053) //prototypes cannot be distinguished //-elib(1721) //unusual operator =() declaration //-elib(1720) //assignment op has non-const parameter //-elib(655) // bitwise operator combining compatible enum's //-elib(641) // converting enum's to int //-elib(537) // repeated include file (ios.h) //-elib(1511) // member (rdbuf) hides nonvirtual member //-elib(1712) // default constructor not defined for class //-esym(1702,operator<<,operator>>) // These functions return things that are frequently ignored. //-esym(534,ostream::operator<<,istream::operator>>) //-elib(747) //significant prototype coercion //-elib(740) //unusual pointer casts //-elib(1029) //default argument repeated -- can't dist. char, signed char //-elib(1055) //call to rdbuf() questioned? //-elib(1708,1709) // minor C/C++ declaration conflict //-elib(763) // redundant declaration //-elib(1510) // base class has no destructor //-elib(1516) // data member hiding inherited member //-elib(1730) // class/struct inconsistancy //-elib(569) // loss of information 8-bits - 7bits //-e93 // allow newlines within quoted string arguments to macros //-dasm()= // support inline assembly code by ignoring asm(...) //-d__attribute__()= // ignore this keyword and following parenthetical -d__extension__= // ignore this keyword -d__builtin_va_list=void* // used by stdarg.h //-d__const=const // gconv.h uses __const rather than const //-d__STDC_VERSION__=199901L // required by C99 //-d__FUNCTION__="somefunction" //-d__PRETTY_FUNCTION__="somefunction" -e1548 // temp we shouldn't HAVE C++ errors