// co-unix.lnt // Compiler Options for Unix C and C++ // This file contains options to allow FlexeLint to process source // files for your compiler. It is used as follows: // // lint co-unix.lnt source-file(s) // // while processing compiler (library) header files ... -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(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 // while processing library headers -elib(607) // parameter substitution within string -elib(602) // in dial.h there are comments within comments ? -elib(537) // repeated include files -elib(2) // unclosed quotes in nserve.h -elib(123) // size is both a variable and a macro with args -emacro(734,putc) // don't complain about items being too large. -emacro(413,offsetof) // use of NULL pointer creates a stir -emacro(545,offsetof) // addressing an array member is OK -emacro((???),va_arg) // the va_arg() macro can yield 415, 416, 661, 662 // 796 and 797 (out-of-bounds errors). // The following options were found necessary when processing // the Unix headers within /usr/include -i/usr/include // Set an include directory +fdi // Use the directory of the including file +ppw(ident) // Tolerate #ident -di386=1 // needed for some Unix's -a#machine(i386) // #assert's machine(i386) (SVR4 facility). // Not all Unix systems are identical; please tailor to suit // 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) -e746 // do not insist on prototypes // 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 -elib(1736) // redundant access specifier -esym(1702,operator<<,operator>>) // both a member and an ordinary function // These functions return things that are frequently ignored. -esym(534,ostream::operator<<,istream::operator>>) // The following additional options seem to be needed. -fdc // do not Distinguish plain Char as a unique type. // i.e. char is either signed char or unsigned char -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