gcc6.sh 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. #!/usr/bin/env bash
  2. #export CXXFLAGS="${CXXFLAGS} --all-warnings"
  3. #export CXXFLAGS="${CXXFLAGS} --extra-warnings"
  4. export CXXFLAGS="${CXXFLAGS} -W"
  5. export CXXFLAGS="${CXXFLAGS} -Wabi"
  6. # ignoring
  7. #export CXXFLAGS="${CXXFLAGS} -Wabi-tag"
  8. #export CXXFLAGS="${CXXFLAGS} -Wabi="
  9. export CXXFLAGS="${CXXFLAGS} -Waddress"
  10. # +++ ignoring. may be can be fixed?
  11. #export CXXFLAGS="${CXXFLAGS} -Waggregate-return"
  12. export CXXFLAGS="${CXXFLAGS} -Waggressive-loop-optimizations"
  13. # not for C++
  14. #export CXXFLAGS="${CXXFLAGS} -Waliasing"
  15. #export CXXFLAGS="${CXXFLAGS} -Walign-commons"
  16. export CXXFLAGS="${CXXFLAGS} -Wall"
  17. # not for C++
  18. #export CXXFLAGS="${CXXFLAGS} -Wampersand"
  19. export CXXFLAGS="${CXXFLAGS} -Warray-bounds"
  20. # +++ need try it
  21. export CXXFLAGS="${CXXFLAGS} -Warray-bounds=2"
  22. # not for C++
  23. #export CXXFLAGS="${CXXFLAGS} -Warray-temporaries"
  24. #export CXXFLAGS="${CXXFLAGS} -Wassign-intercept"
  25. # show warnings for padding
  26. #export CXXFLAGS="${CXXFLAGS} -Wattributes"
  27. # not for C++
  28. #export CXXFLAGS="${CXXFLAGS} -Wbad-function-cast"
  29. export CXXFLAGS="${CXXFLAGS} -Wbool-compare"
  30. export CXXFLAGS="${CXXFLAGS} -Wbuiltin-macro-redefined"
  31. #export CXXFLAGS="${CXXFLAGS} -Wc++-compat"
  32. #export CXXFLAGS="${CXXFLAGS} -Wc++0x-compat"
  33. #export CXXFLAGS="${CXXFLAGS} -Wc++11-compat"
  34. export CXXFLAGS="${CXXFLAGS} -Wc++14-compat"
  35. # not for C++
  36. #export CXXFLAGS="${CXXFLAGS} -Wc-binding-type"
  37. #export CXXFLAGS="${CXXFLAGS} -Wc90-c99-compat"
  38. #export CXXFLAGS="${CXXFLAGS} -Wc99-c11-compat"
  39. export CXXFLAGS="${CXXFLAGS} -Wcast-align"
  40. export CXXFLAGS="${CXXFLAGS} -Wcast-qual"
  41. export CXXFLAGS="${CXXFLAGS} -Wchar-subscripts"
  42. # not for C++
  43. #export CXXFLAGS="${CXXFLAGS} -Wcharacter-truncation"
  44. export CXXFLAGS="${CXXFLAGS} -Wchkp"
  45. export CXXFLAGS="${CXXFLAGS} -Wclobbered"
  46. export CXXFLAGS="${CXXFLAGS} -Wcomment"
  47. export CXXFLAGS="${CXXFLAGS} -Wcomments"
  48. # not for C++
  49. #export CXXFLAGS="${CXXFLAGS} -Wcompare-reals"
  50. export CXXFLAGS="${CXXFLAGS} -Wconditionally-supported"
  51. # +++ need fix in future
  52. #export CXXFLAGS="${CXXFLAGS} -Wconversion"
  53. # not for C++
  54. #export CXXFLAGS="${CXXFLAGS} -Wconversion-extra"
  55. export CXXFLAGS="${CXXFLAGS} -Wconversion-null"
  56. export CXXFLAGS="${CXXFLAGS} -Wcoverage-mismatch"
  57. export CXXFLAGS="${CXXFLAGS} -Wcpp"
  58. export CXXFLAGS="${CXXFLAGS} -Wctor-dtor-privacy"
  59. export CXXFLAGS="${CXXFLAGS} -Wdate-time"
  60. # not for C++
  61. #export CXXFLAGS="${CXXFLAGS} -Wdeclaration-after-statement"
  62. export CXXFLAGS="${CXXFLAGS} -Wdelete-incomplete"
  63. export CXXFLAGS="${CXXFLAGS} -Wdelete-non-virtual-dtor"
  64. export CXXFLAGS="${CXXFLAGS} -Wdeprecated"
  65. export CXXFLAGS="${CXXFLAGS} -Wdeprecated-declarations"
  66. # not for C++
  67. #export CXXFLAGS="${CXXFLAGS} -Wdesignated-init"
  68. # some times can be triggered
  69. #export CXXFLAGS="${CXXFLAGS} -Wdisabled-optimization"
  70. # not for C++
  71. #export CXXFLAGS="${CXXFLAGS} -Wdiscarded-array-qualifiers"
  72. #export CXXFLAGS="${CXXFLAGS} -Wdiscarded-qualifiers"
  73. export CXXFLAGS="${CXXFLAGS} -Wdiv-by-zero"
  74. # +++ need fix in future
  75. #export CXXFLAGS="${CXXFLAGS} -Wdouble-promotion"
  76. export CXXFLAGS="${CXXFLAGS} -Wduplicated-cond"
  77. # +++ too many warnings. may be used some times
  78. #export CXXFLAGS="${CXXFLAGS} -Weffc++"
  79. export CXXFLAGS="${CXXFLAGS} -Wempty-body"
  80. export CXXFLAGS="${CXXFLAGS} -Wendif-labels"
  81. export CXXFLAGS="${CXXFLAGS} -Wenum-compare"
  82. export CXXFLAGS="${CXXFLAGS} -Werror-implicit-function-declaration"
  83. export CXXFLAGS="${CXXFLAGS} -Wextra"
  84. # +++ need fix in future
  85. #export CXXFLAGS="${CXXFLAGS} -Wfloat-conversion"
  86. # +++ need fix in future
  87. #export CXXFLAGS="${CXXFLAGS} -Wfloat-equal"
  88. export CXXFLAGS="${CXXFLAGS} -Wformat=1"
  89. export CXXFLAGS="${CXXFLAGS} -Wformat-contains-nul"
  90. export CXXFLAGS="${CXXFLAGS} -Wformat-extra-args"
  91. # +++ ignoring. probably need use some times
  92. #export CXXFLAGS="${CXXFLAGS} -Wformat-nonliteral"
  93. export CXXFLAGS="${CXXFLAGS} -Wformat-security"
  94. export CXXFLAGS="${CXXFLAGS} -Wformat-signedness"
  95. export CXXFLAGS="${CXXFLAGS} -Wformat-y2k"
  96. export CXXFLAGS="${CXXFLAGS} -Wformat-zero-length"
  97. #export CXXFLAGS="${CXXFLAGS} -Wformat="
  98. export CXXFLAGS="${CXXFLAGS} -Wframe-address"
  99. #export CXXFLAGS="${CXXFLAGS} -Wframe-larger-than=<number>"
  100. export CXXFLAGS="${CXXFLAGS} -Wfree-nonheap-object"
  101. # not for C++
  102. #export CXXFLAGS="${CXXFLAGS} -Wfunction-elimination"
  103. export CXXFLAGS="${CXXFLAGS} -Whsa"
  104. export CXXFLAGS="${CXXFLAGS} -Wignored-qualifiers"
  105. export CXXFLAGS="${CXXFLAGS} -Wignored-attributes"
  106. # not for C++
  107. #export CXXFLAGS="${CXXFLAGS} -Wimplicit"
  108. #export CXXFLAGS="${CXXFLAGS} -Wimplicit-function-declaration"
  109. #export CXXFLAGS="${CXXFLAGS} -Wimplicit-int"
  110. #export CXXFLAGS="${CXXFLAGS} -Wimplicit-interface"
  111. #export CXXFLAGS="${CXXFLAGS} -Wimplicit-procedure"
  112. #export CXXFLAGS="${CXXFLAGS} -Wincompatible-pointer-types"
  113. export CXXFLAGS="${CXXFLAGS} -Winherited-variadic-ctor"
  114. export CXXFLAGS="${CXXFLAGS} -Winit-self"
  115. # ignoting
  116. #export CXXFLAGS="${CXXFLAGS} -Winline"
  117. # not for C++
  118. #export CXXFLAGS="${CXXFLAGS} -Wint-conversion"
  119. export CXXFLAGS="${CXXFLAGS} -Wint-to-pointer-cast"
  120. # not for C++
  121. #export CXXFLAGS="${CXXFLAGS} -Winteger-division"
  122. #export CXXFLAGS="${CXXFLAGS} -Wintrinsic-shadow"
  123. #export CXXFLAGS="${CXXFLAGS} -Wintrinsics-std"
  124. export CXXFLAGS="${CXXFLAGS} -Winvalid-memory-model"
  125. export CXXFLAGS="${CXXFLAGS} -Winvalid-offsetof"
  126. export CXXFLAGS="${CXXFLAGS} -Winvalid-pch"
  127. # not for C++
  128. #export CXXFLAGS="${CXXFLAGS} -Wjump-misses-init"
  129. #export CXXFLAGS="${CXXFLAGS} -Wlarger-than-"
  130. #export CXXFLAGS="${CXXFLAGS} -Wlarger-than="
  131. #export CXXFLAGS="${CXXFLAGS} -Wline-truncation"
  132. export CXXFLAGS="${CXXFLAGS} -Wliteral-suffix"
  133. export CXXFLAGS="${CXXFLAGS} -Wlogical-not-parentheses"
  134. export CXXFLAGS="${CXXFLAGS} -Wlogical-op"
  135. export CXXFLAGS="${CXXFLAGS} -Wlong-long"
  136. export CXXFLAGS="${CXXFLAGS} -Wlto-type-mismatch"
  137. export CXXFLAGS="${CXXFLAGS} -Wmain"
  138. export CXXFLAGS="${CXXFLAGS} -Wmaybe-uninitialized"
  139. export CXXFLAGS="${CXXFLAGS} -Wmemset-transposed-args"
  140. export CXXFLAGS="${CXXFLAGS} -Wmisleading-indentation"
  141. export CXXFLAGS="${CXXFLAGS} -Wmissing-braces"
  142. export CXXFLAGS="${CXXFLAGS} -Wmissing-declarations"
  143. export CXXFLAGS="${CXXFLAGS} -Wmissing-field-initializers"
  144. export CXXFLAGS="${CXXFLAGS} -Wmissing-format-attribute"
  145. export CXXFLAGS="${CXXFLAGS} -Wmissing-include-dirs"
  146. export CXXFLAGS="${CXXFLAGS} -Wmissing-noreturn"
  147. # not for C++
  148. #export CXXFLAGS="${CXXFLAGS} -Wmissing-parameter-type"
  149. #export CXXFLAGS="${CXXFLAGS} -Wmissing-prototypes"
  150. export CXXFLAGS="${CXXFLAGS} -Wmultichar"
  151. # ignoring
  152. #export CXXFLAGS="${CXXFLAGS} -Wmultiple-inheritance"
  153. # ignoring
  154. #export CXXFLAGS="${CXXFLAGS} -Wnamespaces"
  155. export CXXFLAGS="${CXXFLAGS} -Wnarrowing"
  156. # not for C++
  157. #export CXXFLAGS="${CXXFLAGS} -Wnested-externs"
  158. export CXXFLAGS="${CXXFLAGS} -Wnoexcept"
  159. export CXXFLAGS="${CXXFLAGS} -Wnon-template-friend"
  160. export CXXFLAGS="${CXXFLAGS} -Wnon-virtual-dtor"
  161. export CXXFLAGS="${CXXFLAGS} -Wnonnull"
  162. export CXXFLAGS="${CXXFLAGS} -Wnonnull-compare"
  163. #export CXXFLAGS="${CXXFLAGS} -Wnormalized"
  164. export CXXFLAGS="${CXXFLAGS} -Wnormalized=nfkc"
  165. export CXXFLAGS="${CXXFLAGS} -Wnull-dereference"
  166. export CXXFLAGS="${CXXFLAGS} -Wodr"
  167. # probably need fix it
  168. #export CXXFLAGS="${CXXFLAGS} -Wold-style-cast"
  169. # not for C++
  170. #export CXXFLAGS="${CXXFLAGS} -Wold-style-declaration"
  171. #export CXXFLAGS="${CXXFLAGS} -Wold-style-definition"
  172. export CXXFLAGS="${CXXFLAGS} -Wopenmp-simd"
  173. export CXXFLAGS="${CXXFLAGS} -Woverflow"
  174. export CXXFLAGS="${CXXFLAGS} -Woverlength-strings"
  175. export CXXFLAGS="${CXXFLAGS} -Woverloaded-virtual"
  176. # not for C++
  177. #export CXXFLAGS="${CXXFLAGS} -Woverride-init"
  178. #export CXXFLAGS="${CXXFLAGS} -Woverride-init-side-effects"
  179. export CXXFLAGS="${CXXFLAGS} -Wpacked"
  180. export CXXFLAGS="${CXXFLAGS} -Wpacked-bitfield-compat"
  181. # +++ may be need fix in future?
  182. #export CXXFLAGS="${CXXFLAGS} -Wpadded"
  183. export CXXFLAGS="${CXXFLAGS} -Wparentheses"
  184. export CXXFLAGS="${CXXFLAGS} -Wpedantic"
  185. export CXXFLAGS="${CXXFLAGS} -Wplacement-new"
  186. #export CXXFLAGS="${CXXFLAGS} -Wplacement-new="
  187. export CXXFLAGS="${CXXFLAGS} -Wpmf-conversions"
  188. export CXXFLAGS="${CXXFLAGS} -Wpointer-arith"
  189. # not for C++
  190. #export CXXFLAGS="${CXXFLAGS} -Wpointer-sign"
  191. #export CXXFLAGS="${CXXFLAGS} -Wpointer-to-int-cast"
  192. export CXXFLAGS="${CXXFLAGS} -Wpragmas"
  193. # not for C++
  194. #export CXXFLAGS="${CXXFLAGS} -Wproperty-assign-default"
  195. #export CXXFLAGS="${CXXFLAGS} -Wprotocol"
  196. export CXXFLAGS="${CXXFLAGS} -Wpsabi"
  197. #export CXXFLAGS="${CXXFLAGS} -Wreal-q-constant"
  198. #export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs"
  199. #export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs-all"
  200. export CXXFLAGS="${CXXFLAGS} -Wredundant-decls"
  201. export CXXFLAGS="${CXXFLAGS} -Wreorder"
  202. export CXXFLAGS="${CXXFLAGS} -Wreturn-local-addr"
  203. export CXXFLAGS="${CXXFLAGS} -Wreturn-type"
  204. export CXXFLAGS="${CXXFLAGS} -Wscalar-storage-order"
  205. # not for C++
  206. #export CXXFLAGS="${CXXFLAGS} -Wselector"
  207. export CXXFLAGS="${CXXFLAGS} -Wsequence-point"
  208. export CXXFLAGS="${CXXFLAGS} -Wshadow"
  209. # not for C++
  210. #export CXXFLAGS="${CXXFLAGS} -Wshadow-ivar"
  211. export CXXFLAGS="${CXXFLAGS} -Wshift-count-negative"
  212. export CXXFLAGS="${CXXFLAGS} -Wshift-count-overflow"
  213. export CXXFLAGS="${CXXFLAGS} -Wshift-negative-value"
  214. export CXXFLAGS="${CXXFLAGS} -Wshift-overflow"
  215. #export CXXFLAGS="${CXXFLAGS} -Wshift-overflow="
  216. export CXXFLAGS="${CXXFLAGS} -Wsign-compare"
  217. # +++ need fix in future
  218. #export CXXFLAGS="${CXXFLAGS} -Wsign-conversion"
  219. export CXXFLAGS="${CXXFLAGS} -Wsign-promo"
  220. export CXXFLAGS="${CXXFLAGS} -Wsized-deallocation"
  221. export CXXFLAGS="${CXXFLAGS} -Wsizeof-array-argument"
  222. export CXXFLAGS="${CXXFLAGS} -Wsizeof-pointer-memaccess"
  223. export CXXFLAGS="${CXXFLAGS} -Wstack-protector"
  224. #export CXXFLAGS="${CXXFLAGS} -Wstack-usage="
  225. export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing=2"
  226. #export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing="
  227. export CXXFLAGS="${CXXFLAGS} -Wstrict-null-sentinel"
  228. #export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow"
  229. export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow=1"
  230. # not for C++
  231. #export CXXFLAGS="${CXXFLAGS} -Wstrict-prototypes"
  232. #export CXXFLAGS="${CXXFLAGS} -Wstrict-selector-match"
  233. export CXXFLAGS="${CXXFLAGS} -Wsubobject-linkage"
  234. # +++ ignoring
  235. #export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=const"
  236. #export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=format"
  237. export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=noreturn"
  238. # +++ ignoring
  239. #export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=pure"
  240. #export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-methods"
  241. #export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-types"
  242. export CXXFLAGS="${CXXFLAGS} -Wsuggest-override"
  243. # not for C++
  244. #export CXXFLAGS="${CXXFLAGS} -Wsurprising"
  245. export CXXFLAGS="${CXXFLAGS} -Wswitch"
  246. export CXXFLAGS="${CXXFLAGS} -Wswitch-bool"
  247. export CXXFLAGS="${CXXFLAGS} -Wswitch-default"
  248. export CXXFLAGS="${CXXFLAGS} -Wswitch-enum"
  249. export CXXFLAGS="${CXXFLAGS} -Wsync-nand"
  250. export CXXFLAGS="${CXXFLAGS} -Wsynth"
  251. # ignoring
  252. #export CXXFLAGS="${CXXFLAGS} -Wsystem-headers"
  253. # not for C++
  254. #export CXXFLAGS="${CXXFLAGS} -Wtabs"
  255. #export CXXFLAGS="${CXXFLAGS} -Wtarget-lifetime"
  256. export CXXFLAGS="${CXXFLAGS} -Wtautological-compare"
  257. # ignoring
  258. #export CXXFLAGS="${CXXFLAGS} -Wtemplates"
  259. export CXXFLAGS="${CXXFLAGS} -Wterminate"
  260. # not for C++
  261. #export CXXFLAGS="${CXXFLAGS} -Wtraditional"
  262. #export CXXFLAGS="${CXXFLAGS} -Wtraditional-conversion"
  263. export CXXFLAGS="${CXXFLAGS} -Wtrampolines"
  264. export CXXFLAGS="${CXXFLAGS} -Wtrigraphs"
  265. export CXXFLAGS="${CXXFLAGS} -Wtype-limits"
  266. # not for C++
  267. #export CXXFLAGS="${CXXFLAGS} -Wundeclared-selector"
  268. export CXXFLAGS="${CXXFLAGS} -Wundef"
  269. # not for C++
  270. #export CXXFLAGS="${CXXFLAGS} -Wunderflow"
  271. export CXXFLAGS="${CXXFLAGS} -Wuninitialized"
  272. export CXXFLAGS="${CXXFLAGS} -Wunknown-pragmas"
  273. # +++ may be try use in future?
  274. #export CXXFLAGS="${CXXFLAGS} -Wunsafe-loop-optimizations"
  275. # not for C++
  276. #export CXXFLAGS="${CXXFLAGS} -Wunsuffixed-float-constants"
  277. export CXXFLAGS="${CXXFLAGS} -Wunused"
  278. export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-parameter"
  279. export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-variable"
  280. export CXXFLAGS="${CXXFLAGS} -Wunreachable-code"
  281. export CXXFLAGS="${CXXFLAGS} -Wunused-const-variable=1"
  282. # not for C++
  283. #export CXXFLAGS="${CXXFLAGS} -Wunused-dummy-argument"
  284. export CXXFLAGS="${CXXFLAGS} -Wunused-function"
  285. export CXXFLAGS="${CXXFLAGS} -Wunused-label"
  286. export CXXFLAGS="${CXXFLAGS} -Wunused-local-typedefs"
  287. export CXXFLAGS="${CXXFLAGS} -Wunused-macros"
  288. export CXXFLAGS="${CXXFLAGS} -Wunused-parameter"
  289. export CXXFLAGS="${CXXFLAGS} -Wunused-result"
  290. export CXXFLAGS="${CXXFLAGS} -Wunused-value"
  291. export CXXFLAGS="${CXXFLAGS} -Wunused-variable"
  292. # not for C++
  293. #export CXXFLAGS="${CXXFLAGS} -Wuse-without-only"
  294. # +++ need from time to time
  295. #export CXXFLAGS="${CXXFLAGS} -Wuseless-cast"
  296. export CXXFLAGS="${CXXFLAGS} -Wvarargs"
  297. export CXXFLAGS="${CXXFLAGS} -Wvariadic-macros"
  298. export CXXFLAGS="${CXXFLAGS} -Wvector-operation-performance"
  299. export CXXFLAGS="${CXXFLAGS} -Wvirtual-inheritance"
  300. export CXXFLAGS="${CXXFLAGS} -Wvirtual-move-assign"
  301. export CXXFLAGS="${CXXFLAGS} -Wvla"
  302. export CXXFLAGS="${CXXFLAGS} -Wvolatile-register-var"
  303. export CXXFLAGS="${CXXFLAGS} -Wwrite-strings"
  304. export CXXFLAGS="${CXXFLAGS} -Wzero-as-null-pointer-constant"
  305. # not for C++
  306. #export CXXFLAGS="${CXXFLAGS} -Wzerotrip"
  307. #export CXXFLAGS="${CXXFLAGS} -frequire-return-statement"