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