1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
|
# options to filter out, and why
--all-warnings alias for -Wall
--extra-warnings alias for -Wextra
-W alias for -Wextra
-Wabi this is now a no-op
-Wabi-tag c++
-Wabi= c++
-Wabsolute-value enabled by -Wextra
-Waddress enabled by -Wall
-Waddress-of-packed-member default
-Waggregate-return obsolescent
-Waggressive-loop-optimizations default
-Waliasing fortran
-Walign-commons fortran
-Waligned-new=[none|global|all] c++
-Walloc-size-larger-than=<bytes> defaults to PTRDIFF_MAX
-Walloc-zero Gnulib fixes this problem
-Walloca we like alloca in small doses
-Walloca-larger-than=<number> FIXME: choose something sane?
-Wampersand fortran
-Wanalyzer-double-fclose enabled by -fanalyzer
-Wanalyzer-double-free enabled by -fanalyzer
-Wanalyzer-exposure-through-output-file enabled by -fanalyzer
-Wanalyzer-file-leak enabled by -fanalyzer
-Wanalyzer-free-of-non-heap enabled by -fanalyzer
-Wanalyzer-malloc-leak enabled by -fanalyzer
-Wanalyzer-mismatching-deallocation enabled by -fanalyzer
-Wanalyzer-null-argument enabled by -fanalyzer
-Wanalyzer-null-dereference enabled by -fanalyzer
-Wanalyzer-possible-null-argument enabled by -fanalyzer
-Wanalyzer-possible-null-dereference enabled by -fanalyzer
-Wanalyzer-shift-count-negative enabled by -fanalyzer
-Wanalyzer-shift-count-overflow enabled by -fanalyzer
-Wanalyzer-stale-setjmp-buffer implied by -fanalyzer
-Wanalyzer-tainted-allocation-size FIXME requires -fanalyzer-checker=taint
-Wanalyzer-tainted-array-index FIXME requires -fanalyzer-checker=taint
-Wanalyzer-tainted-divisor FIXME requires -fanalyzer-checker=taint
-Wanalyzer-tainted-offset FIXME requires -fanalyzer-checker=taint
-Wanalyzer-tainted-size FIXME requires -fanalyzer-checker=taint
-Wanalyzer-too-complex enabled by -fanalyzer
-Wanalyzer-unsafe-call-within-signal-handler enabled by -fanalyzer
-Wanalyzer-use-after-free enabled by -fanalyzer
-Wanalyzer-use-of-pointer-in-stale-stack-frame enabled by -fanalyzer
-Wanalyzer-use-of-uninitialized-value enabled by -fanalyzer
-Wanalyzer-write-to-const enabled by -fanalyzer
-Wanalyzer-write-to-string-literal enabled by -fanalyzer
-Warray-bounds covered by -Warray-bounds=
-Warray-bounds=<0,2> handled specially by gl_MANYWARN_ALL_GCC
-Warray-compare enabled by -Wall
-Warray-parameter enabled by -Wall
-Warray-parameter=<0,2> enabled by -Wall
-Warray-temporaries fortran
-Wassign-intercept objc/objc++
-Wattribute-alias covered by -Wattribute-alias=2
-Wattribute-alias=<0,2> handled specially by gl_MANYWARN_ALL_GCC
-Wattribute-warning default
-Wattributes default
-Wbidi-chars handled specially by gl_MANYWARN_ALL_GCC
-Wbidi-chars= handled specially by gl_MANYWARN_ALL_GCC
-Wbool-compare enabled by -Wall
-Wbool-operation enabled by -Wall
-Wbuiltin-declaration-mismatch default
-Wbuiltin-macro-redefined default
-Wc++-compat only useful for code meant to be compiled by a C++ compiler
-Wc++0x-compat c++
-Wc++11-compat c++
-Wc++11-extensions c++
-Wc++14-compat c++
-Wc++14-extensions c++
-Wc++17-compat c++
-Wc++17-extensions c++
-Wc++1z-compat c++
-Wc++20-compat c++
-Wc++20-extensions c++
-Wc++23-extensions c++
-Wc++2a-compat c++
-Wc-binding-type fortran
-Wc11-c2x-compat c compatibility
-Wc90-c99-compat c compatibility
-Wc99-c11-compat c compatibility
-Wcannot-profile default
-Wcast-align enabled by -Wcast-align=strict
-Wcast-function-type enabled by -Wextra
-Wcast-qual FIXME maybe? too much noise; encourages bad changes
-Wcast-result D
-Wcatch-value c++
-Wcatch-value=<0,3> c++
-Wchar-subscripts enabled by -Wall
-Wcharacter-truncation fortran
-Wchkp deprecated
-Wclass-conversion c++ and objc++
-Wclass-memaccess c++
-Wclobbered enabled by -Wextra
-Wcomma-subscript c++ and objc++
-Wcomment enabled by -Wall
-Wcomments alias for -Wcomment
-Wcompare-reals fortran
-Wconditionally-supported c++ and objc++
-Wconversion FIXME maybe? too much noise; encourages bad changes
-Wconversion-extra fortran
-Wconversion-null c++ and objc++
-Wcoverage-invalid-line-number default if --coverage
-Wcoverage-mismatch default
-Wcpp default
-Wctad-maybe-unsupported c++ and objc++
-Wctor-dtor-privacy c++
-Wdangling-else enabled by -Wparentheses
-Wdangling-pointer enabled by -Wall
-Wdangling-pointer=<0,2> enabled by -Wall
-Wdeclaration-after-statement needed only for pre-C99, so obsolete
-Wdelete-incomplete c++ and objc++
-Wdelete-non-virtual-dtor c++
-Wdeprecated default
-Wdeprecated-copy c++ and objc++
-Wdeprecated-copy-dtor c++ and objc++
-Wdeprecated-declarations default
-Wdeprecated-enum-enum-conversion c++ and objc++
-Wdeprecated-enum-float-conversion c++ and objc++
-Wdesignated-init default
-Wdiscarded-array-qualifiers default
-Wdiscarded-qualifiers default
-Wdo-subscript fortran
-Wdiv-by-zero default
-Wduplicate-decl-specifier enabled by -Wall
-Weffc++ c++
-Wempty-body enabled by -Wextra
-Wenum-compare enabled by -Wall
-Wenum-conversion enabled by -Wextra
-Wendif-labels default
-Werror-implicit-function-declaration deprecated
-Wexceptions c++ and objc++
-Wexpansion-to-defined enabled by -Wextra
-Wextra-semi c++
-Wfloat-conversion FIXME maybe? borderline. some will want this
-Wfloat-equal FIXME maybe? borderline. some will want this
-Wformat covered by -Wformat=2
-Wformat-contains-nul default
-Wformat-diag enabled by -Wformat=2
-Wformat-extra-args enabled by -Wformat=2
-Wformat-nonliteral enabled by -Wformat=2
-Wformat-overflow<0,2> gcc --help=warnings artifact
-Wformat-overflow=<0,2> handled specially by gl_MANYWARN_ALL_GCC
-Wformat-security enabled by -Wformat=2
-Wformat-truncation covered by -Wformat-truncation=2
-Wformat-truncation=<0,2> handled specially by gl_MANYWARN_ALL_GCC
-Wformat-y2k enabled by -Wformat=2
-Wformat-zero-length enabled by -Wformat=2
-Wformat=<0,2> gcc --help=warnings artifact
-Wframe-address enabled by -Wall
-Wframe-larger-than=<byte-size> FIXME: choose something sane?
-Wfree-nonheap-object default
-Wfunction-elimination fortran
-Whsa default
-Wif-not-aligned default
-Wignored-attributes default
-Wignored-qualifiers enabled by -Wextra
-Wimplicit enabled by -Wall
-Wimplicit-fallthrough covered by -Wimplicit-fallthrough=2
-Wimplicit-fallthrough=<0,5> handled specially by gl_MANYWARN_ALL_GCC
-Wimplicit-function-declaration enabled by -Wimplicit
-Wimplicit-int enabled by -Wimplicit
-Wimplicit-interface fortran
-Wimplicit-procedure fortran
-Winaccessible-base c++ and objc++
-Wincompatible-pointer-types default
-Winfinite-recursion enabled by -Wall
-Winherited-variadic-ctor c++
-Winit-list-lifetime c++ and objc++
-Wint-conversion default
-Wint-in-bool-context enabled by -Wall
-Wint-to-pointer-cast default
-Winteger-division fortran
-Winterference-size c++
-Wintrinsic-shadow fortran
-Wintrinsics-std fortran
-Winvalid-imported-macros c++ and objc++
-Winvalid-memory-model default
-Winvalid-offsetof c++ and objc++
-Wjump-misses-init only useful for code meant to be compiled by a C++ compiler
-Wlarger-than- gcc --help=warnings artifact
-Wlarger-than=<byte-size> FIXME: choose something sane?
-Wline-truncation fortran
-Wliteral-suffix c++ and objc++
-Wlogical-not-parentheses enabled by -Wall
-Wlong-long obsolescent
-Wlto-type-mismatch c++ and objc++
-Wmain enabled by -Wall
-Wmaybe-uninitialized enabled by -Wall or -Wextra
-Wmemset-elt-size enabled by -Wall
-Wmemset-transposed-args enabled by -Wall
-Wmisleading-indentation enabled by -Wall
-Wmismatched-dealloc default
-Wmismatched-new-delete default, c++ and objc++
-Wmismatched-tags c++ and objc++
-Wmissing-attributes enabled by -Wall
-Wmissing-braces enabled by -Wall
-Wmissing-field-initializers enabled by -Wextra
-Wmissing-format-attribute obsolescent
-Wmissing-noreturn obsolescent
-Wmissing-parameter-type enabled by -Wextra
-Wmissing-profile default
-Wmissing-requires default, c++
-Wmissing-template-keyword default, c++
-Wmultichar default
-Wmultiple-inheritance c++ and objc++
-Wmultistatement-macros enabled by -Wall
-Wnamespaces c++
-Wnarrowing enabled by -Wall
-Wno-alloc-size-larger-than see -Walloc-size-larger-than
-Wno-alloca-larger-than see -Walloca-larger-than
-Wno-frame-larger-than see -Wframe-larger-than
-Wno-larger-than see -Wlarger-than
-Wno-stack-usage see -Wstack-usage
-Wno-vla-larger-than see -Wvla-larger-than
-Wnoexcept c++
-Wnoexcept-type c++
-Wnon-template-friend c++
-Wnon-virtual-dtor c++
-Wnonnull enabled by -Wall or -Wformat
-Wnonnull-compare enabled by -Wall
-Wnormalized default
-Wnormalized=[none|id|nfc|nfkc] defaults to nfc
-WNSObject-attribute objc and objc++
-Wobjc-root-class objc and objc++
-Wodr default
-Wold-style-cast c++ and objc++
-Wold-style-declaration enabled by -Wextra
-Wopenacc-parallelism OpenACC
-Woverflow default
-Woverloaded-virtual c++
-Woverride-init enabled by -Wextra
-Woverride-init-side-effects c++ and objc++
-Woverwrite-recursive fortran
-Wpacked-bitfield-compat default
-Wpacked-not-aligned enabled by -Wall
-Wpadded FIXME maybe? warns about "stabil" member in /usr/include/bits/timex.h
-Wparentheses enabled by -Wall
-Wpedantic FIXME: too strict?
-Wpessimizing-move c++ and objc++
-Wplacement-new c++
-Wplacement-new=<0,2> c++
-Wpmf-conversions c++ and objc++
-Wpointer-compare default
-Wpointer-sign enabled by -Wall
-Wpointer-to-int-cast default
-Wpragmas default
-Wprio-ctor-dtor c++
-Wproperty-assign-default objc++
-Wprotocol objc++
-Wpsabi default
-Wrange-loop-construct c++ and objc++
-Wreal-q-constant fortran
-Wrealloc-lhs fortran
-Wrealloc-lhs-all fortran
-Wredundant-decls FIXME maybe? many _gl_cxxalias_dummy FPs
-Wredundant-move c++ and objc++
-Wredundant-tags c++ and objc++
-Wregister c++ and objc++
-Wreorder c++ and objc++
-Wrestrict enabled by -Wall
-Wreturn-local-addr default
-Wreturn-type enabled by -Wall
-Wscalar-storage-order default
-Wselector objc and objc++
-Wsequence-point enabled by -Wall
-Wshadow-compatible-local covered by -Wshadow
-Wshadow-ivar objc
-Wshadow-local covered by -Wshadow
-Wshadow=compatible-local covered by -Wshadow
-Wshadow=global covered by -Wshadow
-Wshadow=local covered by -Wshadow
-Wshift-count-negative default
-Wshift-count-overflow default
-Wshift-negative-value enabled by -Wextra
-Wshift-overflow covered by -Wshift-overflow=2
-Wshift-overflow=<0,2> gcc --help=warnings artifact
-Wsign-compare enabled by -Wextra
-Wsign-conversion FIXME maybe? borderline. some will want this
-Wsign-promo c++ and objc++
-Wsized-deallocation c++ and objc++
-Wsizeof-array-argument default
-Wsizeof-array-div enabled by -Wall
-Wsizeof-pointer-div enabled by -Wall
-Wsizeof-pointer-memaccess enabled by -Wall
-Wstack-usage=<byte-size> FIXME: choose something sane?
-Wstrict-aliasing enabled by -Wall
-Wstrict-aliasing=<0,3> FIXME: choose something sane?
-Wstrict-null-sentinel c++ and objc++
-Wstrict-overflow=<0,5> FIXME: choose something sane?
-Wstrict-selector-match objc and objc++
-Wstring-compare enabled by -Wextra
-Wstringop-overflow covered by -Wstringop-overflow=2
-Wstringop-overflow=<0,4> defaults to 2
-Wstringop-overread default
-Wstringop-truncation default
-Wsubobject-linkage c++ and objc++
-Wsuggest-override c++ and objc++
-Wsurprising fortran
-Wswitch enabled by -Wall
-Wswitch-bool default
-Wswitch-default https://lists.gnu.org/r/bug-gnulib/2018-05/msg00179.html
-Wswitch-enum FIXME maybe? borderline. some will want this
-Wswitch-outside-range default
-Wswitch-unreachable default
-Wsynth deprecated
-Wtabs fortran
-Wtarget-lifetime fortran
-Wtautological-compare enabled by -Wall
-Wtemplates c++ and objc++
-Wterminate c++ and objc++
-Wtraditional obsolescent
-Wtraditional-conversion obsolescent
-Wtrigraphs enabled by -Wall
-Wtrivial-auto-var-init subsumed by -Wmaybe-uninitialized
-Wtsan default
-Wtype-limits enabled by -Wextra
-Wundeclared-selector objc and objc++
-Wundef FIXME maybe? too many false positives
-Wundefined-do-loop fortran
-Wunderflow fortran
-Wunreachable-code obsolescent no-op
-Wunsuffixed-float-constants triggers warning in gnulib's timespec.h
-Wunused enabled by -Wall
-Wunused-but-set-parameter enabled by -Wunused
-Wunused-but-set-variable enabled by -Wunused
-Wunused-const-variable covered by -Wunused-const-variable=2
-Wunused-const-variable=<0,2> gcc --help=warnings artifact
-Wunused-dummy-argument fortran
-Wunused-function enabled by -Wunused
-Wunused-label enabled by -Wunused
-Wunused-local-typedefs enabled by -Wunused
-Wunused-parameter enabled by -Wunused
-Wunused-result enabled by -Wunused
-Wunused-value enabled by -Wunused
-Wunused-variable enabled by -Wunused
-Wuse-after-free handled specially by gl_MANYWARN_ALL_GCC
-Wuse-after-free=<0,3> handled specially by gl_MANYWARN_ALL_GCC
-Wuse-without-only fortran
-Wuseless-cast c++ and objc++
-Wvarargs default
-Wvexing-parse c++ and objc++
-Wvirtual-inheritance c++
-Wvirtual-move-assign c++
-Wvla-larger-than=<number> handled specially by gl_MANYWARN_ALL_GCC
-Wvla-parameter enabled by -Wall
-Wvolatile c++ and objc++
-Wvolatile-register-var enabled by -Wall
-Wzero-as-null-pointer-constant c++ and objc++
-Wzero-length-bounds enabled by -Wall
-Wzerotrip fortran
-frequire-return-statement go
|