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

编辑器/阅读器

开发平台:

C/C++

  1. //    co-gnu3.lnt
  2. //    Compiler Options for GCC versions 2.95.3 and later
  3. //    This file contains options to allow FlexeLint to process source
  4. //    files for the Gnu compiler (GCC).
  5. //
  6. //    flint  co-gnu.lnt  source-file(s)
  7. //
  8. //    If you are using GCC on some other system you will need to change
  9. //    the following options:
  10. -cgnu       // Notifies FlexeLint that gcc is being used.
  11. // Begin: System Dependent Options
  12. // -------------------------------
  13. -d__i386__  // a define of this type is machine-dependent
  14.             // modify if you are running on non-intel hardware.
  15. -d__linux__ // Linux define!
  16. //-d__mc68000__  //a machine dependent define
  17. -di386=1         // needed for some Unix's
  18. -a#machine(i386) //  #assert's machine(i386)  (SVR4 facility).
  19. // What follows is the trickiest thing about a gcc installation, i.e.,
  20. // one or more -i options to tell FlexeLint where the header files
  21. // are coming from.
  22. -i/usr/include   // This is pretty standard throughout the Unix world
  23. -i/FlexeLint/supp/ansi  // This we humbly offer as a collection of ...
  24.             // ANSI (i.e ISO) header files.  Replace the word "FlexeLint"
  25.             // with the name of the directory in which FlexeLint has
  26.             // been installed.  Note, you might want to replace "ansi"
  27.             // with "posix".
  28. -i/usr/lib/gcc-lib/i486-linux/2.5.8/include // This is only offered as
  29.             // an example.  It will clearly change with the version
  30.             // of GCC.
  31. -si4    // int's are typically 4 bytes
  32. -sp4    // ptr's are typically 4 bytes           
  33. // -----------------------------
  34. // End: System Dependent Options
  35. +cpp(.cc,.C)  // extensions for C++ that are commonly used in addition
  36.             // to the default extensions of .cpp and .cxx
  37.             // while processing library headers
  38. -wlib(1)    // sets the warning level within library headers to 1
  39.     // (no warnings, just syntax errors).  Comment out if you
  40.     // are actually linting library headers.  This
  41.     // option makes obsolete options of the form -elib(axxx) where
  42.     // xxx >= 400 which may be retained for historical reasons.
  43. -elib(15)   // redeclaration of symbol
  44. -elib(516)  // lots of redeclarations in Linux stdlib.h
  45. -elib(652)  // suppress message about #define of earlier declared symbols
  46. -elib(762)  // suppress message about multiple identical declarations and
  47. -elib(760)  // suppress message about multiple identical macro defs
  48. -elib(553)  // undefined preprocessor variables are taken as 0
  49. -elib(410)  // unusual size_t
  50. -elib(767)  // differently defined macro
  51. -elib(624)  // typedef symbol redeclared
  52. -elib(607)  // parameter substitution within string
  53. -elib(602)  // in dial.h there are comments within comments ?
  54. -elib(537)  // repeated include files
  55. -elib(2)    // unclosed quotes in nserve.h
  56. -elib(123)  // size is both a variable and a macro with args
  57. -elib(1014) // class member definition within extern "C++"
  58. -emacro(734,putc)   // don't complain about items being too large.
  59. -emacro((???),va_arg)   // the va_arg() macro can yield 415, 416, 661, 662
  60. // 796 and 797 (out-of-bounds errors).
  61. -emacro(413,offsetof)  // use of NULL pointer creates a stir
  62. -emacro(545,offsetof)  // addressing an array member is OK
  63. -elib(793)   // Linux has minor ANSI violation in stddef.h 
  64. -elib(569)   // Linux truncates some data in huge_val.h
  65. -esym(528,__huge_val,__nan,__qnan,__qnanf,__snan,__snanf)
  66.            // We don't care if we don't reference some GNU funcs
  67. -esym(528,__gnu_malloc,__gnu_calloc)
  68. //  The following options were found necessary when processing
  69. //  the Unix headers within /usr/include
  70. +fdi            // Use the directory of the including file
  71. +ppw(ident)     // Tolerate #ident
  72. +rw(__inline)   // enable the (non-standard) __inline keyword
  73. //  The following functions exhibit variable return modes.
  74. //  That is, they may equally-usefully be called for a value
  75. //  as called just for their effects.  Accordingly we inhibit
  76. //  Warning 534 for these functions.
  77. //  Feel free to add to or subtract from this list.
  78. -esym(534,close,creat,fclose,fprintf,fputc)
  79. -esym(534,fputs,fscanf,fseek,fwrite,lseek,memcpy,memmove,memset)
  80. -esym(534,printf,puts,scanf,sprintf,sscanf,strcat,strcpy)
  81. -esym(534,strncat,strncpy,unlink,write)
  82. // For non-ANSI compilers we suppress messages 515 and 516
  83. // for functions known to have variable argument lists.
  84. // For ANSI compilers, header files should take care of this.
  85. -esym(515,fprintf,printf,sprintf,fscanf,scanf,sscanf)
  86. -esym(516,fprintf,printf,sprintf,fscanf,scanf,sscanf)
  87. // The following options are required by most compilers to
  88. // noiselessly process iostream.h
  89. -elib(1717) //empty prototypes
  90. -elib(522) //function return value ignored
  91. -elib(1053) //prototypes cannot be distinguished
  92. -elib(1721) //unusual operator =() declaration
  93. -elib(1720) //assignment op has non-const parameter
  94. -elib(655)  // bitwise operator combining compatible enum's
  95. -elib(641)  // converting enum's to int
  96. -elib(537)  // repeated include file (ios.h)
  97. -elib(1511) // member (rdbuf) hides nonvirtual member
  98. -elib(1712) // default constructor not defined for class
  99. -esym(1702,operator<<,operator>>)
  100. // These functions return things that are frequently ignored.
  101. -esym(534,ostream::operator<<,istream::operator>>)
  102. -elib(747) //significant prototype coercion
  103. -elib(740) //unusual pointer casts
  104. -elib(1029) //default argument repeated -- can't dist. char, signed char
  105. -elib(1055) //call to rdbuf() questioned?
  106. -elib(1708,1709) // minor C/C++ declaration conflict
  107. -elib(763)   // redundant declaration
  108. -elib(1510)  // base class has no destructor
  109. -elib(1516)  // data member hiding inherited member
  110. -elib(1730)  // class/struct inconsistancy
  111. -elib(569)   // loss of information 8-bits - 7bits
  112. // What follows here is a collection of options we have found
  113. // to be needed to support Version 3 of GCC.  The need for these
  114. // options actually predate Version 3 and are of the 2.9... time frame
  115. -e93         // allow newlines within quoted string arguments to macros
  116. -dasm()=     // support inline assembly code by ignoring asm(...)
  117. -d__attribute__()=   // ignore this keyword and following parenthetical
  118. -d__extension__=            // ignore this keyword
  119. -d__builtin_va_list=void*   // used by stdarg.h
  120. -d__const=const             // gconv.h uses __const rather than const
  121. -d__STDC_VERSION__=199901L  // required by C99
  122. -d__FUNCTION__="somefunction"
  123. -d__PRETTY_FUNCTION__="somefunction"
  124. +fwc                        // wchar_t is builtin
  125. -elib(148)              // Some of the libraries are redefining member
  126.                         // functions
  127. -elib(1073)             // reverse_iterator<> is being invoked with
  128.                         // an insufficient number of parameters.