c.opt (Wextra-semi): New C++ warning flag.
[platform/upstream/gcc.git] / gcc / c-family / c.opt
1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2017 Free Software Foundation, Inc.
3 ;
4 ; This file is part of GCC.
5 ;
6 ; GCC is free software; you can redistribute it and/or modify it under
7 ; the terms of the GNU General Public License as published by the Free
8 ; Software Foundation; either version 3, or (at your option) any later
9 ; version.
10 ;
11 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 ; for more details.
15 ;
16 ; You should have received a copy of the GNU General Public License
17 ; along with GCC; see the file COPYING3.  If not see
18 ; <http://www.gnu.org/licenses/>.
19
20 ; See the GCC internals manual for a description of this file's format.
21
22 ; Please try to keep this file in ASCII collating order.
23
24 Language
25 C
26
27 Language
28 ObjC
29
30 Language
31 C++
32
33 Language
34 ObjC++
35
36 -all-warnings
37 C ObjC C++ ObjC++ Warning Alias(Wall)
38
39 -ansi
40 C ObjC C++ ObjC++ Alias(ansi)
41
42 -assert
43 C ObjC C++ ObjC++ Separate Alias(A) MissingArgError(assertion missing after %qs)
44
45 -assert=
46 C ObjC C++ ObjC++ Joined Alias(A) MissingArgError(assertion missing after %qs)
47
48 -comments
49 C ObjC C++ ObjC++ Alias(C)
50
51 -comments-in-macros
52 C ObjC C++ ObjC++ Alias(CC)
53
54 -define-macro
55 C ObjC C++ ObjC++ Separate Alias(D) MissingArgError(macro name missing after %qs)
56
57 -define-macro=
58 C ObjC C++ ObjC++ Joined Alias(D) MissingArgError(macro name missing after %qs)
59
60 -dependencies
61 C ObjC C++ ObjC++ Alias(M)
62
63 -dump
64 C ObjC C++ ObjC++ Separate Alias(d)
65
66 -dump=
67 C ObjC C++ ObjC++ Joined Alias(d)
68
69 -imacros
70 C ObjC C++ ObjC++ Separate Alias(imacros) MissingArgError(missing filename after %qs)
71
72 -imacros=
73 C ObjC C++ ObjC++ Joined Alias(imacros) MissingArgError(missing filename after %qs)
74
75 -include
76 C ObjC C++ ObjC++ Separate Alias(include) MissingArgError(missing filename after %qs)
77
78 -include=
79 C ObjC C++ ObjC++ Joined Alias(include) MissingArgError(missing filename after %qs)
80
81 -include-barrier
82 C ObjC C++ ObjC++ Alias(I, -)
83
84 -include-directory
85 C ObjC C++ ObjC++ Separate Alias(I) MissingArgError(missing path after %qs)
86
87 -include-directory=
88 C ObjC C++ ObjC++ Joined Alias(I) MissingArgError(missing path after %qs)
89
90 -include-directory-after
91 C ObjC C++ ObjC++ Separate Alias(idirafter) MissingArgError(missing path after %qs)
92
93 -include-directory-after=
94 C ObjC C++ ObjC++ Joined Alias(idirafter) MissingArgError(missing path after %qs)
95
96 -include-prefix
97 C ObjC C++ ObjC++ Separate Alias(iprefix)
98
99 -include-prefix=
100 C ObjC C++ ObjC++ JoinedOrMissing Alias(iprefix)
101
102 -include-with-prefix
103 C ObjC C++ ObjC++ Separate Alias(iwithprefix)
104
105 -include-with-prefix=
106 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
107
108 -include-with-prefix-after
109 C ObjC C++ ObjC++ Separate Alias(iwithprefix)
110
111 -include-with-prefix-after=
112 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
113
114 -include-with-prefix-before
115 C ObjC C++ ObjC++ Separate Alias(iwithprefixbefore)
116
117 -include-with-prefix-before=
118 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefixbefore)
119
120 -no-integrated-cpp
121 Driver Alias(no-integrated-cpp)
122
123 -no-line-commands
124 C ObjC C++ ObjC++ Alias(P)
125
126 -no-standard-includes
127 C ObjC C++ ObjC++ Alias(nostdinc)
128
129 -no-warnings
130 C ObjC C++ ObjC++ Alias(w)
131
132 -output
133 C ObjC C++ ObjC++ Separate Alias(o)
134
135 -output=
136 C ObjC C++ ObjC++ Joined Alias(o)
137
138 -output-pch=
139 C ObjC C++ ObjC++ Joined Separate
140
141 -pedantic
142 C ObjC C++ ObjC++ Alias(pedantic)
143
144 -preprocess
145 C ObjC C++ ObjC++ Undocumented Alias(E)
146
147 -print-missing-file-dependencies
148 C ObjC C++ ObjC++ Alias(MG)
149
150 -trace-includes
151 C ObjC C++ ObjC++ Alias(H)
152
153 -traditional
154 Driver Alias(traditional)
155
156 -traditional-cpp
157 C ObjC C++ ObjC++ Alias(traditional-cpp)
158
159 -trigraphs
160 C ObjC C++ ObjC++ Alias(trigraphs)
161
162 -undefine-macro
163 C ObjC C++ ObjC++ Separate Alias(U) MissingArgError(macro name missing after %qs)
164
165 -undefine-macro=
166 C ObjC C++ ObjC++ Joined Alias(U) MissingArgError(macro name missing after %qs)
167
168 -user-dependencies
169 C ObjC C++ ObjC++ Alias(MM)
170
171 -verbose
172 Common C ObjC C++ ObjC++ Alias(v)
173
174 -write-dependencies
175 C ObjC C++ ObjC++ NoDriverArg Separate Alias(MD) MissingArgError(missing filename after %qs)
176
177 -write-user-dependencies
178 C ObjC C++ ObjC++ NoDriverArg Separate Alias(MMD) MissingArgError(missing filename after %qs)
179
180 A
181 C ObjC C++ ObjC++ Joined Separate MissingArgError(assertion missing after %qs)
182 -A<question>=<answer>   Assert the <answer> to <question>.  Putting '-' before <question> disables the <answer> to <question>.
183
184 C
185 C ObjC C++ ObjC++
186 Do not discard comments.
187
188 CC
189 C ObjC C++ ObjC++
190 Do not discard comments in macro expansions.
191
192 D
193 C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
194 -D<macro>[=<val>]       Define a <macro> with <val> as its value.  If just <macro> is given, <val> is taken to be 1.
195
196 E
197 C ObjC C++ ObjC++ Undocumented Var(flag_preprocess_only)
198
199 F
200 Driver C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
201 -F <dir>        Add <dir> to the end of the main framework include path.
202
203 fgimple
204 C Var(flag_gimple) Init(0)
205 Enable parsing GIMPLE.
206
207 H
208 C ObjC C++ ObjC++
209 Print the name of header files as they are used.
210
211 I
212 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
213 -I <dir>        Add <dir> to the end of the main include path.
214
215 M
216 C ObjC C++ ObjC++
217 Generate make dependencies.
218
219 MD
220 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
221 Generate make dependencies and compile.
222
223 MF
224 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
225 -MF <file>      Write dependency output to the given file.
226
227 MG
228 C ObjC C++ ObjC++
229 Treat missing header files as generated files.
230
231 MM
232 C ObjC C++ ObjC++
233 Like -M but ignore system header files.
234
235 MMD
236 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
237 Like -MD but ignore system header files.
238
239 MP
240 C ObjC C++ ObjC++
241 Generate phony targets for all headers.
242
243 MQ
244 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
245 -MQ <target>    Add a MAKE-quoted target.
246
247 MT
248 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
249 -MT <target>    Add an unquoted target.
250
251 P
252 C ObjC C++ ObjC++
253 Do not generate #line directives.
254
255 U
256 C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
257 -U<macro>       Undefine <macro>.
258
259 Wabi
260 C ObjC C++ ObjC++ LTO Var(warn_abi) Warning
261 Warn about things that will change when compiling with an ABI-compliant compiler.
262
263 Wabi=
264 C ObjC C++ ObjC++ LTO Joined RejectNegative UInteger Warning
265 Warn about things that change between the current -fabi-version and the specified version.
266
267 Wabi-tag
268 C++ ObjC++ Var(warn_abi_tag) Warning
269 Warn if a subobject has an abi_tag attribute that the complete object type does not have.
270
271 Wpsabi
272 C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Warning Undocumented LangEnabledBy(C ObjC C++ ObjC++,Wabi)
273
274 Waddress
275 C ObjC C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
276 Warn about suspicious uses of memory addresses.
277
278 Enum
279 Name(warn_aligned_new_level) Type(int) UnknownError(argument %qs to %<-Waligned-new%> not recognized)
280
281 EnumValue
282 Enum(warn_aligned_new_level) String(none) Value(0)
283
284 EnumValue
285 Enum(warn_aligned_new_level) String(global) Value(1)
286
287 EnumValue
288 Enum(warn_aligned_new_level) String(all) Value(2)
289
290 Waligned-new
291 C++ ObjC++ Alias(Waligned-new=,global,none)
292 Warn about 'new' of type with extended alignment without -faligned-new.
293
294 Waligned-new=
295 C++ ObjC++ Var(warn_aligned_new) Enum(warn_aligned_new_level) Joined RejectNegative Warning LangEnabledBy(C++ ObjC++,Wall,1,0)
296 -Waligned-new=[none|global|all] Warn even if 'new' uses a class member allocation function.
297
298 Wall
299 C ObjC C++ ObjC++ Warning
300 Enable most warning messages.
301
302 Walloca
303 C ObjC C++ ObjC++ Var(warn_alloca) Warning
304 Warn on any use of alloca.
305
306 Walloc-size-larger-than=
307 C ObjC C++ ObjC++ Var(warn_alloc_size_limit) Warning Joined
308 -Walloc-size-larger-than=<bytes> Warn for calls to allocation functions that
309 attempt to allocate objects larger than the specified number of bytes.
310
311 Walloc-zero
312 C ObjC C++ ObjC++ Var(warn_alloc_zero) Warning
313 -Walloc-zero Warn for calls to allocation functions that specify zero bytes.
314
315 Walloca-larger-than=
316 C ObjC C++ LTO ObjC++ Var(warn_alloca_limit) Warning Joined RejectNegative UInteger
317 -Walloca-larger-than=<number>   Warn on unbounded uses of
318 alloca, and on bounded uses of alloca whose bound can be larger than
319 <number> bytes.
320
321 Warray-bounds
322 LangEnabledBy(C ObjC C++ ObjC++,Wall)
323 ; in common.opt
324
325 Warray-bounds=
326 LangEnabledBy(C ObjC C++ ObjC++,Wall,1,0)
327 ; in common.opt
328
329 Wassign-intercept
330 ObjC ObjC++ Var(warn_assign_intercept) Warning
331 Warn whenever an Objective-C assignment is being intercepted by the garbage collector.
332
333 Wbad-function-cast
334 C ObjC Var(warn_bad_function_cast) Warning
335 Warn about casting functions to incompatible types.
336
337 Wbool-compare
338 C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
339 Warn about boolean expression compared with an integer value different from true/false.
340
341 Wbool-operation
342 C ObjC C++ ObjC++ Var(warn_bool_op) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
343 Warn about certain operations on boolean expressions.
344
345 Wframe-address
346 C ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
347 Warn when __builtin_frame_address or __builtin_return_address is used unsafely.
348
349 Wbuiltin-declaration-mismatch
350 C ObjC C++ ObjC++ Var(warn_builtin_declaraion_mismatch) Init(1) Warning
351 Warn when a built-in function is declared with the wrong signature.
352
353 Wbuiltin-macro-redefined
354 C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
355 Warn when a built-in preprocessor macro is undefined or redefined.
356
357 Wc90-c99-compat
358 C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
359 Warn about features not present in ISO C90, but present in ISO C99.
360
361 Wc99-c11-compat
362 C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
363 Warn about features not present in ISO C99, but present in ISO C11.
364
365 Wc++-compat
366 C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
367 Warn about C constructs that are not in the common subset of C and C++.
368
369 Wc++0x-compat
370 C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
371
372 Wc++11-compat
373 C++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT)
374 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011.
375
376 Wc++14-compat
377 C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
378 Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014.
379
380 Wc++1z-compat
381 C++ ObjC++ Var(warn_cxx1z_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
382 Warn about C++ constructs whose meaning differs between ISO C++ 2014 and (forthcoming) ISO C++ 201z(7?).
383
384 Wc++17-compat
385 C++ ObjC++ Warning Alias(Wc++1z-compat) Undocumented
386
387 Wcast-qual
388 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
389 Warn about casts which discard qualifiers.
390
391 Wchar-subscripts
392 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
393 Warn about subscripts whose type is \"char\".
394
395 Wchkp
396 C ObjC C++ ObjC++ Var(warn_chkp) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
397 Warn about memory access errors found by Pointer Bounds Checker.
398
399 Wclobbered
400 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
401 Warn about variables that might be changed by \"longjmp\" or \"vfork\".
402
403 Wcomment
404 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
405 Warn about possibly nested block comments, and C++ comments spanning more than one physical line.
406
407 Wcomments
408 C ObjC C++ ObjC++ Warning Alias(Wcomment)
409 Synonym for -Wcomment.
410
411 Wconditionally-supported
412 C++ ObjC++ Var(warn_conditionally_supported) Warning
413 Warn for conditionally-supported constructs.
414
415 Wconversion
416 C ObjC C++ ObjC++ Var(warn_conversion) Warning
417 Warn for implicit type conversions that may change a value.
418
419 Wconversion-null
420 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
421 Warn for converting NULL from/to a non-pointer type.
422
423 Wcpp
424 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
425 ; Documented in common.opt
426
427 Wctor-dtor-privacy
428 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
429 Warn when all constructors and destructors are private.
430
431 Wdangling-else
432 C ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
433 Warn about dangling else.
434
435 Wdate-time
436 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
437 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
438
439 Wdeclaration-after-statement
440 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
441 Warn when a declaration is found after a statement.
442
443 Wdelete-incomplete
444 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
445 Warn when deleting a pointer to incomplete type.
446
447 Wdelete-non-virtual-dtor
448 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
449 Warn about deleting polymorphic objects with non-virtual destructors.
450
451 Wdeprecated
452 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
453 Warn if a deprecated compiler feature, class, method, or field is used.
454
455 Wdesignated-init
456 C ObjC Var(warn_designated_init) Init(1) Warning
457 Warn about positional initialization of structs requiring designated initializers.
458
459 Wdiscarded-array-qualifiers
460 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
461 Warn if qualifiers on arrays which are pointer targets are discarded.
462
463 Wdiscarded-qualifiers
464 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
465 Warn if type qualifiers on pointers are discarded.
466
467 Wdiv-by-zero
468 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
469 Warn about compile-time integer division by zero.
470
471 Wduplicated-branches
472 C ObjC C++ ObjC++ Var(warn_duplicated_branches) Init(0) Warning
473 Warn about duplicated branches in if-else statements.
474
475 Wduplicated-cond
476 C ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
477 Warn about duplicated conditions in an if-else-if chain.
478
479 Weffc++
480 C++ ObjC++ Var(warn_ecpp) Warning
481 Warn about violations of Effective C++ style rules.
482
483 Wempty-body
484 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
485 Warn about an empty body in an if or else statement.
486
487 Wendif-labels
488 C ObjC C++ ObjC++ CPP(warn_endif_labels) CppReason(CPP_W_ENDIF_LABELS) Var(cpp_warn_endif_labels) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
489 Warn about stray tokens after #else and #endif.
490
491 Wenum-compare
492 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
493 Warn about comparison of different enum types.
494
495 Werror
496 C ObjC C++ ObjC++
497 ; Documented in common.opt
498
499 Werror-implicit-function-declaration
500 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
501 This switch is deprecated; use -Werror=implicit-function-declaration instead.
502
503 Wextra
504 C ObjC C++ ObjC++ Warning
505 ; in common.opt
506
507 Wextra-semi
508 C++ ObjC++ Var(warn_extra_semi) Warning
509 Warn about semicolon after in-class function definition.
510
511 Wfloat-conversion
512 C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
513 Warn for implicit type conversions that cause loss of floating point precision.
514
515 Wfloat-equal
516 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
517 Warn if testing floating point numbers for equality.
518
519 Wformat
520 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
521 Warn about printf/scanf/strftime/strfmon format string anomalies.
522
523 Wformat-contains-nul
524 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
525 Warn about format strings that contain NUL bytes.
526
527 Wformat-extra-args
528 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
529 Warn if passing too many arguments to a function for its format string.
530
531 Wformat-nonliteral
532 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
533 Warn about format strings that are not literals.
534
535 Wformat-overflow
536 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-overflow=, 1, 0)
537 Warn about function calls with format strings that write past the end
538 of the destination region.  Same as -Wformat-overflow=1.
539
540 Wformat-security
541 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
542 Warn about possible security problems with format functions.
543
544 Wformat-signedness
545 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
546 Warn about sign differences with format functions.
547
548 Wformat-truncation
549 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-truncation=, 1, 0)
550 Warn about calls to snprintf and similar functions that truncate output.
551 Same as -Wformat-truncation=1.
552
553 Wformat-y2k
554 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
555 Warn about strftime formats yielding 2-digit years.
556
557 Wformat-zero-length
558 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
559 Warn about zero-length formats.
560
561 Wformat=
562 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
563 Warn about printf/scanf/strftime/strfmon format string anomalies.
564
565 Wformat-overflow=
566 C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_overflow) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
567 Warn about function calls with format strings that write past the end
568 of the destination region.
569
570 Wformat-truncation=
571 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format_trunc) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
572 Warn about calls to snprintf and similar functions that truncate output.
573
574 Wignored-qualifiers
575 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
576 Warn whenever type qualifiers are ignored.
577
578 Wignored-attributes
579 C C++ Var(warn_ignored_attributes) Init(1) Warning
580 Warn whenever attributes are ignored.
581
582 Wincompatible-pointer-types
583 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
584 Warn when there is a conversion between pointers that have incompatible types.
585
586 Winit-self
587 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
588 Warn about variables which are initialized to themselves.
589
590 Wimplicit
591 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
592 Warn about implicit declarations.
593
594 Wimplicit-fallthrough=
595 LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
596 ; in common.opt
597
598 Wdouble-promotion
599 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
600 Warn about implicit conversions from \"float\" to \"double\".
601
602 Wexpansion-to-defined
603 C ObjC C++ ObjC++ CPP(warn_expansion_to_defined) CppReason(CPP_W_EXPANSION_TO_DEFINED) Var(cpp_warn_expansion_to_defined) Init(0) Warning EnabledBy(Wextra || Wpedantic)
604 Warn if \"defined\" is used outside #if.
605
606 Wimplicit-function-declaration
607 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
608 Warn about implicit function declarations.
609
610 Wimplicit-int
611 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
612 Warn when a declaration does not specify a type.
613
614 Wimport
615 C ObjC C++ ObjC++ Undocumented Ignore
616
617 Winherited-variadic-ctor
618 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
619 Warn about C++11 inheriting constructors when the base has a variadic constructor.
620
621 Wint-conversion
622 C ObjC Var(warn_int_conversion) Init(1) Warning
623 Warn about incompatible integer to pointer and pointer to integer conversions.
624
625 Wint-in-bool-context
626 C ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
627 Warn for suspicious integer expressions in boolean context.
628
629 Wint-to-pointer-cast
630 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
631 Warn when there is a cast to a pointer from an integer of a different size.
632
633 Winvalid-offsetof
634 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
635 Warn about invalid uses of the \"offsetof\" macro.
636
637 Winvalid-pch
638 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
639 Warn about PCH files that are found but not used.
640
641 Wjump-misses-init
642 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
643 Warn when a jump misses a variable initialization.
644
645 Wliteral-suffix
646 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
647 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
648
649 Wlogical-op
650 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
651 Warn when a logical operator is suspiciously always evaluating to true or false.
652
653 Wlogical-not-parentheses
654 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
655 Warn when logical not is used on the left hand side operand of a comparison.
656
657 Wlong-long
658 C ObjC C++ ObjC++ CPP(cpp_warn_long_long) CppReason(CPP_W_LONG_LONG) Var(warn_long_long) Init(-1) Warning LangEnabledBy(C ObjC,Wc90-c99-compat)
659 Do not warn about using \"long long\" when -pedantic.
660
661 Wmain
662 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
663 Warn about suspicious declarations of \"main\".
664
665 Wmain
666 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
667 ;
668
669 Wmemset-transposed-args
670 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
671 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
672
673 Wmemset-elt-size
674 C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
675 Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
676
677 Wmisleading-indentation
678 C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
679 Warn when the indentation of the code does not reflect the block structure.
680
681 Wmissing-braces
682 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
683 Warn about possibly missing braces around initializers.
684
685 Wmissing-declarations
686 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
687 Warn about global functions without previous declarations.
688
689 Wmissing-field-initializers
690 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
691 Warn about missing fields in struct initializers.
692
693 Wmultiple-inheritance
694 C++ ObjC++ Var(warn_multiple_inheritance) Warning
695 Warn on direct multiple inheritance.
696
697 Wnamespaces
698 C++ ObjC++ Var(warn_namespaces) Warning
699 Warn on namespace definition.
700
701 Wsized-deallocation
702 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
703 Warn about missing sized deallocation functions.
704
705 Wsizeof-pointer-memaccess
706 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
707 Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
708
709 Wsizeof-array-argument
710 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
711 Warn when sizeof is applied on a parameter declared as an array.
712
713 Wstringop-overflow
714 C ObjC C++ ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
715 Warn about buffer overflow in string manipulation functions like memcpy
716 and strcpy.
717
718 Wstringop-overflow=
719 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning
720 Under the control of Object Size type, warn about buffer overflow in string
721 manipulation functions like memcpy and strcpy.
722
723 Wsuggest-attribute=format
724 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
725 Warn about functions which might be candidates for format attributes.
726
727 Wsuggest-override
728 C++ ObjC++ Var(warn_override) Warning
729 Suggest that the override keyword be used when the declaration of a virtual
730 function overrides another.
731
732 Wswitch
733 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
734 Warn about enumerated switches, with no default, missing a case.
735
736 Wswitch-default
737 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
738 Warn about enumerated switches missing a \"default:\" statement.
739
740 Wswitch-enum
741 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
742 Warn about all enumerated switches missing a specific case.
743
744 Wswitch-bool
745 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
746 Warn about switches with boolean controlling expression.
747
748 Wtemplates
749 C++ ObjC++ Var(warn_templates) Warning
750 Warn on primary template declaration.
751
752 Wmissing-format-attribute
753 C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
754 ;
755
756 Wmissing-include-dirs
757 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
758 Warn about user-specified include directories that do not exist.
759
760 Wmissing-parameter-type
761 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
762 Warn about function parameters declared without a type specifier in K&R-style functions.
763
764 Wmissing-prototypes
765 C ObjC Var(warn_missing_prototypes) Warning
766 Warn about global functions without prototypes.
767
768 Wmudflap
769 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
770
771 Wmultichar
772 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
773 Warn about use of multi-character character constants.
774
775 Wnarrowing
776 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
777 Warn about narrowing conversions within { } that are ill-formed in C++11.
778
779 Wnested-externs
780 C ObjC Var(warn_nested_externs) Warning
781 Warn about \"extern\" declarations not at file scope.
782
783 Wnoexcept
784 C++ ObjC++ Var(warn_noexcept) Warning
785 Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
786
787 Wnoexcept-type
788 C++ ObjC++ Warning Var(warn_noexcept_type) LangEnabledBy(C++ ObjC++,Wabi || Wc++1z-compat)
789 Warn if C++1z noexcept function type will change the mangled name of a symbol.
790
791 Wnon-template-friend
792 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
793 Warn when non-templatized friend functions are declared within a template.
794
795 Wnon-virtual-dtor
796 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
797 Warn about non-virtual destructors.
798
799 Wnonnull
800 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
801 Warn about NULL being passed to argument slots marked as requiring non-NULL.
802
803 Wnonnull
804 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
805 ;
806
807 Wnonnull-compare
808 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
809 ;
810
811 Wnormalized
812 C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
813 ;
814
815 Wnormalized=
816 C ObjC C++ ObjC++ RejectNegative Joined Warning CPP(warn_normalize) CppReason(CPP_W_NORMALIZE) Init(normalized_C) Var(cpp_warn_normalize) Enum(cpp_normalize_level)
817 -Wnormalized=[none|id|nfc|nfkc] Warn about non-normalized Unicode strings.
818
819 ; Required for these enum values.
820 SourceInclude
821 cpplib.h
822
823 Enum
824 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
825
826 EnumValue
827 Enum(cpp_normalize_level) String(none) Value(normalized_none)
828
829 EnumValue
830 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
831
832 EnumValue
833 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
834
835 EnumValue
836 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
837
838 Wold-style-cast
839 C++ ObjC++ Var(warn_old_style_cast) Warning
840 Warn if a C-style cast is used in a program.
841
842 Wold-style-declaration
843 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
844 Warn for obsolescent usage in a declaration.
845
846 Wold-style-definition
847 C ObjC Var(warn_old_style_definition) Warning
848 Warn if an old-style parameter definition is used.
849
850 Wopenmp-simd
851 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
852 Warn if a simd directive is overridden by the vectorizer cost model.
853
854 Woverlength-strings
855 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
856 Warn if a string is longer than the maximum portable length specified by the standard.
857
858 Woverloaded-virtual
859 C++ ObjC++ Var(warn_overloaded_virtual) Warning
860 Warn about overloaded virtual function names.
861
862 Woverride-init
863 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
864 Warn about overriding initializers without side effects.
865
866 Woverride-init-side-effects
867 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
868 Warn about overriding initializers with side effects.
869
870 Wpacked-bitfield-compat
871 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
872 Warn about packed bit-fields whose offset changed in GCC 4.4.
873
874 Wparentheses
875 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
876 Warn about possibly missing parentheses.
877
878 Wpedantic
879 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
880 ; Documented in common.opt
881
882 Wpmf-conversions
883 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
884 Warn when converting the type of pointers to member functions.
885
886 Wpointer-arith
887 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
888 Warn about function pointer arithmetic.
889
890 Wpointer-sign
891 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
892 Warn when a pointer differs in signedness in an assignment.
893
894 Wpointer-compare
895 C ObjC C++ ObjC++ Var(warn_pointer_compare) Init(1) Warning
896 Warn when a pointer is compared with a zero character constant.
897
898 Wpointer-to-int-cast
899 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
900 Warn when a pointer is cast to an integer of a different size.
901
902 Wpragmas
903 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
904 Warn about misuses of pragmas.
905
906 Wproperty-assign-default
907 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
908 Warn if a property for an Objective-C object has no assign semantics specified.
909
910 Wprotocol
911 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
912 Warn if inherited methods are unimplemented.
913
914 Wplacement-new
915 C++ Warning Alias(Wplacement-new=, 1, 0)
916 Warn for placement new expressions with undefined behavior.
917
918 Wplacement-new=
919 C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning
920 Warn for placement new expressions with undefined behavior.
921
922 Wredundant-decls
923 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
924 Warn about multiple declarations of the same object.
925
926 Wregister
927 C++ ObjC++ Var(warn_register) Warning
928 Warn about uses of register storage specifier.
929
930 Wreorder
931 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
932 Warn when the compiler reorders code.
933
934 Wreturn-type
935 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
936 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
937
938 Wscalar-storage-order
939 C ObjC C++ ObjC++ Init(1) Warning
940 Warn on suspicious constructs involving reverse scalar storage order.
941
942 Wselector
943 ObjC ObjC++ Var(warn_selector) Warning
944 Warn if a selector has multiple methods.
945
946 Wsequence-point
947 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
948 Warn about possible violations of sequence point rules.
949
950 Wshadow-ivar
951 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
952 Warn if a local declaration hides an instance variable.
953
954 Wshift-overflow
955 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
956 Warn if left shift of a signed value overflows.
957
958 Wshift-overflow=
959 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning
960 Warn if left shift of a signed value overflows.
961
962 Wshift-count-negative
963 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
964 Warn if shift count is negative.
965
966 Wshift-count-overflow
967 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
968 Warn if shift count >= width of type.
969
970 Wshift-negative-value
971 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
972 Warn if left shifting a negative value.
973
974 Wsign-compare
975 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
976 Warn about signed-unsigned comparisons.
977
978 Wsign-compare
979 C ObjC C++ ObjC++ EnabledBy(Wextra)
980 ;
981
982 Wsign-conversion
983 C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
984 Warn for implicit type conversions between signed and unsigned integers.
985
986 Wsign-promo
987 C++ ObjC++ Var(warn_sign_promo) Warning
988 Warn when overload promotes from unsigned to signed.
989
990 Wstrict-null-sentinel
991 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
992 Warn about uncasted NULL used as sentinel.
993
994 Wstrict-prototypes
995 C ObjC Var(warn_strict_prototypes) Warning
996 Warn about unprototyped function declarations.
997
998 Wstrict-aliasing=
999 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
1000 ;
1001
1002 Wstrict-overflow=
1003 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
1004 ;
1005
1006 Wstrict-selector-match
1007 ObjC ObjC++ Var(warn_strict_selector_match) Warning
1008 Warn if type signatures of candidate methods do not match exactly.
1009
1010 Wsync-nand
1011 C C++ Var(warn_sync_nand) Init(1) Warning
1012 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
1013
1014 Wsynth
1015 C++ ObjC++ Var(warn_synth) Warning
1016 Deprecated.  This switch has no effect.
1017
1018 Wsystem-headers
1019 C ObjC C++ ObjC++ Warning
1020 ; Documented in common.opt
1021
1022 Wtautological-compare
1023 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1024 Warn if a comparison always evaluates to true or false.
1025
1026 Wterminate
1027 C++ ObjC++ Warning Var(warn_terminate) Init(1)
1028 Warn if a throw expression will always result in a call to terminate().
1029
1030 Wtraditional
1031 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
1032 Warn about features not present in traditional C.
1033
1034 Wtraditional-conversion
1035 C ObjC Var(warn_traditional_conversion) Warning
1036 Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
1037
1038 Wtrigraphs
1039 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1040 Warn if trigraphs are encountered that might affect the meaning of the program.
1041
1042 Wundeclared-selector
1043 ObjC ObjC++ Var(warn_undeclared_selector) Warning
1044 Warn about @selector()s without previously declared methods.
1045
1046 Wundef
1047 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
1048 Warn if an undefined macro is used in an #if directive.
1049
1050 Wuninitialized
1051 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1052 ;
1053
1054 Wmaybe-uninitialized
1055 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1056 ;
1057
1058 Wunknown-pragmas
1059 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
1060 Warn about unrecognized pragmas.
1061
1062 Wunsuffixed-float-constants
1063 C ObjC Var(warn_unsuffixed_float_constants) Warning
1064 Warn about unsuffixed float constants.
1065
1066 Wunused
1067 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1068 ; documented in common.opt
1069
1070 Wunused-local-typedefs
1071 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
1072 Warn when typedefs locally defined in a function are not used.
1073
1074 Wunused-macros
1075 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
1076 Warn about macros defined in the main file that are not used.
1077
1078 Wunused-result
1079 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
1080 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
1081
1082 Wunused-variable
1083 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
1084 ; documented in common.opt
1085
1086 Wunused-const-variable
1087 C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
1088 Warn when a const variable is unused.
1089
1090 Wunused-const-variable=
1091 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0)
1092 Warn when a const variable is unused.
1093
1094 Wvariadic-macros
1095 C ObjC C++ ObjC++ CPP(warn_variadic_macros) CppReason(CPP_W_VARIADIC_MACROS) Var(cpp_warn_variadic_macros) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic || Wtraditional)
1096 Warn about using variadic macros.
1097
1098 Wvarargs
1099 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
1100 Warn about questionable usage of the macros used to retrieve variable arguments.
1101
1102 Wvla
1103 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
1104 Warn if a variable length array is used.
1105
1106 Wvla-larger-than=
1107 C ObjC C++ ObjC++ Var(warn_vla_limit) Warning Joined RejectNegative UInteger
1108 -Wvla-larger-than=<number>      Warn on unbounded uses of variable-length arrays, and
1109 on bounded uses of variable-length arrays whose bound can be
1110 larger than <number> bytes.
1111
1112 Wvolatile-register-var
1113 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1114 Warn when a register variable is declared volatile.
1115
1116 Wvirtual-inheritance
1117 C++ ObjC++ Var(warn_virtual_inheritance) Warning
1118 Warn on direct virtual inheritance.
1119
1120 Wvirtual-move-assign
1121 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
1122 Warn if a virtual base has a non-trivial move assignment operator.
1123
1124 Wwrite-strings
1125 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
1126 In C++, nonzero means warn about deprecated conversion from string literals to 'char *'.  In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard.
1127
1128 Wzero-as-null-pointer-constant
1129 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
1130 Warn when a literal '0' is used as null pointer.
1131
1132 Wuseless-cast
1133 C++ ObjC++ Var(warn_useless_cast) Warning
1134 Warn about useless casts.
1135
1136 Wsubobject-linkage
1137 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
1138 Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.
1139
1140 Wduplicate-decl-specifier
1141 C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1142 Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1143
1144 Wrestrict
1145 C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++)
1146 Warn when an argument passed to a restrict-qualified parameter aliases with
1147 another argument.
1148
1149 ansi
1150 C ObjC C++ ObjC++
1151 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
1152
1153 d
1154 C ObjC C++ ObjC++ Joined
1155 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
1156
1157 fabi-compat-version=
1158 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
1159 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
1160
1161 faccess-control
1162 C++ ObjC++ Var(flag_access_control) Init(1)
1163 Enforce class member access control semantics.
1164
1165 fada-spec-parent=
1166 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
1167 -fada-spec-parent=unit  Dump Ada specs as child units of given parent.
1168
1169 faligned-new
1170 C++ ObjC++ Alias(faligned-new=,1,0)
1171 Support C++17 allocation of over-aligned types.
1172
1173 faligned-new=
1174 C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
1175 -faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
1176
1177 fall-virtual
1178 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1179
1180 fallow-parameterless-variadic-functions
1181 C ObjC Var(flag_allow_parameterless_variadic_functions)
1182 Allow variadic functions without named parameter.
1183
1184 falt-external-templates
1185 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1186 No longer supported.
1187
1188 fasm
1189 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1190 Recognize the \"asm\" keyword.
1191
1192 ; Define extra predefined macros for use in libgcc.
1193 fbuilding-libgcc
1194 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1195
1196 fbuiltin
1197 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1198 Recognize built-in functions.
1199
1200 fbuiltin-
1201 C ObjC C++ ObjC++ Joined
1202
1203 fcanonical-system-headers
1204 C ObjC C++ ObjC++
1205 Where shorter, use canonicalized paths to systems headers.
1206
1207 fcheck-pointer-bounds
1208 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
1209 Add Pointer Bounds Checker instrumentation.  fchkp-* flags are used to
1210 control instrumentation.  Currently available for C, C++ and ObjC.
1211
1212 fchkp-check-incomplete-type
1213 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
1214 Generate pointer bounds checks for variables with incomplete type.
1215
1216 fchkp-zero-input-bounds-for-main
1217 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
1218 Use zero bounds for all incoming arguments in 'main' function.  It helps when
1219 instrumented binaries are used with legacy libs.
1220
1221 fchkp-first-field-has-own-bounds
1222 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
1223 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1224 field in the structure.  By default pointer to the first field has the same
1225 bounds as pointer to the whole structure.
1226
1227 fchkp-narrow-bounds
1228 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
1229 Control how Pointer Bounds Checker handle pointers to object fields.  When
1230 narrowing is on, field bounds are used.  Otherwise full object bounds are used.
1231
1232 fchkp-narrow-to-innermost-array
1233 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1234 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1235 nested static arrays access.  By default outermost array is used.
1236
1237 fchkp-flexible-struct-trailing-arrays
1238 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_flexible_struct_trailing_arrays)
1239 Forces Pointer Bounds Checker to treat all trailing arrays in structures as
1240 possibly flexible.  By default only arrays fields with zero length or that are
1241 marked with attribute bnd_variable_size are treated as flexible.
1242
1243 fchkp-optimize
1244 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1245 Allow Pointer Bounds Checker optimizations.  By default allowed
1246 on optimization levels >0.
1247
1248 fchkp-use-fast-string-functions
1249 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1250 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1251
1252 fchkp-use-nochk-string-functions
1253 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1254 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1255
1256 fchkp-use-static-bounds
1257 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1258 Use statically initialized variable for vars bounds instead of
1259 generating them each time it is required.
1260
1261 fchkp-use-static-const-bounds
1262 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1263 Use statically initialized variable for constant bounds instead of
1264 generating them each time it is required.
1265
1266 fchkp-treat-zero-dynamic-size-as-infinite
1267 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1268 With this option zero size obtained dynamically for objects with
1269 incomplete type will be treated as infinite.
1270
1271 fchkp-check-read
1272 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1273 Generate checks for all read accesses to memory.
1274
1275 fchkp-check-write
1276 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1277 Generate checks for all write accesses to memory.
1278
1279 fchkp-store-bounds
1280 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1281 Generate bounds stores for pointer writes.
1282
1283 fchkp-instrument-calls
1284 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1285 Generate bounds passing for calls.
1286
1287 fchkp-instrument-marked-only
1288 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1289 Instrument only functions marked with bnd_instrument attribute.
1290
1291 fchkp-use-wrappers
1292 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1293 Transform instrumented builtin calls into calls to wrappers.
1294
1295 static-libmpx
1296 Driver
1297
1298 static-libmpxwrappers
1299 Driver
1300
1301 fcilkplus
1302 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1303 Enable Cilk Plus.
1304
1305 fconcepts
1306 C++ ObjC++ Var(flag_concepts)
1307 Enable support for C++ concepts.
1308
1309 fcond-mismatch
1310 C ObjC C++ ObjC++
1311 Allow the arguments of the '?' operator to have different types.
1312
1313 fconserve-space
1314 C++ ObjC++ Var(flag_conserve_space)
1315 Does nothing.  Preserved for backward compatibility.
1316
1317 fconstant-string-class=
1318 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1319 -fconst-string-class=<name>     Use class <name> for constant strings.
1320
1321 fconstexpr-depth=
1322 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1323 -fconstexpr-depth=<number>      Specify maximum constexpr recursion depth.
1324
1325 fconstexpr-loop-limit=
1326 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1327 -fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1328
1329 fdebug-cpp
1330 C ObjC C++ ObjC++
1331 Emit debug annotations during preprocessing.
1332
1333 fdeduce-init-list
1334 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1335 -fdeduce-init-list      enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
1336
1337 fdeclone-ctor-dtor
1338 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1339 Factor complex constructors and destructors to favor space over speed.
1340
1341 fdefault-inline
1342 C++ ObjC++ Ignore
1343 Does nothing.  Preserved for backward compatibility.
1344
1345 fdirectives-only
1346 C ObjC C++ ObjC++
1347 Preprocess directives only.
1348
1349 fdollars-in-identifiers
1350 C ObjC C++ ObjC++
1351 Permit '$' as an identifier character.
1352
1353 fdump-ada-spec
1354 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1355 Write all declarations as Ada code transitively.
1356
1357 fdump-ada-spec-slim
1358 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1359 Write all declarations as Ada code for the given file only.
1360
1361 felide-constructors
1362 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1363
1364 fenforce-eh-specs
1365 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1366 Generate code to check exception specifications.
1367
1368 fenum-int-equiv
1369 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1370
1371 fexec-charset=
1372 C ObjC C++ ObjC++ Joined RejectNegative
1373 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>.
1374
1375 fextended-identifiers
1376 C ObjC C++ ObjC++
1377 Permit universal character names (\\u and \\U) in identifiers.
1378
1379 finput-charset=
1380 C ObjC C++ ObjC++ Joined RejectNegative
1381 -finput-charset=<cset>  Specify the default character set for source files.
1382
1383 fextern-tls-init
1384 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1385 Support dynamic initialization of thread-local variables in a different translation unit.
1386
1387 fexternal-templates
1388 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1389
1390 ffor-scope
1391 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1392 Scope of for-init-statement variables is local to the loop.
1393
1394 ffreestanding
1395 C ObjC C++ ObjC++
1396 Do not assume that standard C libraries and \"main\" exist.
1397
1398 fgnu-keywords
1399 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1400 Recognize GNU-defined keywords.
1401
1402 fgnu-runtime
1403 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1404 Generate code for GNU runtime environment.
1405
1406 fgnu89-inline
1407 C ObjC Var(flag_gnu89_inline) Init(-1)
1408 Use traditional GNU semantics for inline functions.
1409
1410 fguiding-decls
1411 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1412
1413 fhandle-exceptions
1414 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1415
1416 fhonor-std
1417 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1418
1419 fhosted
1420 C ObjC
1421 Assume normal C execution environment.
1422
1423 fhuge-objects
1424 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1425 No longer supported.
1426
1427 fimplement-inlines
1428 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1429 Export functions even if they can be inlined.
1430
1431 fimplicit-inline-templates
1432 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1433 Emit implicit instantiations of inline templates.
1434
1435 fimplicit-templates
1436 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1437 Emit implicit instantiations of templates.
1438
1439 fnew-inheriting-ctors
1440 C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
1441 Implement C++17 inheriting constructor semantics.
1442
1443 ffriend-injection
1444 C++ ObjC++ Var(flag_friend_injection)
1445 Inject friend functions into enclosing namespace.
1446
1447 fkeep-inline-dllexport
1448 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1449 Don't emit dllexported inline functions unless needed.
1450
1451 flabels-ok
1452 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1453
1454 flax-vector-conversions
1455 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1456 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1457
1458 fms-extensions
1459 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1460 Don't warn about uses of Microsoft extensions.
1461
1462 fmudflap
1463 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1464
1465 fmudflapth
1466 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1467
1468 fmudflapir
1469 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1470
1471 fname-mangling-version-
1472 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1473
1474 fnew-abi
1475 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1476
1477 fnew-ttp-matching
1478 C++ ObjC++ Var(flag_new_ttp)
1479 Implement resolution of DR 150 for matching of template template arguments.
1480
1481 fnext-runtime
1482 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1483 Generate code for NeXT (Apple Mac OS X) runtime environment.
1484
1485 fnil-receivers
1486 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1487 Assume that receivers of Objective-C messages may be nil.
1488
1489 flocal-ivars
1490 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1491 Allow access to instance variables as if they were local declarations within instance method implementations.
1492
1493 fivar-visibility=
1494 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1495 -fvisibility=[private|protected|public|package] Set the default symbol visibility.
1496
1497 Enum
1498 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1499
1500 EnumValue
1501 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1502
1503 EnumValue
1504 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1505
1506 EnumValue
1507 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1508
1509 EnumValue
1510 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1511
1512 fnonansi-builtins
1513 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1514
1515 fnonnull-objects
1516 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1517
1518 fnothrow-opt
1519 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1520 Treat a throw() exception specification as noexcept to improve code size.
1521
1522 fobjc-abi-version=
1523 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1524 Specify which ABI to use for Objective-C family code and meta-data generation.
1525
1526 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1527 ; to initialize any non-POD ivars in Objective-C++ classes.
1528 fobjc-call-cxx-cdtors
1529 ObjC++ Var(flag_objc_call_cxx_cdtors)
1530 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
1531
1532 fobjc-direct-dispatch
1533 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1534 Allow fast jumps to the message dispatcher.
1535
1536 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1537 ; @try, etc.) in source code.
1538 fobjc-exceptions
1539 ObjC ObjC++ Var(flag_objc_exceptions)
1540 Enable Objective-C exception and synchronization syntax.
1541
1542 fobjc-gc
1543 ObjC ObjC++ LTO Var(flag_objc_gc)
1544 Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
1545
1546 fobjc-nilcheck
1547 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1548 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1549
1550 ; Nonzero means that we generate NeXT setjmp based exceptions.
1551 fobjc-sjlj-exceptions
1552 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1553 Enable Objective-C setjmp exception handling runtime.
1554
1555 fobjc-std=objc1
1556 ObjC ObjC++ Var(flag_objc1_only)
1557 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
1558
1559 fopenacc
1560 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1561 Enable OpenACC.
1562
1563 fopenacc-dim=
1564 C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1565 Specify default OpenACC compute dimensions.
1566
1567 fopenmp
1568 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1569 Enable OpenMP (implies -frecursive in Fortran).
1570
1571 fopenmp-simd
1572 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1573 Enable OpenMP's SIMD directives.
1574
1575 foperator-names
1576 C++ ObjC++
1577 Recognize C++ keywords like \"compl\" and \"xor\".
1578
1579 foptional-diags
1580 C++ ObjC++ Ignore
1581 Does nothing.  Preserved for backward compatibility.
1582
1583 fpch-deps
1584 C ObjC C++ ObjC++
1585
1586 fpch-preprocess
1587 C ObjC C++ ObjC++
1588 Look for and use PCH files even when preprocessing.
1589
1590 fpermissive
1591 C++ ObjC++ Var(flag_permissive)
1592 Downgrade conformance errors to warnings.
1593
1594 fplan9-extensions
1595 C ObjC Var(flag_plan9_extensions)
1596 Enable Plan 9 language extensions.
1597
1598 fpreprocessed
1599 C ObjC C++ ObjC++
1600 Treat the input file as already preprocessed.
1601
1602 ftrack-macro-expansion
1603 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1604 ; converted into ftrack-macro-expansion=
1605
1606 ftrack-macro-expansion=
1607 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1608 -ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages.
1609
1610 fpretty-templates
1611 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1612 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
1613
1614 fprintf-return-value
1615 C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
1616 Treat known sprintf return values as constants.
1617
1618 freplace-objc-classes
1619 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1620 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
1621
1622 frepo
1623 C++ ObjC++
1624 Enable automatic template instantiation.
1625
1626 frtti
1627 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1628 Generate run time type descriptor information.
1629
1630 fshort-enums
1631 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1632 Use the narrowest integer type possible for enumeration types.
1633
1634 fshort-wchar
1635 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1636 Force the underlying type for \"wchar_t\" to be \"unsigned short\".
1637
1638 fsigned-bitfields
1639 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1640 When \"signed\" or \"unsigned\" is not given make the bitfield signed.
1641
1642 fsigned-char
1643 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1644 Make \"char\" signed by default.
1645
1646 fsized-deallocation
1647 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1648 Enable C++14 sized deallocation support.
1649
1650 fsquangle
1651 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1652
1653 fsso-struct=
1654 C ObjC Joined RejectNegative Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1655 -fsso-struct=[big-endian|little-endian|native]  Set the default scalar storage order.
1656
1657 Enum
1658 Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1659
1660 EnumValue
1661 Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1662
1663 EnumValue
1664 Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1665
1666 EnumValue
1667 Enum(sso_struct) String(native) Value(SSO_NATIVE)
1668
1669 fstats
1670 C++ ObjC++ Var(flag_detailed_statistics)
1671 Display statistics accumulated during compilation.
1672
1673 fstrict-enums
1674 C++ ObjC++ Optimization Var(flag_strict_enums)
1675 Assume that values of enumeration type are always within the minimum range of that type.
1676
1677 fstrict-prototype
1678 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1679
1680 fstrong-eval-order
1681 C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
1682 Follow the C++17 evaluation order requirements for assignment expressions,
1683 shift, member function calls, etc.
1684
1685 fstrong-eval-order=
1686 C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) RejectNegative Init(-1)
1687 Follow the C++17 evaluation order requirements for assignment expressions,
1688 shift, member function calls, etc.
1689
1690 Enum
1691 Name(strong_eval_order) Type(int)
1692
1693 EnumValue
1694 Enum(strong_eval_order) String(none) Value(0)
1695
1696 EnumValue
1697 Enum(strong_eval_order) String(some) Value(1)
1698
1699 EnumValue
1700 Enum(strong_eval_order) String(all) Value(2)
1701
1702 ftabstop=
1703 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1704 -ftabstop=<number>      Distance between tab stops for column reporting.
1705
1706 ftemplate-backtrace-limit=
1707 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1708 Set the maximum number of template instantiation notes for a single warning or error.
1709
1710 ftemplate-depth-
1711 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1712
1713 ftemplate-depth=
1714 C++ ObjC++ Joined RejectNegative UInteger
1715 -ftemplate-depth=<number>       Specify maximum template instantiation depth.
1716
1717 fthis-is-variable
1718 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1719
1720 fthreadsafe-statics
1721 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1722 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
1723
1724 funsigned-bitfields
1725 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1726 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
1727
1728 funsigned-char
1729 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1730 Make \"char\" unsigned by default.
1731
1732 fuse-cxa-atexit
1733 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1734 Use __cxa_atexit to register destructors.
1735
1736 fuse-cxa-get-exception-ptr
1737 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1738 Use __cxa_get_exception_ptr in exception handling.
1739
1740 fvisibility-inlines-hidden
1741 C++ ObjC++
1742 Marks all inlined functions and methods as having hidden visibility.
1743
1744 fvisibility-ms-compat
1745 C++ ObjC++ Var(flag_visibility_ms_compat)
1746 Changes visibility to match Microsoft Visual Studio by default.
1747
1748 fvtable-gc
1749 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1750 No longer supported.
1751
1752 fvtable-thunks
1753 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1754 No longer supported.
1755
1756 fweak
1757 C++ ObjC++ Var(flag_weak) Init(1)
1758 Emit common-like symbols as weak symbols.
1759
1760 fwide-exec-charset=
1761 C ObjC C++ ObjC++ Joined RejectNegative
1762 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>.
1763
1764 fworking-directory
1765 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1766 Generate a #line directive pointing at the current working directory.
1767
1768 fxref
1769 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1770 No longer supported.
1771
1772 fzero-link
1773 ObjC ObjC++ Var(flag_zero_link)
1774 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
1775
1776 gen-decls
1777 ObjC ObjC++ Driver Var(flag_gen_declaration)
1778 Dump declarations to a .decl file.
1779
1780 femit-struct-debug-baseonly
1781 C ObjC C++ ObjC++
1782 -femit-struct-debug-baseonly    Aggressive reduced debug info for structs.
1783
1784 femit-struct-debug-reduced
1785 C ObjC C++ ObjC++
1786 -femit-struct-debug-reduced     Conservative reduced debug info for structs.
1787
1788 femit-struct-debug-detailed=
1789 C ObjC C++ ObjC++ Joined
1790 -femit-struct-debug-detailed=<spec-list>        Detailed reduced debug info for structs.
1791
1792 fext-numeric-literals
1793 C++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
1794 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1795 number literal rather than a user-defined number literal.
1796
1797 idirafter
1798 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1799 -idirafter <dir>        Add <dir> to the end of the system include path.
1800
1801 imacros
1802 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1803 -imacros <file> Accept definition of macros in <file>.
1804
1805 imultilib
1806 C ObjC C++ ObjC++ Joined Separate
1807 -imultilib <dir>        Set <dir> to be the multilib include subdirectory.
1808
1809 include
1810 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1811 -include <file> Include the contents of <file> before other files.
1812
1813 iprefix
1814 C ObjC C++ ObjC++ Joined Separate
1815 -iprefix <path> Specify <path> as a prefix for next two options.
1816
1817 isysroot
1818 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1819 -isysroot <dir> Set <dir> to be the system root directory.
1820
1821 isystem
1822 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1823 -isystem <dir>  Add <dir> to the start of the system include path.
1824
1825 iquote
1826 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1827 -iquote <dir>   Add <dir> to the end of the quote include path.
1828
1829 iwithprefix
1830 C ObjC C++ ObjC++ Joined Separate
1831 -iwithprefix <dir>      Add <dir> to the end of the system include path.
1832
1833 iwithprefixbefore
1834 C ObjC C++ ObjC++ Joined Separate
1835 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path.
1836
1837 lang-asm
1838 C Undocumented RejectDriver
1839
1840 no-integrated-cpp
1841 Driver
1842
1843 nostdinc
1844 C ObjC C++ ObjC++
1845 Do not search standard system include directories (those specified with -isystem will still be used).
1846
1847 nostdinc++
1848 C++ ObjC++
1849 Do not search standard system include directories for C++.
1850
1851 o
1852 C ObjC C++ ObjC++ Joined Separate
1853 ; Documented in common.opt
1854
1855 pedantic
1856 C ObjC C++ ObjC++ Alias(Wpedantic)
1857 ; Documented in common.opt
1858
1859 print-objc-runtime-info
1860 ObjC ObjC++
1861 Generate C header of platform-specific features.
1862
1863 remap
1864 C ObjC C++ ObjC++
1865 Remap file names when including files.
1866
1867 std=c++98
1868 C++ ObjC++
1869 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1870
1871 std=c++03
1872 C++ ObjC++ Alias(std=c++98)
1873 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1874
1875 std=c++11
1876 C++ ObjC++
1877 Conform to the ISO 2011 C++ standard.
1878
1879 std=c++0x
1880 C++ ObjC++ Alias(std=c++11) Undocumented
1881 Deprecated in favor of -std=c++11.
1882
1883 std=c++1y
1884 C++ ObjC++ Alias(std=c++14) Undocumented
1885 Deprecated in favor of -std=c++14.
1886
1887 std=c++14
1888 C++ ObjC++
1889 Conform to the ISO 2014 C++ standard.
1890
1891 std=c++1z
1892 C++ ObjC++
1893 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support).
1894
1895 std=c++17
1896 C++ ObjC++ Alias(std=c++1z) Undocumented
1897
1898 std=c11
1899 C ObjC
1900 Conform to the ISO 2011 C standard.
1901
1902 std=c1x
1903 C ObjC Alias(std=c11)
1904 Deprecated in favor of -std=c11.
1905
1906 std=c89
1907 C ObjC Alias(std=c90)
1908 Conform to the ISO 1990 C standard.
1909
1910 std=c90
1911 C ObjC
1912 Conform to the ISO 1990 C standard.
1913
1914 std=c99
1915 C ObjC
1916 Conform to the ISO 1999 C standard.
1917
1918 std=c9x
1919 C ObjC Alias(std=c99)
1920 Deprecated in favor of -std=c99.
1921
1922 std=gnu++98
1923 C++ ObjC++
1924 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1925 corrigendum with GNU extensions.
1926
1927 std=gnu++03
1928 C++ ObjC++ Alias(std=gnu++98)
1929 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1930 corrigendum with GNU extensions.
1931
1932 std=gnu++11
1933 C++ ObjC++
1934 Conform to the ISO 2011 C++ standard with GNU extensions.
1935
1936 std=gnu++0x
1937 C++ ObjC++ Alias(std=gnu++11) Undocumented
1938 Deprecated in favor of -std=gnu++11.
1939
1940 std=gnu++1y
1941 C++ ObjC++ Alias(std=gnu++14) Undocumented
1942 Deprecated in favor of -std=gnu++14.
1943
1944 std=gnu++14
1945 C++ ObjC++
1946 Conform to the ISO 2014 C++ standard with GNU extensions.
1947
1948 std=gnu++1z
1949 C++ ObjC++
1950 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support).
1951
1952 std=gnu++17
1953 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1954
1955 std=gnu11
1956 C ObjC
1957 Conform to the ISO 2011 C standard with GNU extensions.
1958
1959 std=gnu1x
1960 C ObjC Alias(std=gnu11)
1961 Deprecated in favor of -std=gnu11.
1962
1963 std=gnu89
1964 C ObjC Alias(std=gnu90)
1965 Conform to the ISO 1990 C standard with GNU extensions.
1966
1967 std=gnu90
1968 C ObjC
1969 Conform to the ISO 1990 C standard with GNU extensions.
1970
1971 std=gnu99
1972 C ObjC
1973 Conform to the ISO 1999 C standard with GNU extensions.
1974
1975 std=gnu9x
1976 C ObjC Alias(std=gnu99)
1977 Deprecated in favor of -std=gnu99.
1978
1979 std=iso9899:1990
1980 C ObjC Alias(std=c90)
1981 Conform to the ISO 1990 C standard.
1982
1983 std=iso9899:199409
1984 C ObjC
1985 Conform to the ISO 1990 C standard as amended in 1994.
1986
1987 std=iso9899:1999
1988 C ObjC Alias(std=c99)
1989 Conform to the ISO 1999 C standard.
1990
1991 std=iso9899:199x
1992 C ObjC Alias(std=c99)
1993 Deprecated in favor of -std=iso9899:1999.
1994
1995 std=iso9899:2011
1996 C ObjC Alias(std=c11)
1997 Conform to the ISO 2011 C standard.
1998
1999 traditional
2000 Driver
2001
2002 traditional-cpp
2003 C ObjC C++ ObjC++
2004 Enable traditional preprocessing.
2005
2006 trigraphs
2007 C ObjC C++ ObjC++
2008 -trigraphs      Support ISO C trigraphs.
2009
2010 undef
2011 C ObjC C++ ObjC++ Var(flag_undef)
2012 Do not predefine system-specific and GCC-specific macros.
2013
2014 v
2015 C ObjC C++ ObjC++
2016 ; Documented in common.opt
2017
2018 w
2019 C ObjC C++ ObjC++
2020 ; Documented in common.opt
2021
2022 ; This comment is to ensure we retain the blank line above.