PR c/64279
[official-gcc.git] / gcc / c-family / c.opt
bloba1b3ae5c0b09c95e9ba1bdd34453b7087fd32181
1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2017 Free Software Foundation, Inc.
4 ; This file is part of GCC.
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.
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.
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/>.
20 ; See the GCC internals manual for a description of this file's format.
22 ; Please try to keep this file in ASCII collating order.
24 Language
27 Language
28 ObjC
30 Language
31 C++
33 Language
34 ObjC++
36 -all-warnings
37 C ObjC C++ ObjC++ Warning Alias(Wall)
39 -ansi
40 C ObjC C++ ObjC++ Alias(ansi)
42 -assert
43 C ObjC C++ ObjC++ Separate Alias(A) MissingArgError(assertion missing after %qs)
45 -assert=
46 C ObjC C++ ObjC++ Joined Alias(A) MissingArgError(assertion missing after %qs)
48 -comments
49 C ObjC C++ ObjC++ Alias(C)
51 -comments-in-macros
52 C ObjC C++ ObjC++ Alias(CC)
54 -define-macro
55 C ObjC C++ ObjC++ Separate Alias(D) MissingArgError(macro name missing after %qs)
57 -define-macro=
58 C ObjC C++ ObjC++ Joined Alias(D) MissingArgError(macro name missing after %qs)
60 -dependencies
61 C ObjC C++ ObjC++ Alias(M)
63 -dump
64 C ObjC C++ ObjC++ Separate Alias(d)
66 -dump=
67 C ObjC C++ ObjC++ Joined Alias(d)
69 -imacros
70 C ObjC C++ ObjC++ Separate Alias(imacros) MissingArgError(missing filename after %qs)
72 -imacros=
73 C ObjC C++ ObjC++ Joined Alias(imacros) MissingArgError(missing filename after %qs)
75 -include
76 C ObjC C++ ObjC++ Separate Alias(include) MissingArgError(missing filename after %qs)
78 -include=
79 C ObjC C++ ObjC++ Joined Alias(include) MissingArgError(missing filename after %qs)
81 -include-barrier
82 C ObjC C++ ObjC++ Alias(I, -)
84 -include-directory
85 C ObjC C++ ObjC++ Separate Alias(I) MissingArgError(missing path after %qs)
87 -include-directory=
88 C ObjC C++ ObjC++ Joined Alias(I) MissingArgError(missing path after %qs)
90 -include-directory-after
91 C ObjC C++ ObjC++ Separate Alias(idirafter) MissingArgError(missing path after %qs)
93 -include-directory-after=
94 C ObjC C++ ObjC++ Joined Alias(idirafter) MissingArgError(missing path after %qs)
96 -include-prefix
97 C ObjC C++ ObjC++ Separate Alias(iprefix)
99 -include-prefix=
100 C ObjC C++ ObjC++ JoinedOrMissing Alias(iprefix)
102 -include-with-prefix
103 C ObjC C++ ObjC++ Separate Alias(iwithprefix)
105 -include-with-prefix=
106 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
108 -include-with-prefix-after
109 C ObjC C++ ObjC++ Separate Alias(iwithprefix)
111 -include-with-prefix-after=
112 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
114 -include-with-prefix-before
115 C ObjC C++ ObjC++ Separate Alias(iwithprefixbefore)
117 -include-with-prefix-before=
118 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefixbefore)
120 -no-integrated-cpp
121 Driver Alias(no-integrated-cpp)
123 -no-line-commands
124 C ObjC C++ ObjC++ Alias(P)
126 -no-standard-includes
127 C ObjC C++ ObjC++ Alias(nostdinc)
129 -no-warnings
130 C ObjC C++ ObjC++ Alias(w)
132 -output
133 C ObjC C++ ObjC++ Separate Alias(o)
135 -output=
136 C ObjC C++ ObjC++ Joined Alias(o)
138 -output-pch=
139 C ObjC C++ ObjC++ Joined Separate
141 -pedantic
142 C ObjC C++ ObjC++ Alias(pedantic)
144 -preprocess
145 C ObjC C++ ObjC++ Undocumented Alias(E)
147 -print-missing-file-dependencies
148 C ObjC C++ ObjC++ Alias(MG)
150 -trace-includes
151 C ObjC C++ ObjC++ Alias(H)
153 -traditional
154 Driver Alias(traditional)
156 -traditional-cpp
157 C ObjC C++ ObjC++ Alias(traditional-cpp)
159 -trigraphs
160 C ObjC C++ ObjC++ Alias(trigraphs)
162 -undefine-macro
163 C ObjC C++ ObjC++ Separate Alias(U) MissingArgError(macro name missing after %qs)
165 -undefine-macro=
166 C ObjC C++ ObjC++ Joined Alias(U) MissingArgError(macro name missing after %qs)
168 -user-dependencies
169 C ObjC C++ ObjC++ Alias(MM)
171 -verbose
172 Common C ObjC C++ ObjC++ Alias(v)
174 -write-dependencies
175 C ObjC C++ ObjC++ NoDriverArg Separate Alias(MD) MissingArgError(missing filename after %qs)
177 -write-user-dependencies
178 C ObjC C++ ObjC++ NoDriverArg Separate Alias(MMD) MissingArgError(missing filename after %qs)
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>.
185 C ObjC C++ ObjC++
186 Do not discard comments.
189 C ObjC C++ ObjC++
190 Do not discard comments in macro expansions.
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.
197 C ObjC C++ ObjC++ Undocumented Var(flag_preprocess_only)
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.
203 fgimple
204 C Var(flag_gimple) Init(0)
205 Enable parsing GIMPLE.
208 C ObjC C++ ObjC++
209 Print the name of header files as they are used.
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.
216 C ObjC C++ ObjC++
217 Generate make dependencies.
220 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
221 Generate make dependencies and compile.
224 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
225 -MF <file>      Write dependency output to the given file.
228 C ObjC C++ ObjC++
229 Treat missing header files as generated files.
232 C ObjC C++ ObjC++
233 Like -M but ignore system header files.
236 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
237 Like -MD but ignore system header files.
240 C ObjC C++ ObjC++
241 Generate phony targets for all headers.
244 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
245 -MQ <target>    Add a MAKE-quoted target.
248 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
249 -MT <target>    Add an unquoted target.
252 C ObjC C++ ObjC++
253 Do not generate #line directives.
256 C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
257 -U<macro>       Undefine <macro>.
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.
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.
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.
271 Wpsabi
272 C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Warning Undocumented LangEnabledBy(C ObjC C++ ObjC++,Wabi)
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.
278 Enum
279 Name(warn_aligned_new_level) Type(int) UnknownError(argument %qs to %<-Waligned-new%> not recognized)
281 EnumValue
282 Enum(warn_aligned_new_level) String(none) Value(0)
284 EnumValue
285 Enum(warn_aligned_new_level) String(global) Value(1)
287 EnumValue
288 Enum(warn_aligned_new_level) String(all) Value(2)
290 Waligned-new
291 C++ ObjC++ Alias(Waligned-new=,global,none)
292 Warn about 'new' of type with extended alignment without -faligned-new.
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=all Warn even if 'new' uses a class member allocation function.
298 Wall
299 C ObjC C++ ObjC++ Warning
300 Enable most warning messages.
302 Walloca
303 C ObjC C++ ObjC++ Var(warn_alloca) Warning
304 Warn on any use of alloca.
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.
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.
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.
321 Warray-bounds
322 LangEnabledBy(C ObjC C++ ObjC++,Wall)
323 ; in common.opt
325 Warray-bounds=
326 LangEnabledBy(C ObjC C++ ObjC++,Wall,1,0)
327 ; in common.opt
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.
333 Wbad-function-cast
334 C ObjC Var(warn_bad_function_cast) Warning
335 Warn about casting functions to incompatible types.
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.
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.
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.
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.
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.
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.
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.
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++.
369 Wc++0x-compat
370 C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
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.
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.
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?).
384 Wc++17-compat
385 C++ ObjC++ Warning Alias(Wc++1z-compat) Undocumented
387 Wcast-qual
388 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
389 Warn about casts which discard qualifiers.
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\".
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.
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\".
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.
407 Wcomments
408 C ObjC C++ ObjC++ Warning Alias(Wcomment)
409 Synonym for -Wcomment.
411 Wconditionally-supported
412 C++ ObjC++ Var(warn_conditionally_supported) Warning
413 Warn for conditionally-supported constructs.
415 Wconversion
416 C ObjC C++ ObjC++ Var(warn_conversion) Warning
417 Warn for implicit type conversions that may change a value.
419 Wconversion-null
420 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
421 Warn for converting NULL from/to a non-pointer type.
423 Wcpp
424 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
425 ; Documented in common.opt
427 Wctor-dtor-privacy
428 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
429 Warn when all constructors and destructors are private.
431 Wdangling-else
432 C ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
433 Warn about dangling else.
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.
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.
443 Wdelete-incomplete
444 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
445 Warn when deleting a pointer to incomplete type.
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.
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.
455 Wdesignated-init
456 C ObjC Var(warn_designated_init) Init(1) Warning
457 Warn about positional initialization of structs requiring designated initializers.
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.
463 Wdiscarded-qualifiers
464 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
465 Warn if type qualifiers on pointers are discarded.
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.
471 Wduplicated-branches
472 C ObjC C++ ObjC++ Var(warn_duplicated_branches) Init(0) Warning
473 Warn about duplicated branches in if-else statements.
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.
479 Weffc++
480 C++ ObjC++ Var(warn_ecpp) Warning
481 Warn about violations of Effective C++ style rules.
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.
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 #elif and #endif.
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.
495 Werror
496 C ObjC C++ ObjC++
497 ; Documented in common.opt
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.
503 Wextra
504 C ObjC C++ ObjC++ Warning
505 ; in common.opt
507 Wfloat-conversion
508 C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
509 Warn for implicit type conversions that cause loss of floating point precision.
511 Wfloat-equal
512 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
513 Warn if testing floating point numbers for equality.
515 Wformat
516 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
517 Warn about printf/scanf/strftime/strfmon format string anomalies.
519 Wformat-contains-nul
520 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
521 Warn about format strings that contain NUL bytes.
523 Wformat-extra-args
524 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
525 Warn if passing too many arguments to a function for its format string.
527 Wformat-nonliteral
528 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
529 Warn about format strings that are not literals.
531 Wformat-overflow
532 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-overflow=, 1, 0)
533 Warn about function calls with format strings that write past the end
534 of the destination region.  Same as -Wformat-overflow=1.
536 Wformat-security
537 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
538 Warn about possible security problems with format functions.
540 Wformat-signedness
541 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
542 Warn about sign differences with format functions.
544 Wformat-truncation
545 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-truncation=, 1, 0)
546 Warn about calls to snprintf and similar functions that truncate output.
547 Same as -Wformat-truncation=1.
549 Wformat-y2k
550 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
551 Warn about strftime formats yielding 2-digit years.
553 Wformat-zero-length
554 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
555 Warn about zero-length formats.
557 Wformat=
558 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
559 Warn about printf/scanf/strftime/strfmon format string anomalies.
561 Wformat-overflow=
562 C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_overflow) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
563 Warn about function calls with format strings that write past the end
564 of the destination region.
566 Wformat-truncation=
567 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format_trunc) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
568 Warn about calls to snprintf and similar functions that truncate output.
570 Wignored-qualifiers
571 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
572 Warn whenever type qualifiers are ignored.
574 Wignored-attributes
575 C C++ Var(warn_ignored_attributes) Init(1) Warning
576 Warn whenever attributes are ignored.
578 Wincompatible-pointer-types
579 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
580 Warn when there is a conversion between pointers that have incompatible types.
582 Winit-self
583 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
584 Warn about variables which are initialized to themselves.
586 Wimplicit
587 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
588 Warn about implicit declarations.
590 Wimplicit-fallthrough=
591 LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
592 ; in common.opt
594 Wdouble-promotion
595 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
596 Warn about implicit conversions from \"float\" to \"double\".
598 Wexpansion-to-defined
599 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)
600 Warn if \"defined\" is used outside #if.
602 Wimplicit-function-declaration
603 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
604 Warn about implicit function declarations.
606 Wimplicit-int
607 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
608 Warn when a declaration does not specify a type.
610 Wimport
611 C ObjC C++ ObjC++ Undocumented Ignore
613 Winherited-variadic-ctor
614 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
615 Warn about C++11 inheriting constructors when the base has a variadic constructor.
617 Wint-conversion
618 C ObjC Var(warn_int_conversion) Init(1) Warning
619 Warn about incompatible integer to pointer and pointer to integer conversions.
621 Wint-in-bool-context
622 C ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
623 Warn for suspicious integer expressions in boolean context.
625 Wint-to-pointer-cast
626 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
627 Warn when there is a cast to a pointer from an integer of a different size.
629 Winvalid-offsetof
630 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
631 Warn about invalid uses of the \"offsetof\" macro.
633 Winvalid-pch
634 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
635 Warn about PCH files that are found but not used.
637 Wjump-misses-init
638 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
639 Warn when a jump misses a variable initialization.
641 Wliteral-suffix
642 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
643 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
645 Wlogical-op
646 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
647 Warn when a logical operator is suspiciously always evaluating to true or false.
649 Wlogical-not-parentheses
650 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
651 Warn when logical not is used on the left hand side operand of a comparison.
653 Wlong-long
654 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)
655 Do not warn about using \"long long\" when -pedantic.
657 Wmain
658 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
659 Warn about suspicious declarations of \"main\".
661 Wmain
662 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
665 Wmemset-transposed-args
666 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
667 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
669 Wmemset-elt-size
670 C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
671 Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
673 Wmisleading-indentation
674 C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
675 Warn when the indentation of the code does not reflect the block structure.
677 Wmissing-braces
678 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
679 Warn about possibly missing braces around initializers.
681 Wmissing-declarations
682 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
683 Warn about global functions without previous declarations.
685 Wmissing-field-initializers
686 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
687 Warn about missing fields in struct initializers.
689 Wmultiple-inheritance
690 C++ ObjC++ Var(warn_multiple_inheritance) Warning
691 Warn on direct multiple inheritance.
693 Wnamespaces
694 C++ ObjC++ Var(warn_namespaces) Warning
695 Warn on namespace definition.
697 Wsized-deallocation
698 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
699 Warn about missing sized deallocation functions.
701 Wsizeof-pointer-memaccess
702 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
703 Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
705 Wsizeof-array-argument
706 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
707 Warn when sizeof is applied on a parameter declared as an array.
709 Wstringop-overflow
710 C ObjC C++ ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
711 Warn about buffer overflow in string manipulation functions like memcpy
712 and strcpy.
714 Wstringop-overflow=
715 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning
716 Under the control of Object Size type, warn about buffer overflow in string
717 manipulation functions like memcpy and strcpy.
719 Wsuggest-attribute=format
720 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
721 Warn about functions which might be candidates for format attributes.
723 Wsuggest-override
724 C++ ObjC++ Var(warn_override) Warning
725 Suggest that the override keyword be used when the declaration of a virtual
726 function overrides another.
728 Wswitch
729 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
730 Warn about enumerated switches, with no default, missing a case.
732 Wswitch-default
733 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
734 Warn about enumerated switches missing a \"default:\" statement.
736 Wswitch-enum
737 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
738 Warn about all enumerated switches missing a specific case.
740 Wswitch-bool
741 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
742 Warn about switches with boolean controlling expression.
744 Wtemplates
745 C++ ObjC++ Var(warn_templates) Warning
746 Warn on primary template declaration.
748 Wmissing-format-attribute
749 C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
752 Wmissing-include-dirs
753 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
754 Warn about user-specified include directories that do not exist.
756 Wmissing-parameter-type
757 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
758 Warn about function parameters declared without a type specifier in K&R-style functions.
760 Wmissing-prototypes
761 C ObjC Var(warn_missing_prototypes) Warning
762 Warn about global functions without prototypes.
764 Wmudflap
765 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
767 Wmultichar
768 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
769 Warn about use of multi-character character constants.
771 Wnarrowing
772 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
773 Warn about narrowing conversions within { } that are ill-formed in C++11.
775 Wnested-externs
776 C ObjC Var(warn_nested_externs) Warning
777 Warn about \"extern\" declarations not at file scope.
779 Wnoexcept
780 C++ ObjC++ Var(warn_noexcept) Warning
781 Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
783 Wnon-template-friend
784 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
785 Warn when non-templatized friend functions are declared within a template.
787 Wnon-virtual-dtor
788 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
789 Warn about non-virtual destructors.
791 Wnonnull
792 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
793 Warn about NULL being passed to argument slots marked as requiring non-NULL.
795 Wnonnull
796 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
799 Wnonnull-compare
800 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
803 Wnormalized
804 C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
807 Wnormalized=
808 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)
809 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalized Unicode strings.
811 ; Required for these enum values.
812 SourceInclude
813 cpplib.h
815 Enum
816 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
818 EnumValue
819 Enum(cpp_normalize_level) String(none) Value(normalized_none)
821 EnumValue
822 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
824 EnumValue
825 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
827 EnumValue
828 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
830 Wold-style-cast
831 C++ ObjC++ Var(warn_old_style_cast) Warning
832 Warn if a C-style cast is used in a program.
834 Wold-style-declaration
835 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
836 Warn for obsolescent usage in a declaration.
838 Wold-style-definition
839 C ObjC Var(warn_old_style_definition) Warning
840 Warn if an old-style parameter definition is used.
842 Wopenmp-simd
843 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
844 Warn if a simd directive is overridden by the vectorizer cost model.
846 Woverlength-strings
847 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
848 Warn if a string is longer than the maximum portable length specified by the standard.
850 Woverloaded-virtual
851 C++ ObjC++ Var(warn_overloaded_virtual) Warning
852 Warn about overloaded virtual function names.
854 Woverride-init
855 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
856 Warn about overriding initializers without side effects.
858 Woverride-init-side-effects
859 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
860 Warn about overriding initializers with side effects.
862 Wpacked-bitfield-compat
863 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
864 Warn about packed bit-fields whose offset changed in GCC 4.4.
866 Wparentheses
867 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
868 Warn about possibly missing parentheses.
870 Wpedantic
871 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
872 ; Documented in common.opt
874 Wpmf-conversions
875 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
876 Warn when converting the type of pointers to member functions.
878 Wpointer-arith
879 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
880 Warn about function pointer arithmetic.
882 Wpointer-sign
883 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
884 Warn when a pointer differs in signedness in an assignment.
886 Wpointer-compare
887 C ObjC C++ ObjC++ Var(warn_pointer_compare) Init(1) Warning
888 Warn when a pointer is compared with a zero character constant.
890 Wpointer-to-int-cast
891 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
892 Warn when a pointer is cast to an integer of a different size.
894 Wpragmas
895 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
896 Warn about misuses of pragmas.
898 Wproperty-assign-default
899 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
900 Warn if a property for an Objective-C object has no assign semantics specified.
902 Wprotocol
903 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
904 Warn if inherited methods are unimplemented.
906 Wplacement-new
907 C++ Warning Alias(Wplacement-new=, 1, 0)
908 Warn for placement new expressions with undefined behavior.
910 Wplacement-new=
911 C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning
912 Warn for placement new expressions with undefined behavior.
914 Wredundant-decls
915 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
916 Warn about multiple declarations of the same object.
918 Wregister
919 C++ ObjC++ Var(warn_register) Warning
920 Warn about uses of register storage specifier.
922 Wreorder
923 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
924 Warn when the compiler reorders code.
926 Wreturn-type
927 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
928 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
930 Wscalar-storage-order
931 C ObjC C++ ObjC++ Init(1) Warning
932 Warn on suspicious constructs involving reverse scalar storage order.
934 Wselector
935 ObjC ObjC++ Var(warn_selector) Warning
936 Warn if a selector has multiple methods.
938 Wsequence-point
939 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
940 Warn about possible violations of sequence point rules.
942 Wshadow-ivar
943 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
944 Warn if a local declaration hides an instance variable.
946 Wshift-overflow
947 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
948 Warn if left shift of a signed value overflows.
950 Wshift-overflow=
951 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning
952 Warn if left shift of a signed value overflows.
954 Wshift-count-negative
955 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
956 Warn if shift count is negative.
958 Wshift-count-overflow
959 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
960 Warn if shift count >= width of type.
962 Wshift-negative-value
963 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
964 Warn if left shifting a negative value.
966 Wsign-compare
967 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
968 Warn about signed-unsigned comparisons.
970 Wsign-compare
971 C ObjC C++ ObjC++ EnabledBy(Wextra)
974 Wsign-conversion
975 C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
976 Warn for implicit type conversions between signed and unsigned integers.
978 Wsign-promo
979 C++ ObjC++ Var(warn_sign_promo) Warning
980 Warn when overload promotes from unsigned to signed.
982 Wstrict-null-sentinel
983 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
984 Warn about uncasted NULL used as sentinel.
986 Wstrict-prototypes
987 C ObjC Var(warn_strict_prototypes) Warning
988 Warn about unprototyped function declarations.
990 Wstrict-aliasing=
991 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
994 Wstrict-overflow=
995 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
998 Wstrict-selector-match
999 ObjC ObjC++ Var(warn_strict_selector_match) Warning
1000 Warn if type signatures of candidate methods do not match exactly.
1002 Wsync-nand
1003 C C++ Var(warn_sync_nand) Init(1) Warning
1004 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
1006 Wsynth
1007 C++ ObjC++ Var(warn_synth) Warning
1008 Deprecated.  This switch has no effect.
1010 Wsystem-headers
1011 C ObjC C++ ObjC++ Warning
1012 ; Documented in common.opt
1014 Wtautological-compare
1015 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1016 Warn if a comparison always evaluates to true or false.
1018 Wterminate
1019 C++ ObjC++ Warning Var(warn_terminate) Init(1)
1020 Warn if a throw expression will always result in a call to terminate().
1022 Wtraditional
1023 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
1024 Warn about features not present in traditional C.
1026 Wtraditional-conversion
1027 C ObjC Var(warn_traditional_conversion) Warning
1028 Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
1030 Wtrigraphs
1031 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1032 Warn if trigraphs are encountered that might affect the meaning of the program.
1034 Wundeclared-selector
1035 ObjC ObjC++ Var(warn_undeclared_selector) Warning
1036 Warn about @selector()s without previously declared methods.
1038 Wundef
1039 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
1040 Warn if an undefined macro is used in an #if directive.
1042 Wuninitialized
1043 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1046 Wmaybe-uninitialized
1047 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1050 Wunknown-pragmas
1051 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
1052 Warn about unrecognized pragmas.
1054 Wunsuffixed-float-constants
1055 C ObjC Var(warn_unsuffixed_float_constants) Warning
1056 Warn about unsuffixed float constants.
1058 Wunused
1059 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1060 ; documented in common.opt
1062 Wunused-local-typedefs
1063 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
1064 Warn when typedefs locally defined in a function are not used.
1066 Wunused-macros
1067 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
1068 Warn about macros defined in the main file that are not used.
1070 Wunused-result
1071 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
1072 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
1074 Wunused-variable
1075 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
1076 ; documented in common.opt
1078 Wunused-const-variable
1079 C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
1080 Warn when a const variable is unused.
1082 Wunused-const-variable=
1083 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0)
1084 Warn when a const variable is unused.
1086 Wvariadic-macros
1087 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)
1088 Warn about using variadic macros.
1090 Wvarargs
1091 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
1092 Warn about questionable usage of the macros used to retrieve variable arguments.
1094 Wvla
1095 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
1096 Warn if a variable length array is used.
1098 Wvla-larger-than=
1099 C ObjC C++ ObjC++ Var(warn_vla_limit) Warning Joined RejectNegative UInteger
1100 -Wvla-larger-than=<number> Warn on unbounded uses of variable-length arrays, and
1101 on bounded uses of variable-length arrays whose bound can be
1102 larger than <number> bytes.
1104 Wvolatile-register-var
1105 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1106 Warn when a register variable is declared volatile.
1108 Wvirtual-inheritance
1109 C++ ObjC++ Var(warn_virtual_inheritance) Warning
1110 Warn on direct virtual inheritance.
1112 Wvirtual-move-assign
1113 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
1114 Warn if a virtual base has a non-trivial move assignment operator.
1116 Wwrite-strings
1117 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
1118 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.
1120 Wzero-as-null-pointer-constant
1121 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
1122 Warn when a literal '0' is used as null pointer.
1124 Wuseless-cast
1125 C++ ObjC++ Var(warn_useless_cast) Warning
1126 Warn about useless casts.
1128 Wsubobject-linkage
1129 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
1130 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.
1132 Wduplicate-decl-specifier
1133 C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1134 Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1136 Wrestrict
1137 C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++)
1138 Warn when an argument passed to a restrict-qualified parameter aliases with
1139 another argument.
1141 ansi
1142 C ObjC C++ ObjC++
1143 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
1146 C ObjC C++ ObjC++ Joined
1147 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
1149 fabi-compat-version=
1150 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
1151 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
1153 faccess-control
1154 C++ ObjC++ Var(flag_access_control) Init(1)
1155 Enforce class member access control semantics.
1157 fada-spec-parent=
1158 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
1159 -fada-spec-parent=unit  Dump Ada specs as child units of given parent.
1161 faligned-new
1162 C++ ObjC++ Alias(faligned-new=,1,0)
1163 Support C++17 allocation of over-aligned types.
1165 faligned-new=
1166 C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
1167 -faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
1169 fall-virtual
1170 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1172 fallow-parameterless-variadic-functions
1173 C ObjC Var(flag_allow_parameterless_variadic_functions)
1174 Allow variadic functions without named parameter.
1176 falt-external-templates
1177 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1178 No longer supported.
1180 fasm
1181 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1182 Recognize the \"asm\" keyword.
1184 ; Define extra predefined macros for use in libgcc.
1185 fbuilding-libgcc
1186 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1188 fbuiltin
1189 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1190 Recognize built-in functions.
1192 fbuiltin-
1193 C ObjC C++ ObjC++ Joined
1195 fcanonical-system-headers
1196 C ObjC C++ ObjC++
1197 Where shorter, use canonicalized paths to systems headers.
1199 fcheck-pointer-bounds
1200 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
1201 Add Pointer Bounds Checker instrumentation.  fchkp-* flags are used to
1202 control instrumentation.  Currently available for C, C++ and ObjC.
1204 fchkp-check-incomplete-type
1205 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
1206 Generate pointer bounds checks for variables with incomplete type.
1208 fchkp-zero-input-bounds-for-main
1209 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
1210 Use zero bounds for all incoming arguments in 'main' function.  It helps when
1211 instrumented binaries are used with legacy libs.
1213 fchkp-first-field-has-own-bounds
1214 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
1215 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1216 field in the structure.  By default pointer to the first field has the same
1217 bounds as pointer to the whole structure.
1219 fchkp-narrow-bounds
1220 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
1221 Control how Pointer Bounds Checker handle pointers to object fields.  When
1222 narrowing is on, field bounds are used.  Otherwise full object bounds are used.
1224 fchkp-narrow-to-innermost-array
1225 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1226 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1227 nested static arrays access.  By default outermost array is used.
1229 fchkp-flexible-struct-trailing-arrays
1230 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_flexible_struct_trailing_arrays)
1231 Forces Pointer Bounds Checker to treat all trailing arrays in structures as
1232 possibly flexible.  By default only arrays fields with zero length or that are
1233 marked with attribute bnd_variable_size are treated as flexible.
1235 fchkp-optimize
1236 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1237 Allow Pointer Bounds Checker optimizations.  By default allowed
1238 on optimization levels >0.
1240 fchkp-use-fast-string-functions
1241 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1242 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1244 fchkp-use-nochk-string-functions
1245 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1246 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1248 fchkp-use-static-bounds
1249 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1250 Use statically initialized variable for vars bounds instead of
1251 generating them each time it is required.
1253 fchkp-use-static-const-bounds
1254 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1255 Use statically initialized variable for constant bounds instead of
1256 generating them each time it is required.
1258 fchkp-treat-zero-dynamic-size-as-infinite
1259 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1260 With this option zero size obtained dynamically for objects with
1261 incomplete type will be treated as infinite.
1263 fchkp-check-read
1264 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1265 Generate checks for all read accesses to memory.
1267 fchkp-check-write
1268 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1269 Generate checks for all write accesses to memory.
1271 fchkp-store-bounds
1272 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1273 Generate bounds stores for pointer writes.
1275 fchkp-instrument-calls
1276 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1277 Generate bounds passing for calls.
1279 fchkp-instrument-marked-only
1280 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1281 Instrument only functions marked with bnd_instrument attribute.
1283 fchkp-use-wrappers
1284 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1285 Transform instrumented builtin calls into calls to wrappers.
1287 static-libmpx
1288 Driver
1290 static-libmpxwrappers
1291 Driver
1293 fcilkplus
1294 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1295 Enable Cilk Plus.
1297 fconcepts
1298 C++ ObjC++ Var(flag_concepts)
1299 Enable support for C++ concepts.
1301 fcond-mismatch
1302 C ObjC C++ ObjC++
1303 Allow the arguments of the '?' operator to have different types.
1305 fconserve-space
1306 C++ ObjC++ Var(flag_conserve_space)
1307 Does nothing.  Preserved for backward compatibility.
1309 fconstant-string-class=
1310 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1311 -fconst-string-class=<name>     Use class <name> for constant strings.
1313 fconstexpr-depth=
1314 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1315 -fconstexpr-depth=<number>      Specify maximum constexpr recursion depth.
1317 fconstexpr-loop-limit=
1318 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1319 -fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1321 fdebug-cpp
1322 C ObjC C++ ObjC++
1323 Emit debug annotations during preprocessing.
1325 fdeduce-init-list
1326 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1327 -fdeduce-init-list      enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
1329 fdeclone-ctor-dtor
1330 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1331 Factor complex constructors and destructors to favor space over speed.
1333 fdefault-inline
1334 C++ ObjC++ Ignore
1335 Does nothing.  Preserved for backward compatibility.
1337 fdirectives-only
1338 C ObjC C++ ObjC++
1339 Preprocess directives only.
1341 fdollars-in-identifiers
1342 C ObjC C++ ObjC++
1343 Permit '$' as an identifier character.
1345 fdump-ada-spec
1346 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1347 Write all declarations as Ada code transitively.
1349 fdump-ada-spec-slim
1350 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1351 Write all declarations as Ada code for the given file only.
1353 felide-constructors
1354 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1356 fenforce-eh-specs
1357 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1358 Generate code to check exception specifications.
1360 fenum-int-equiv
1361 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1363 fexec-charset=
1364 C ObjC C++ ObjC++ Joined RejectNegative
1365 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>.
1367 fextended-identifiers
1368 C ObjC C++ ObjC++
1369 Permit universal character names (\\u and \\U) in identifiers.
1371 finput-charset=
1372 C ObjC C++ ObjC++ Joined RejectNegative
1373 -finput-charset=<cset>  Specify the default character set for source files.
1375 fextern-tls-init
1376 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1377 Support dynamic initialization of thread-local variables in a different translation unit.
1379 fexternal-templates
1380 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1382 ffor-scope
1383 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1384 Scope of for-init-statement variables is local to the loop.
1386 ffreestanding
1387 C ObjC C++ ObjC++
1388 Do not assume that standard C libraries and \"main\" exist.
1390 fgnu-keywords
1391 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1392 Recognize GNU-defined keywords.
1394 fgnu-runtime
1395 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1396 Generate code for GNU runtime environment.
1398 fgnu89-inline
1399 C ObjC Var(flag_gnu89_inline) Init(-1)
1400 Use traditional GNU semantics for inline functions.
1402 fguiding-decls
1403 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1405 fhandle-exceptions
1406 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1408 fhonor-std
1409 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1411 fhosted
1412 C ObjC
1413 Assume normal C execution environment.
1415 fhuge-objects
1416 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1417 No longer supported.
1419 fimplement-inlines
1420 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1421 Export functions even if they can be inlined.
1423 fimplicit-inline-templates
1424 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1425 Emit implicit instantiations of inline templates.
1427 fimplicit-templates
1428 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1429 Emit implicit instantiations of templates.
1431 fnew-inheriting-ctors
1432 C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
1433 Implement C++17 inheriting constructor semantics.
1435 ffriend-injection
1436 C++ ObjC++ Var(flag_friend_injection)
1437 Inject friend functions into enclosing namespace.
1439 fkeep-inline-dllexport
1440 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1441 Don't emit dllexported inline functions unless needed.
1443 flabels-ok
1444 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1446 flax-vector-conversions
1447 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1448 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1450 fms-extensions
1451 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1452 Don't warn about uses of Microsoft extensions.
1454 fmudflap
1455 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1457 fmudflapth
1458 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1460 fmudflapir
1461 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1463 fname-mangling-version-
1464 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1466 fnew-abi
1467 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1469 fnew-ttp-matching
1470 C++ ObjC++ Var(flag_new_ttp)
1471 Implement resolution of DR 150 for matching of template template arguments.
1473 fnext-runtime
1474 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1475 Generate code for NeXT (Apple Mac OS X) runtime environment.
1477 fnil-receivers
1478 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1479 Assume that receivers of Objective-C messages may be nil.
1481 flocal-ivars
1482 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1483 Allow access to instance variables as if they were local declarations within instance method implementations.
1485 fivar-visibility=
1486 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1487 -fvisibility=[private|protected|public|package] Set the default symbol visibility.
1489 Enum
1490 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1492 EnumValue
1493 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1495 EnumValue
1496 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1498 EnumValue
1499 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1501 EnumValue
1502 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1504 fnonansi-builtins
1505 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1507 fnonnull-objects
1508 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1510 fnothrow-opt
1511 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1512 Treat a throw() exception specification as noexcept to improve code size.
1514 fobjc-abi-version=
1515 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1516 Specify which ABI to use for Objective-C family code and meta-data generation.
1518 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1519 ; to initialize any non-POD ivars in Objective-C++ classes.
1520 fobjc-call-cxx-cdtors
1521 ObjC++ Var(flag_objc_call_cxx_cdtors)
1522 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
1524 fobjc-direct-dispatch
1525 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1526 Allow fast jumps to the message dispatcher.
1528 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1529 ; @try, etc.) in source code.
1530 fobjc-exceptions
1531 ObjC ObjC++ Var(flag_objc_exceptions)
1532 Enable Objective-C exception and synchronization syntax.
1534 fobjc-gc
1535 ObjC ObjC++ LTO Var(flag_objc_gc)
1536 Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
1538 fobjc-nilcheck
1539 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1540 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1542 ; Nonzero means that we generate NeXT setjmp based exceptions.
1543 fobjc-sjlj-exceptions
1544 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1545 Enable Objective-C setjmp exception handling runtime.
1547 fobjc-std=objc1
1548 ObjC ObjC++ Var(flag_objc1_only)
1549 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
1551 fopenacc
1552 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1553 Enable OpenACC.
1555 fopenacc-dim=
1556 C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1557 Specify default OpenACC compute dimensions.
1559 fopenmp
1560 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1561 Enable OpenMP (implies -frecursive in Fortran).
1563 fopenmp-simd
1564 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1565 Enable OpenMP's SIMD directives.
1567 foperator-names
1568 C++ ObjC++
1569 Recognize C++ keywords like \"compl\" and \"xor\".
1571 foptional-diags
1572 C++ ObjC++ Ignore
1573 Does nothing.  Preserved for backward compatibility.
1575 fpch-deps
1576 C ObjC C++ ObjC++
1578 fpch-preprocess
1579 C ObjC C++ ObjC++
1580 Look for and use PCH files even when preprocessing.
1582 fpermissive
1583 C++ ObjC++ Var(flag_permissive)
1584 Downgrade conformance errors to warnings.
1586 fplan9-extensions
1587 C ObjC Var(flag_plan9_extensions)
1588 Enable Plan 9 language extensions.
1590 fpreprocessed
1591 C ObjC C++ ObjC++
1592 Treat the input file as already preprocessed.
1594 ftrack-macro-expansion
1595 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1596 ; converted into ftrack-macro-expansion=
1598 ftrack-macro-expansion=
1599 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1600 -ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages.
1602 fpretty-templates
1603 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1604 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
1606 fprintf-return-value
1607 C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
1608 Treat known sprintf return values as constants.
1610 freplace-objc-classes
1611 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1612 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
1614 frepo
1615 C++ ObjC++
1616 Enable automatic template instantiation.
1618 frtti
1619 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1620 Generate run time type descriptor information.
1622 fshort-enums
1623 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1624 Use the narrowest integer type possible for enumeration types.
1626 fshort-wchar
1627 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1628 Force the underlying type for \"wchar_t\" to be \"unsigned short\".
1630 fsigned-bitfields
1631 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1632 When \"signed\" or \"unsigned\" is not given make the bitfield signed.
1634 fsigned-char
1635 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1636 Make \"char\" signed by default.
1638 fsized-deallocation
1639 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1640 Enable C++14 sized deallocation support.
1642 fsquangle
1643 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1645 fsso-struct=
1646 C ObjC Joined RejectNegative Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1647 -fsso-struct=[big-endian|little-endian|native]  Set the default scalar storage order.
1649 Enum
1650 Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1652 EnumValue
1653 Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1655 EnumValue
1656 Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1658 EnumValue
1659 Enum(sso_struct) String(native) Value(SSO_NATIVE)
1661 fstats
1662 C++ ObjC++ Var(flag_detailed_statistics)
1663 Display statistics accumulated during compilation.
1665 fstrict-enums
1666 C++ ObjC++ Optimization Var(flag_strict_enums)
1667 Assume that values of enumeration type are always within the minimum range of that type.
1669 fstrict-prototype
1670 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1672 fstrong-eval-order
1673 C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
1674 Follow the C++17 evaluation order requirements for assignment expressions,
1675 shift, member function calls, etc.
1677 fstrong-eval-order=
1678 C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) RejectNegative Init(-1)
1679 Follow the C++17 evaluation order requirements for assignment expressions,
1680 shift, member function calls, etc.
1682 Enum
1683 Name(strong_eval_order) Type(int)
1685 EnumValue
1686 Enum(strong_eval_order) String(none) Value(0)
1688 EnumValue
1689 Enum(strong_eval_order) String(some) Value(1)
1691 EnumValue
1692 Enum(strong_eval_order) String(all) Value(2)
1694 ftabstop=
1695 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1696 -ftabstop=<number>      Distance between tab stops for column reporting.
1698 ftemplate-backtrace-limit=
1699 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1700 Set the maximum number of template instantiation notes for a single warning or error.
1702 ftemplate-depth-
1703 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1705 ftemplate-depth=
1706 C++ ObjC++ Joined RejectNegative UInteger
1707 -ftemplate-depth=<number>       Specify maximum template instantiation depth.
1709 fthis-is-variable
1710 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1712 fthreadsafe-statics
1713 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1714 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
1716 funsigned-bitfields
1717 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1718 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
1720 funsigned-char
1721 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1722 Make \"char\" unsigned by default.
1724 fuse-cxa-atexit
1725 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1726 Use __cxa_atexit to register destructors.
1728 fuse-cxa-get-exception-ptr
1729 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1730 Use __cxa_get_exception_ptr in exception handling.
1732 fvisibility-inlines-hidden
1733 C++ ObjC++
1734 Marks all inlined functions and methods as having hidden visibility.
1736 fvisibility-ms-compat
1737 C++ ObjC++ Var(flag_visibility_ms_compat)
1738 Changes visibility to match Microsoft Visual Studio by default.
1740 fvtable-gc
1741 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1742 No longer supported.
1744 fvtable-thunks
1745 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1746 No longer supported.
1748 fweak
1749 C++ ObjC++ Var(flag_weak) Init(1)
1750 Emit common-like symbols as weak symbols.
1752 fwide-exec-charset=
1753 C ObjC C++ ObjC++ Joined RejectNegative
1754 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>.
1756 fworking-directory
1757 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1758 Generate a #line directive pointing at the current working directory.
1760 fxref
1761 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1762 No longer supported.
1764 fzero-link
1765 ObjC ObjC++ Var(flag_zero_link)
1766 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
1768 gen-decls
1769 ObjC ObjC++ Driver Var(flag_gen_declaration)
1770 Dump declarations to a .decl file.
1772 femit-struct-debug-baseonly
1773 C ObjC C++ ObjC++
1774 -femit-struct-debug-baseonly    Aggressive reduced debug info for structs.
1776 femit-struct-debug-reduced
1777 C ObjC C++ ObjC++
1778 -femit-struct-debug-reduced     Conservative reduced debug info for structs.
1780 femit-struct-debug-detailed=
1781 C ObjC C++ ObjC++ Joined
1782 -femit-struct-debug-detailed=<spec-list>        Detailed reduced debug info for structs.
1784 fext-numeric-literals
1785 C++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
1786 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1787 number literal rather than a user-defined number literal.
1789 idirafter
1790 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1791 -idirafter <dir>        Add <dir> to the end of the system include path.
1793 imacros
1794 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1795 -imacros <file> Accept definition of macros in <file>.
1797 imultilib
1798 C ObjC C++ ObjC++ Joined Separate
1799 -imultilib <dir>        Set <dir> to be the multilib include subdirectory.
1801 include
1802 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1803 -include <file> Include the contents of <file> before other files.
1805 iprefix
1806 C ObjC C++ ObjC++ Joined Separate
1807 -iprefix <path> Specify <path> as a prefix for next two options.
1809 isysroot
1810 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1811 -isysroot <dir> Set <dir> to be the system root directory.
1813 isystem
1814 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1815 -isystem <dir>  Add <dir> to the start of the system include path.
1817 iquote
1818 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1819 -iquote <dir>   Add <dir> to the end of the quote include path.
1821 iwithprefix
1822 C ObjC C++ ObjC++ Joined Separate
1823 -iwithprefix <dir>      Add <dir> to the end of the system include path.
1825 iwithprefixbefore
1826 C ObjC C++ ObjC++ Joined Separate
1827 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path.
1829 lang-asm
1830 C Undocumented RejectDriver
1832 no-integrated-cpp
1833 Driver
1835 nostdinc
1836 C ObjC C++ ObjC++
1837 Do not search standard system include directories (those specified with -isystem will still be used).
1839 nostdinc++
1840 C++ ObjC++
1841 Do not search standard system include directories for C++.
1844 C ObjC C++ ObjC++ Joined Separate
1845 ; Documented in common.opt
1847 pedantic
1848 C ObjC C++ ObjC++ Alias(Wpedantic)
1849 ; Documented in common.opt
1851 print-objc-runtime-info
1852 ObjC ObjC++
1853 Generate C header of platform-specific features.
1855 remap
1856 C ObjC C++ ObjC++
1857 Remap file names when including files.
1859 std=c++98
1860 C++ ObjC++
1861 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1863 std=c++03
1864 C++ ObjC++ Alias(std=c++98)
1865 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1867 std=c++11
1868 C++ ObjC++
1869 Conform to the ISO 2011 C++ standard.
1871 std=c++0x
1872 C++ ObjC++ Alias(std=c++11) Undocumented
1873 Deprecated in favor of -std=c++11.
1875 std=c++1y
1876 C++ ObjC++ Alias(std=c++14) Undocumented
1877 Deprecated in favor of -std=c++14.
1879 std=c++14
1880 C++ ObjC++
1881 Conform to the ISO 2014 C++ standard.
1883 std=c++1z
1884 C++ ObjC++
1885 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support).
1887 std=c++17
1888 C++ ObjC++ Alias(std=c++1z) Undocumented
1890 std=c11
1891 C ObjC
1892 Conform to the ISO 2011 C standard.
1894 std=c1x
1895 C ObjC Alias(std=c11)
1896 Deprecated in favor of -std=c11.
1898 std=c89
1899 C ObjC Alias(std=c90)
1900 Conform to the ISO 1990 C standard.
1902 std=c90
1903 C ObjC
1904 Conform to the ISO 1990 C standard.
1906 std=c99
1907 C ObjC
1908 Conform to the ISO 1999 C standard.
1910 std=c9x
1911 C ObjC Alias(std=c99)
1912 Deprecated in favor of -std=c99.
1914 std=gnu++98
1915 C++ ObjC++
1916 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1917 corrigendum with GNU extensions.
1919 std=gnu++03
1920 C++ ObjC++ Alias(std=gnu++98)
1921 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1922 corrigendum with GNU extensions.
1924 std=gnu++11
1925 C++ ObjC++
1926 Conform to the ISO 2011 C++ standard with GNU extensions.
1928 std=gnu++0x
1929 C++ ObjC++ Alias(std=gnu++11) Undocumented
1930 Deprecated in favor of -std=gnu++11.
1932 std=gnu++1y
1933 C++ ObjC++ Alias(std=gnu++14) Undocumented
1934 Deprecated in favor of -std=gnu++14.
1936 std=gnu++14
1937 C++ ObjC++
1938 Conform to the ISO 2014 C++ standard with GNU extensions.
1940 std=gnu++1z
1941 C++ ObjC++
1942 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support).
1944 std=gnu++17
1945 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1947 std=gnu11
1948 C ObjC
1949 Conform to the ISO 2011 C standard with GNU extensions.
1951 std=gnu1x
1952 C ObjC Alias(std=gnu11)
1953 Deprecated in favor of -std=gnu11.
1955 std=gnu89
1956 C ObjC Alias(std=gnu90)
1957 Conform to the ISO 1990 C standard with GNU extensions.
1959 std=gnu90
1960 C ObjC
1961 Conform to the ISO 1990 C standard with GNU extensions.
1963 std=gnu99
1964 C ObjC
1965 Conform to the ISO 1999 C standard with GNU extensions.
1967 std=gnu9x
1968 C ObjC Alias(std=gnu99)
1969 Deprecated in favor of -std=gnu99.
1971 std=iso9899:1990
1972 C ObjC Alias(std=c90)
1973 Conform to the ISO 1990 C standard.
1975 std=iso9899:199409
1976 C ObjC
1977 Conform to the ISO 1990 C standard as amended in 1994.
1979 std=iso9899:1999
1980 C ObjC Alias(std=c99)
1981 Conform to the ISO 1999 C standard.
1983 std=iso9899:199x
1984 C ObjC Alias(std=c99)
1985 Deprecated in favor of -std=iso9899:1999.
1987 std=iso9899:2011
1988 C ObjC Alias(std=c11)
1989 Conform to the ISO 2011 C standard.
1991 traditional
1992 Driver
1994 traditional-cpp
1995 C ObjC C++ ObjC++
1996 Enable traditional preprocessing.
1998 trigraphs
1999 C ObjC C++ ObjC++
2000 -trigraphs      Support ISO C trigraphs.
2002 undef
2003 C ObjC C++ ObjC++ Var(flag_undef)
2004 Do not predefine system-specific and GCC-specific macros.
2007 C ObjC C++ ObjC++
2008 ; Documented in common.opt
2011 C ObjC C++ ObjC++
2012 ; Documented in common.opt
2014 ; This comment is to ensure we retain the blank line above.