co-msc60.lnt
上传用户:filter2008
上传日期:2010-03-12
资源大小:2959k
文件大小:9k
源码类别:

编辑器/阅读器

开发平台:

C/C++

  1. //    co-msc60.lnt
  2. //    Compiler Options for Microsoft C Version 12.x
  3. //         (32 bit version)
  4. -cmsc
  5. -si4    // integers are 4 bytes
  6. -sp4    // pointers are 4 bytes too.
  7. //    This file contains options to allow PC-lint to process source
  8. //    files for your compiler.  It is used as follows:
  9. //
  10. //    lint  co-msc60.lnt  source-file(s)
  11. //
  12. -d_M_IX86=300   // assume Intel 80386 architecture -- modify to suit
  13.         // We now support __declspec directly so that the following
  14.         // option is now commented out.  If trouble ensues you can
  15.         // once again disable __declspec through this option.
  16.         // -d__declspec()= // ignore this construct
  17. -d_declspec=__declspec  // the single '_' version is occasionally used
  18.             // while processing compiler (library) header files ...
  19. -wlib(1)    // sets the warning level within library headers to 1
  20.     // (no warnings, just syntax errors).  Comment out if you
  21.     // are actually linting library headers.  This
  22.     // option makes obsolete options of the form -elib(axxx) where
  23.     // xxx >= 400 which may be retained for historical reasons.
  24. -elib(19)   // useless declarations (lone semicolons)
  25. -elib(123)  // function-like macro name used as non macro
  26. -elib(652)  // suppress message about #define of earlier declared symbols
  27. -elib(762)  // suppress message about multiple identical declarations and
  28. -elib(760)  // suppress message about multiple identical macro defs
  29. -elib(514)  // allow #if <boolean> | <boolean>
  30. -elib(553)  // undefined preprocessor variables assumed 0
  31. -elib(726)  // extraneous comma in enum definition
  32. //  SREGS, WORDREGS, BYTEREGS are defined in both bios.h and dos.h
  33. //  and accordingly you MAY get type differences based on 'origin'.
  34. //  If so, use the following options:
  35. //      -etd(origin)
  36. //      -elib(770)
  37. -format=%(%f(%l)s:s%)%ts%n:s%m
  38.         // error format similar to MSC
  39.         // Note that %c can also be used to specify column
  40. -e46    // allows bit-fields to be other than int or unsigned
  41. +fan    // allow anonymous unions
  42. +fdi    // Use directory of the including file
  43. +fbo    // enable the bool type
  44. -fdh    // do not append a .h to header names
  45. -ffb    // do not establish a separate scope for declares within for clauses
  46. -esym(123,min,max)  // allows users to use min, max as variables
  47. -d_MSC_VER=1200 // compiler version (in decimal)
  48. +rw(__inline)   // activate the __inline keyword
  49. +ppw(import)    // activate #import
  50. -d_inline=__inline  // _inline is the same as __inline
  51. -sld10          // sizeof(long double) is 10.
  52. -function(exit,_exit)   // _exit() is like exit()
  53. -function(exit,_assert)   // _assert() is like exit()
  54. -emacro(506,assert) // don't warn about constant value Boolean
  55. -emacro(734,putc)   // don't complain about items being too large.
  56. -emacro(415,_FP_SEG)  // access of out-of-bounds pointer
  57. -emacro(740,FP_SEG,FP_OFF)  // unusual casts
  58. -emacro((???),va_arg)   // the va_arg() macro can yield 415, 416, 661, 662
  59. // 796 and 797 (out-of-bounds errors).
  60. -emacro(413,offsetof)  // use of NULL pointer creates a stir
  61. -emacro(545,offsetof)  // addressing an array member is OK
  62. -e793           // inhibit 'ANSI limit reached' --
  63. // limits are impractically low with MSVC headers
  64. -esym(628,eof)  // failure to provide argument information for eof()
  65. -esym(773,L_tmpnam)     // defined with an unparenthesized '+'
  66. //  The following functions exhibit variable return modes.
  67. //  That is, they may equally-usefully be called for a value
  68. //  as called just for their effects.  Accordingly we inhibit
  69. //  Warning 534 for these functions.
  70. //  Feel free to add to or subtract from this list.
  71. -esym(534,close,creat,fclose,fflush,_flsbuf,fprintf,fputc)
  72. -esym(534,fputs,fscanf,fseek,fwrite,lseek,memcpy,memmove,memset)
  73. -esym(534,printf,puts,scanf,sprintf,sscanf,strcat,strcpy)
  74. -esym(534,strncat,strncpy,unlink,write)
  75. //  These are the wide char variants of printf-scanf family
  76. -wprintf( 1, wprintf )
  77. -wprintf( 2, fwprintf, swprintf )
  78. -wscanf( 1, wscanf )
  79. -wscanf( 2, fwscanf, swscanf )
  80. // The following options are required by most compilers to
  81. // noiselessly process iostream.h
  82. -elib(1717) //empty prototypes
  83. -elib(522) //function return value ignored
  84. -elib(1053) //prototypes cannot be distinguished
  85. -elib(1721) //unusual operator =() declaration
  86. -elib(1720) //assignment op has non-const parameter
  87. -elib(655)  // bitwise operator combining compatible enum's
  88. -elib(641)  // converting enum's to int
  89. -elib(537)  // repeated include file (ios.h)
  90. -elib(1511) // member (rdbuf) hides nonvirtual member
  91. -elib(1712) // default constructor not defined for class
  92. -elib(1736) // redundant access specifier
  93. -esym(1702,operator<<,operator>>)  // both a member and an ordinary function
  94. // These functions return things that are frequently ignored.
  95. -esym(534,*operator<<,*operator>>)
  96. // The following additional options seem to be needed.
  97. -elib(506) // constant value Boolean
  98. -elib(620) // el or one? (some constants end in 'l' not 'L')
  99. -elib(648) // overflow in computing constant (3<<16)
  100. -elib(659) // nothing follows '}' on some line
  101. -elib(723) // suspicious use of '='
  102. -elib(747) //significant prototype coercion
  103. -elib(740) //unusual pointer casts
  104. -elib(1007) // virtual functions within extern "C" block
  105. -elib(1029) //default argument repeated -- can't dist. char, signed char
  106. -elib(1055) //call to rdbuf() questioned?
  107. -elib(1504) // apparently useless structs
  108. -elib(1708,1709) // minor C/C++ declaration conflict
  109. -elib(1707) // operator new declared w/o 'static'
  110. -elib(1722) // assignment op does not return reference
  111. -elib(149)  // default argument found in C code.
  112. -elib(578)  // declaration of time hides delaration of global time().
  113. -elib(761)  // two equivalent typedef declarations
  114. -elib(1065)  // same name declared as "C" and not "C"
  115. -elib(1066)  // same name declared as "C" and not "C"
  116. -elib(1704)   // constructor with private access declaration
  117. -elib(1735)   // default parameter within virtual function
  118. -elib(773)  // macros that look like unparenthesized expressions
  119. -elib(806)  // 1-bit bitfields typed int
  120. -elib(1501) // 0-length data members
  121. -elib(1510) // base class has no destructor
  122. -elib(1516) // data member hides inherited member
  123. -elib(1509) // base class destructor is not virtual
  124. // Special Notice:  You may be receiving mysterious 1058 errors
  125. //   when you use "iomanipulator"s.  For example:
  126. //   cout << setw(4) << 4;
  127. //   results in Error 1058 (assigning a const to a ref) because the
  128. //   manipulator setw returns a non-lvalue which is assigned to a reference.
  129. //   This reflects an oversight in the Microsoft header file: iomanip.h
  130. //   Therein you may change the declaration:
  131. //     friend ostream& operator<<(iostream& s, IOMANIP(T) & sm) { ...
  132. //   to:
  133. //     friend ostream& operator<<(iostream& s, const IOMANIP(T) & sm) { ...
  134. //   to reflect the fact that sm is not modified by this function.
  135. -d_M_IX86=300   // define the architecture (one of _M_IX86, _M_ALPHA,
  136. // _M_PPC, _M_MRX000)
  137. -d_INTEGRAL_MAX_BITS=64  // denotes support for __int64
  138. +fll            // enable long long
  139. -d__STDC__=0    // Starting with 2.0, the tests within Microsoft header
  140. // files for __STDC__ are of the form #if rather than #ifdef
  141. -dWIN32         // this is necessary because without WIN32 being defined
  142. -d_WIN32        // a very gross syntax error is exposed in the objbase.h
  143.         // ... definition of function operator ==().  Alternatively,
  144.         // ... repair the function definition.
  145. -dDBG=0         // There is a #if test made for this variable.
  146. /*  The option -d_NEW_ previously appearing in this spot is no longer
  147.     recommended as it nullifies the <new> header and because of this
  148.     prevents definition of 'bad_alloc' among other things.
  149.  */
  150. /*  DLL's  or Multithreads?  Enable the following:
  151.     -d_AFXDLL   // making a DLL
  152.     -d_DLL      // ditto
  153.     -d_MT       // multi-thread
  154.  */
  155. /*  At one time we indicated that wchar_t was predefined by using
  156.     the option +fwc but then because to suppress the Microsoft headers
  157.     from redefining it we used the option -d_WCHAR_T_DEFINED
  158.     But this in turned created a rare problem so now we just leave it
  159.     undefined.
  160.  */
  161. // In the following option we define __uuidof() and suppress
  162. // Errors 50 and 69 and 1924 in exprs. containing same
  163. -d"__uuidof()= /*lint --e(50,69,1924) */ (_GUID)0"
  164. -esym(123,FD_SET)  // defined as macro and as typedef
  165. -esym(1726,endl,ends)   // taking the address of an overloaded function
  166. -esym(18,Data_t::Data_t)  // definition not matching declaration
  167. -elib(10)       // expecting ')' -- comdef.h has a: #if defined( id
  168. -elib(43)       // vacuous array within _MIDL_FORMAT_STRING
  169. -elib(602)      // benign comment within comment
  170. -elib(657)      // declaring "anonymous struct" in union _LARGE_INTEGER
  171. -elib(799)      // long numerical constant for max. __int64
  172. -elib(1502)     // nothrow has no data members
  173. -elib(1505)     // no access specifier in base class specifier
  174. -elib(1515)     // AFX_THREAD_STATE member has no default constructor
  175. -elib(1706)     // Unusual declaration with a scope operator
  176. -elib(1725)     // data member is a reference
  177. -elib(1548)     // conflicting exception specifications
  178. -elib(1737)     // hiding global operator new
  179. -elib(1739)     // binary operator should be non-member function
  180. -elib(1748)     // non-virtual base class included twice
  181. -elib(1759)     // post-fix operator returns a reference
  182. //  Add elements of ole automation
  183. lib-ole.lnt