1 # options to filter out, and why
2 --all
-warnings
alias for -Wall
3 --extra
-warnings
alias for -Wextra
5 -Wabi this is now a no
-op
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
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?
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
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
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
67 -Wcatch
-value
=<0,3> c
++
68 -Wchar
-subscripts enabled by
-Wall
69 -Wcharacter
-truncation fortran
71 -Wclass
-conversion c
++ and objc
++
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
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
++
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
98 -Wduplicate
-decl
-specifier enabled by
-Wall
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
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
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
171 -Wmultiple
-inheritance c
++ and objc
++
172 -Wmultistatement
-macros enabled by
-Wall
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
183 -Wnon
-template
-friend c
++
184 -Wnon
-virtual
-dtor c
++
185 -Wnonnull enabled by
-Wall or
-Wformat
186 -Wnonnull
-compare enabled by
-Wall
188 -Wnormalized
=[none|id|nfc|nfkc
] defaults to nfc
190 -Wold
-style
-cast c
++ and objc
++
191 -Wold
-style
-declaration enabled by
-Wextra
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
++
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
211 -Wproperty
-assign
-default objc
++
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
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
++
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
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
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
++
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
305 -frequire
-return-statement go