/* * $Id: //devel/tools/main/backstealth/local.lnt#1 $ * * This is our header for the PC-Lint definitions. We've taken it * from another project (where the vast majority of this does not * apply) and are using it here. */ +fsc // string constants are /const/ co-msc60.lnt // Microsoft C compiler definitions lib-wnt.lnt // Windows NT ntlibs.lnt //------------------------------------------------------------------------ // ignored return values from some functions // -esym(534, CloseHandle, _putws, wprintf, wcscpy, wcstombs) //------------------------------------------------------------------------ // assert() is odd: first param is void*, and it doesn't like conversion // from char* // -emacro(1776, assert); /* //au-sm.lnt // Scott Meyers recommendations //------------------------------------------------------------------------ // This tells us that the new operators cannot return NULL (and therefore // must throw exceptions). It seems this is not actually the behavior // of the Microsoft library (as of MSVC 5.0) but we generally work around // this by defining a new-handler to do it properly. // -function( operator new (r) ) -function( operator new[] (r) ) // these are typically enabled by "au-sm.lnt" (Scott Meyers recommendations) -e1904 // Old-style C comment (!) -elib(1923) // macro 'XXX' could become const variable +e936 // old-style C definition +e937 // old-style C declaration -e720 // allow direct test of assignment -e502 -e713 -e737 // don't report on signed/unsigned mismatches //-eau // signed-unsigned aren't different -e734 // allow sub-integer loss of information -e701 -e703 // shifting int left is OK -e718 // allow calls to undeclared C functions -e746 // allow calls w/o prototypes in C. //-e1923 // variable could be const -e1550 // fcn may throw exception (MSVC doesn't support // the "throws" notation). // -d_POSIX_SOURCE // -dV_HAVE_FTIME // -dV_NO_STREAMIO // -dV_MACHINE=1 // -dV_NUTC // -dWIN32_LEAN_AND_MEAN // -dSTRICT // -dV_WINNT=1 -e537 // repeated include file -e762 // symbol redundantly declared -e766 // header file notused in module -e716 // while (1) ... [permitted] -e774 // boolean in while always TRUE -e1736 // redundant C++ access specifier -e1549 // function throws w/o declaring "throw" -e1533 // Repeated friend decl for symbol -e149 // C++ construct found in C code (for __try -- PC-Lint bug) //------------------------------------------------------------------------ // sometimes we enable warning 1924 (C-style cast), and some of the various // system header files contain casts as part of macro defs. // -emacro(1924, va_start, va_end) // and -emacro(1924, MAKELANGID) // -emacro(1924, UNUSED_PARAMETER) // v_sys.h // defines this -emacro(717, FD_SET, FD_CLR) // do {} while(0) used in this macro -esym(665,PROTO) // unparenthesized param passed as expression -esym(534, _strlwr, putenv) // ignored return value OK -esym(534, WSACleanup) -esym(534, _setmode) -esym(534, time) //-esym(15, Vut_dir_read) // we make UTDIR an opaque type... //-esym(15, Vut_dir_close) //-esym(15, Vut_dir_open) // TEMPORARY DISABLES -- USED FOR FIRST ROUND OF LINTING -e534 // ignored return values OK -e732 // loss of sign (type -> type) -e702 // >> of signed quantity -e704 // shift right of signed quantity (long) -e744 // switch statement has no default -e553 // undefined preprocessor reference // stuff for libfimcpp -e1712 // default ctor not defined for class -e1609 // base class dtor not virtual -e1725 // "xxx" is a reference //------------------------------------------------------------------------ // STL / IOSTREAMS STUFF // // It seems that the Microsoft STL / IOSTREAMS package causes lots // of lint errors, so we try to // expected "operator xx" to be declared for class "xxx" SJF 1998-07-03 // // Related to the Microsoft STL (as of MSVC5.0) -- not sure what this // means but we never care about complex numbers anyway. // -esym(1754, std::complex) -esym(1754, std::complex) -esym(1754, std::complex) -esym(1929, std::operator>>) // symbol returns reference -esym(1929, std::operator<<) // symbol returns reference -esym(1929, std::getline) // symbol returns reference -esym(1929, std::operator +=) // symbol returns reference -esym(1929, std::operator -=) // symbol returns reference -esym(1929, std::operator *=) // symbol returns reference -esym(1929, std::operator /=) // symbol returns reference -elib(1932) // base class 'exception' is not abstract -elib(1930) // conversion operator found -elib(1929) // function returning a reference -elib(1924) // C-style cast -elib(1934) // Shift operator should be non-member function -elib(1931) // constructor can be used for implicit conversions -elib(765) // xxx could be made static -elib(114) // inconsistent structure declaration for tag xxx // C-style cast: INVALID_HANDLE_VALUE defined as (HANDLE)-1 -emacro(1924, INVALID_HANDLE_VALUE) -emacro(1924, INVALID_SOCKET) -emacro(1924, INADDR_ANY) // function #define'd, semantics may be lost [7.50r] -esym(683, putc, getc, feof, ferror) -esym(828, setjmp) // semantics of fcn 'x' copied to fcn '_x' [7.50r] // BETA 8 TESTING -fsp // don't do the walking thing -e801 // goto is deprecated // -A // strict ANSI treatment */