Instrument function exit with __builtin_unreachable in C++
[official-gcc.git] / gcc / c-family / c.opt
blob9ab31f0e15364c82cac5f6782d674a8c9f1fddf9
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=[none|global|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 LangEnabledBy(C ObjC C++ ObjC++,Wall)
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++ Warning Alias(Wc++17-compat) Undocumented
383 Wc++17-compat
384 C++ ObjC++ Var(warn_cxx17_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
385 Warn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017.
387 Wcast-qual
388 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
389 Warn about casts which discard qualifiers.
391 Wcatch-value
392 C++ ObjC++ Warning Alias(Wcatch-value=, 1, 0)
393 Warn about catch handlers of non-reference type.
395 Wcatch-value=
396 C++ ObjC++ Var(warn_catch_value) Warning Joined RejectNegative UInteger LangEnabledBy(C++ ObjC++,Wall, 1, 0)
397 Warn about catch handlers of non-reference type.
399 Wchar-subscripts
400 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
401 Warn about subscripts whose type is \"char\".
403 Wchkp
404 C ObjC C++ ObjC++ Var(warn_chkp) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
405 Warn about memory access errors found by Pointer Bounds Checker.
407 Wclobbered
408 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
409 Warn about variables that might be changed by \"longjmp\" or \"vfork\".
411 Wcomment
412 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
413 Warn about possibly nested block comments, and C++ comments spanning more than one physical line.
415 Wcomments
416 C ObjC C++ ObjC++ Warning Alias(Wcomment)
417 Synonym for -Wcomment.
419 Wconditionally-supported
420 C++ ObjC++ Var(warn_conditionally_supported) Warning
421 Warn for conditionally-supported constructs.
423 Wconversion
424 C ObjC C++ ObjC++ Var(warn_conversion) Warning
425 Warn for implicit type conversions that may change a value.
427 Wconversion-null
428 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
429 Warn for converting NULL from/to a non-pointer type.
431 Wcpp
432 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
433 ; Documented in common.opt
435 Wctor-dtor-privacy
436 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
437 Warn when all constructors and destructors are private.
439 Wdangling-else
440 C ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
441 Warn about dangling else.
443 Wdate-time
444 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
445 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
447 Wdeclaration-after-statement
448 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
449 Warn when a declaration is found after a statement.
451 Wdelete-incomplete
452 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
453 Warn when deleting a pointer to incomplete type.
455 Wdelete-non-virtual-dtor
456 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
457 Warn about deleting polymorphic objects with non-virtual destructors.
459 Wdeprecated
460 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
461 Warn if a deprecated compiler feature, class, method, or field is used.
463 Wdesignated-init
464 C ObjC Var(warn_designated_init) Init(1) Warning
465 Warn about positional initialization of structs requiring designated initializers.
467 Wdiscarded-array-qualifiers
468 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
469 Warn if qualifiers on arrays which are pointer targets are discarded.
471 Wdiscarded-qualifiers
472 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
473 Warn if type qualifiers on pointers are discarded.
475 Wdiv-by-zero
476 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
477 Warn about compile-time integer division by zero.
479 Wduplicated-branches
480 C ObjC C++ ObjC++ Var(warn_duplicated_branches) Init(0) Warning
481 Warn about duplicated branches in if-else statements.
483 Wduplicated-cond
484 C ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
485 Warn about duplicated conditions in an if-else-if chain.
487 Weffc++
488 C++ ObjC++ Var(warn_ecpp) Warning
489 Warn about violations of Effective C++ style rules.
491 Wempty-body
492 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
493 Warn about an empty body in an if or else statement.
495 Wendif-labels
496 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)
497 Warn about stray tokens after #else and #endif.
499 Wenum-compare
500 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
501 Warn about comparison of different enum types.
503 Werror
504 C ObjC C++ ObjC++
505 ; Documented in common.opt
507 Werror-implicit-function-declaration
508 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
509 This switch is deprecated; use -Werror=implicit-function-declaration instead.
511 Wextra
512 C ObjC C++ ObjC++ Warning
513 ; in common.opt
515 Wextra-semi
516 C++ ObjC++ Var(warn_extra_semi) Warning
517 Warn about semicolon after in-class function definition.
519 Wfloat-conversion
520 C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
521 Warn for implicit type conversions that cause loss of floating point precision.
523 Wfloat-equal
524 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
525 Warn if testing floating point numbers for equality.
527 Wformat
528 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
529 Warn about printf/scanf/strftime/strfmon format string anomalies.
531 Wformat-contains-nul
532 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
533 Warn about format strings that contain NUL bytes.
535 Wformat-extra-args
536 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
537 Warn if passing too many arguments to a function for its format string.
539 Wformat-nonliteral
540 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
541 Warn about format strings that are not literals.
543 Wformat-overflow
544 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-overflow=, 1, 0) IntegerRange(0, 2)
545 Warn about function calls with format strings that write past the end
546 of the destination region.  Same as -Wformat-overflow=1.
548 Wformat-security
549 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
550 Warn about possible security problems with format functions.
552 Wformat-signedness
553 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
554 Warn about sign differences with format functions.
556 Wformat-truncation
557 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-truncation=, 1, 0)
558 Warn about calls to snprintf and similar functions that truncate output.
559 Same as -Wformat-truncation=1.
561 Wformat-y2k
562 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
563 Warn about strftime formats yielding 2-digit years.
565 Wformat-zero-length
566 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
567 Warn about zero-length formats.
569 Wformat=
570 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
571 Warn about printf/scanf/strftime/strfmon format string anomalies.
573 Wformat-overflow=
574 C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_overflow) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
575 Warn about function calls with format strings that write past the end
576 of the destination region.
578 Wformat-truncation=
579 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format_trunc) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
580 Warn about calls to snprintf and similar functions that truncate output.
582 Wif-not-aligned
583 C ObjC C++ ObjC++ Var(warn_if_not_aligned) Init(1) Warning
584 Warn when the field in a struct is not aligned.
586 Wignored-qualifiers
587 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
588 Warn whenever type qualifiers are ignored.
590 Wignored-attributes
591 C C++ Var(warn_ignored_attributes) Init(1) Warning
592 Warn whenever attributes are ignored.
594 Wincompatible-pointer-types
595 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
596 Warn when there is a conversion between pointers that have incompatible types.
598 Winit-self
599 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
600 Warn about variables which are initialized to themselves.
602 Wimplicit
603 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
604 Warn about implicit declarations.
606 Wimplicit-fallthrough=
607 LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
608 ; in common.opt
610 Wdouble-promotion
611 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
612 Warn about implicit conversions from \"float\" to \"double\".
614 Wexpansion-to-defined
615 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)
616 Warn if \"defined\" is used outside #if.
618 Wimplicit-function-declaration
619 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
620 Warn about implicit function declarations.
622 Wimplicit-int
623 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
624 Warn when a declaration does not specify a type.
626 Wimport
627 C ObjC C++ ObjC++ Undocumented Ignore
629 Winherited-variadic-ctor
630 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
631 Warn about C++11 inheriting constructors when the base has a variadic constructor.
633 Wint-conversion
634 C ObjC Var(warn_int_conversion) Init(1) Warning
635 Warn about incompatible integer to pointer and pointer to integer conversions.
637 Wint-in-bool-context
638 C ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
639 Warn for suspicious integer expressions in boolean context.
641 Wint-to-pointer-cast
642 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
643 Warn when there is a cast to a pointer from an integer of a different size.
645 Winvalid-offsetof
646 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
647 Warn about invalid uses of the \"offsetof\" macro.
649 Winvalid-pch
650 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
651 Warn about PCH files that are found but not used.
653 Wjump-misses-init
654 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
655 Warn when a jump misses a variable initialization.
657 Wliteral-suffix
658 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
659 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
661 Wlogical-op
662 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
663 Warn when a logical operator is suspiciously always evaluating to true or false.
665 Wlogical-not-parentheses
666 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
667 Warn when logical not is used on the left hand side operand of a comparison.
669 Wlong-long
670 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)
671 Do not warn about using \"long long\" when -pedantic.
673 Wmain
674 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
675 Warn about suspicious declarations of \"main\".
677 Wmain
678 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
681 Wmemset-transposed-args
682 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
683 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
685 Wmemset-elt-size
686 C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
687 Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
689 Wmisleading-indentation
690 C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
691 Warn when the indentation of the code does not reflect the block structure.
693 Wmissing-braces
694 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
695 Warn about possibly missing braces around initializers.
697 Wmissing-declarations
698 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
699 Warn about global functions without previous declarations.
701 Wmissing-field-initializers
702 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
703 Warn about missing fields in struct initializers.
705 Wmultistatement-macros
706 C ObjC C++ ObjC++ Var(warn_multistatement_macros) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
707 Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
709 Wmultiple-inheritance
710 C++ ObjC++ Var(warn_multiple_inheritance) Warning
711 Warn on direct multiple inheritance.
713 Wnamespaces
714 C++ ObjC++ Var(warn_namespaces) Warning
715 Warn on namespace definition.
717 Wpacked-not-aligned
718 C ObjC C++ ObjC++ Var(warn_packed_not_aligned) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
719 Warn when fields in a struct with the packed attribute are misaligned.
721 Wsized-deallocation
722 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
723 Warn about missing sized deallocation functions.
725 Wsizeof-pointer-div
726 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
727 Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers.
729 Wsizeof-pointer-memaccess
730 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
731 Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
733 Wsizeof-array-argument
734 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
735 Warn when sizeof is applied on a parameter declared as an array.
737 Wstringop-overflow
738 C ObjC C++ ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
739 Warn about buffer overflow in string manipulation functions like memcpy
740 and strcpy.
742 Wstringop-overflow=
743 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall, 2, 0) IntegerRange(0, 4)
744 Under the control of Object Size type, warn about buffer overflow in string
745 manipulation functions like memcpy and strcpy.
747 Wsuggest-attribute=format
748 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
749 Warn about functions which might be candidates for format attributes.
751 Wsuggest-override
752 C++ ObjC++ Var(warn_override) Warning
753 Suggest that the override keyword be used when the declaration of a virtual
754 function overrides another.
756 Wswitch
757 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
758 Warn about enumerated switches, with no default, missing a case.
760 Wswitch-default
761 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
762 Warn about enumerated switches missing a \"default:\" statement.
764 Wswitch-enum
765 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
766 Warn about all enumerated switches missing a specific case.
768 Wswitch-bool
769 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
770 Warn about switches with boolean controlling expression.
772 Wtemplates
773 C++ ObjC++ Var(warn_templates) Warning
774 Warn on primary template declaration.
776 Wmissing-format-attribute
777 C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
780 Wmissing-include-dirs
781 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
782 Warn about user-specified include directories that do not exist.
784 Wmissing-parameter-type
785 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
786 Warn about function parameters declared without a type specifier in K&R-style functions.
788 Wmissing-prototypes
789 C ObjC Var(warn_missing_prototypes) Warning
790 Warn about global functions without prototypes.
792 Wmudflap
793 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
795 Wmultichar
796 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
797 Warn about use of multi-character character constants.
799 Wnarrowing
800 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
801 Warn about narrowing conversions within { } that are ill-formed in C++11.
803 Wnested-externs
804 C ObjC Var(warn_nested_externs) Warning
805 Warn about \"extern\" declarations not at file scope.
807 Wnoexcept
808 C++ ObjC++ Var(warn_noexcept) Warning
809 Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
811 Wnoexcept-type
812 C++ ObjC++ Warning Var(warn_noexcept_type) LangEnabledBy(C++ ObjC++,Wabi || Wc++17-compat)
813 Warn if C++17 noexcept function type will change the mangled name of a symbol.
815 Wnon-template-friend
816 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
817 Warn when non-templatized friend functions are declared within a template.
819 Wclass-memaccess
820 C++ ObjC++ Var(warn_class_memaccess) Warning LangEnabledBy(C++ ObjC++, Wall)
821 Warn for unsafe raw memory writes to objects of class types.
823 Wnon-virtual-dtor
824 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
825 Warn about non-virtual destructors.
827 Wnonnull
828 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
829 Warn about NULL being passed to argument slots marked as requiring non-NULL.
831 Wnonnull
832 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
835 Wnonnull-compare
836 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
839 Wnormalized
840 C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
843 Wnormalized=
844 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)
845 -Wnormalized=[none|id|nfc|nfkc] Warn about non-normalized Unicode strings.
847 ; Required for these enum values.
848 SourceInclude
849 cpplib.h
851 Enum
852 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
854 EnumValue
855 Enum(cpp_normalize_level) String(none) Value(normalized_none)
857 EnumValue
858 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
860 EnumValue
861 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
863 EnumValue
864 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
866 Wold-style-cast
867 C++ ObjC++ Var(warn_old_style_cast) Warning
868 Warn if a C-style cast is used in a program.
870 Wold-style-declaration
871 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
872 Warn for obsolescent usage in a declaration.
874 Wold-style-definition
875 C ObjC Var(warn_old_style_definition) Warning
876 Warn if an old-style parameter definition is used.
878 Wopenmp-simd
879 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
880 Warn if a simd directive is overridden by the vectorizer cost model.
882 Woverlength-strings
883 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
884 Warn if a string is longer than the maximum portable length specified by the standard.
886 Woverloaded-virtual
887 C++ ObjC++ Var(warn_overloaded_virtual) Warning
888 Warn about overloaded virtual function names.
890 Woverride-init
891 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
892 Warn about overriding initializers without side effects.
894 Woverride-init-side-effects
895 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
896 Warn about overriding initializers with side effects.
898 Wpacked-bitfield-compat
899 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
900 Warn about packed bit-fields whose offset changed in GCC 4.4.
902 Wparentheses
903 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
904 Warn about possibly missing parentheses.
906 Wpedantic
907 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
908 ; Documented in common.opt
910 Wpmf-conversions
911 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
912 Warn when converting the type of pointers to member functions.
914 Wpointer-arith
915 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
916 Warn about function pointer arithmetic.
918 Wpointer-sign
919 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
920 Warn when a pointer differs in signedness in an assignment.
922 Wpointer-compare
923 C ObjC C++ ObjC++ Var(warn_pointer_compare) Init(1) Warning
924 Warn when a pointer is compared with a zero character constant.
926 Wpointer-to-int-cast
927 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
928 Warn when a pointer is cast to an integer of a different size.
930 Wpragmas
931 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
932 Warn about misuses of pragmas.
934 Wproperty-assign-default
935 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
936 Warn if a property for an Objective-C object has no assign semantics specified.
938 Wprotocol
939 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
940 Warn if inherited methods are unimplemented.
942 Wplacement-new
943 C++ Warning Alias(Wplacement-new=, 1, 0)
944 Warn for placement new expressions with undefined behavior.
946 Wplacement-new=
947 C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2)
948 Warn for placement new expressions with undefined behavior.
950 Wredundant-decls
951 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
952 Warn about multiple declarations of the same object.
954 Wregister
955 C++ ObjC++ Var(warn_register) Warning
956 Warn about uses of register storage specifier.
958 Wreorder
959 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
960 Warn when the compiler reorders code.
962 Wreturn-type
963 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) Init(-1)
964 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
966 Wscalar-storage-order
967 C ObjC C++ ObjC++ Init(1) Warning
968 Warn on suspicious constructs involving reverse scalar storage order.
970 Wselector
971 ObjC ObjC++ Var(warn_selector) Warning
972 Warn if a selector has multiple methods.
974 Wsequence-point
975 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
976 Warn about possible violations of sequence point rules.
978 Wshadow-ivar
979 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
980 Warn if a local declaration hides an instance variable.
982 Wshift-overflow
983 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
984 Warn if left shift of a signed value overflows.
986 Wshift-overflow=
987 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning IntegerRange(0, 2)
988 Warn if left shift of a signed value overflows.
990 Wshift-count-negative
991 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
992 Warn if shift count is negative.
994 Wshift-count-overflow
995 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
996 Warn if shift count >= width of type.
998 Wshift-negative-value
999 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
1000 Warn if left shifting a negative value.
1002 Wsign-compare
1003 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
1004 Warn about signed-unsigned comparisons.
1006 Wsign-compare
1007 C ObjC C++ ObjC++ EnabledBy(Wextra)
1010 Wsign-conversion
1011 C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
1012 Warn for implicit type conversions between signed and unsigned integers.
1014 Wsign-promo
1015 C++ ObjC++ Var(warn_sign_promo) Warning
1016 Warn when overload promotes from unsigned to signed.
1018 Wstrict-null-sentinel
1019 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
1020 Warn about uncasted NULL used as sentinel.
1022 Wstrict-prototypes
1023 C ObjC Var(warn_strict_prototypes) Warning
1024 Warn about unprototyped function declarations.
1026 Wstrict-aliasing=
1027 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0) IntegerRange(0, 3)
1030 Wstrict-overflow=
1031 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 5)
1034 Wstrict-selector-match
1035 ObjC ObjC++ Var(warn_strict_selector_match) Warning
1036 Warn if type signatures of candidate methods do not match exactly.
1038 Wsync-nand
1039 C C++ Var(warn_sync_nand) Init(1) Warning
1040 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
1042 Wsynth
1043 C++ ObjC++ Var(warn_synth) Warning
1044 Deprecated.  This switch has no effect.
1046 Wsystem-headers
1047 C ObjC C++ ObjC++ Warning
1048 ; Documented in common.opt
1050 Wtautological-compare
1051 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1052 Warn if a comparison always evaluates to true or false.
1054 Wterminate
1055 C++ ObjC++ Warning Var(warn_terminate) Init(1)
1056 Warn if a throw expression will always result in a call to terminate().
1058 Wtraditional
1059 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
1060 Warn about features not present in traditional C.
1062 Wtraditional-conversion
1063 C ObjC Var(warn_traditional_conversion) Warning
1064 Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
1066 Wtrigraphs
1067 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1068 Warn if trigraphs are encountered that might affect the meaning of the program.
1070 Wundeclared-selector
1071 ObjC ObjC++ Var(warn_undeclared_selector) Warning
1072 Warn about @selector()s without previously declared methods.
1074 Wundef
1075 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
1076 Warn if an undefined macro is used in an #if directive.
1078 Wuninitialized
1079 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1082 Wmaybe-uninitialized
1083 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1086 Wunknown-pragmas
1087 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
1088 Warn about unrecognized pragmas.
1090 Wunsuffixed-float-constants
1091 C ObjC Var(warn_unsuffixed_float_constants) Warning
1092 Warn about unsuffixed float constants.
1094 Wunused
1095 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1096 ; documented in common.opt
1098 Wunused-local-typedefs
1099 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
1100 Warn when typedefs locally defined in a function are not used.
1102 Wunused-macros
1103 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
1104 Warn about macros defined in the main file that are not used.
1106 Wunused-result
1107 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
1108 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
1110 Wunused-variable
1111 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
1112 ; documented in common.opt
1114 Wunused-const-variable
1115 C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
1116 Warn when a const variable is unused.
1118 Wunused-const-variable=
1119 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0) IntegerRange(0, 2)
1120 Warn when a const variable is unused.
1122 Wvariadic-macros
1123 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)
1124 Warn about using variadic macros.
1126 Wvarargs
1127 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
1128 Warn about questionable usage of the macros used to retrieve variable arguments.
1130 Wvla
1131 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
1132 Warn if a variable length array is used.
1134 Wvla-larger-than=
1135 C ObjC C++ ObjC++ Var(warn_vla_limit) Warning Joined RejectNegative UInteger
1136 -Wvla-larger-than=<number>      Warn on unbounded uses of variable-length arrays, and
1137 on bounded uses of variable-length arrays whose bound can be
1138 larger than <number> bytes.
1140 Wvolatile-register-var
1141 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1142 Warn when a register variable is declared volatile.
1144 Wvirtual-inheritance
1145 C++ ObjC++ Var(warn_virtual_inheritance) Warning
1146 Warn on direct virtual inheritance.
1148 Wvirtual-move-assign
1149 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
1150 Warn if a virtual base has a non-trivial move assignment operator.
1152 Wwrite-strings
1153 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
1154 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.
1156 Wzero-as-null-pointer-constant
1157 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
1158 Warn when a literal '0' is used as null pointer.
1160 Wuseless-cast
1161 C++ ObjC++ Var(warn_useless_cast) Warning
1162 Warn about useless casts.
1164 Wsubobject-linkage
1165 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
1166 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.
1168 Wduplicate-decl-specifier
1169 C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1170 Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1172 Wrestrict
1173 C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++)
1174 Warn when an argument passed to a restrict-qualified parameter aliases with
1175 another argument.
1177 ansi
1178 C ObjC C++ ObjC++
1179 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
1182 C ObjC C++ ObjC++ Joined
1183 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
1185 fabi-compat-version=
1186 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
1187 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
1189 faccess-control
1190 C++ ObjC++ Var(flag_access_control) Init(1)
1191 Enforce class member access control semantics.
1193 fada-spec-parent=
1194 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
1195 -fada-spec-parent=unit  Dump Ada specs as child units of given parent.
1197 faligned-new
1198 C++ ObjC++ Alias(faligned-new=,1,0)
1199 Support C++17 allocation of over-aligned types.
1201 faligned-new=
1202 C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
1203 -faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
1205 fall-virtual
1206 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1208 fallow-parameterless-variadic-functions
1209 C ObjC Var(flag_allow_parameterless_variadic_functions)
1210 Allow variadic functions without named parameter.
1212 falt-external-templates
1213 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1214 No longer supported.
1216 fasm
1217 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1218 Recognize the \"asm\" keyword.
1220 ; Define extra predefined macros for use in libgcc.
1221 fbuilding-libgcc
1222 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1224 fbuiltin
1225 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1226 Recognize built-in functions.
1228 fbuiltin-
1229 C ObjC C++ ObjC++ Joined
1231 fcanonical-system-headers
1232 C ObjC C++ ObjC++
1233 Where shorter, use canonicalized paths to systems headers.
1235 fcheck-pointer-bounds
1236 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
1237 Add Pointer Bounds Checker instrumentation.  fchkp-* flags are used to
1238 control instrumentation.  Currently available for C, C++ and ObjC.
1240 fchkp-check-incomplete-type
1241 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
1242 Generate pointer bounds checks for variables with incomplete type.
1244 fchkp-zero-input-bounds-for-main
1245 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
1246 Use zero bounds for all incoming arguments in 'main' function.  It helps when
1247 instrumented binaries are used with legacy libs.
1249 fchkp-first-field-has-own-bounds
1250 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
1251 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1252 field in the structure.  By default pointer to the first field has the same
1253 bounds as pointer to the whole structure.
1255 fchkp-narrow-bounds
1256 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
1257 Control how Pointer Bounds Checker handle pointers to object fields.  When
1258 narrowing is on, field bounds are used.  Otherwise full object bounds are used.
1260 fchkp-narrow-to-innermost-array
1261 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1262 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1263 nested static arrays access.  By default outermost array is used.
1265 fchkp-flexible-struct-trailing-arrays
1266 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_flexible_struct_trailing_arrays)
1267 Forces Pointer Bounds Checker to treat all trailing arrays in structures as
1268 possibly flexible.  By default only arrays fields with zero length or that are
1269 marked with attribute bnd_variable_size are treated as flexible.
1271 fchkp-optimize
1272 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1273 Allow Pointer Bounds Checker optimizations.  By default allowed
1274 on optimization levels >0.
1276 fchkp-use-fast-string-functions
1277 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1278 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1280 fchkp-use-nochk-string-functions
1281 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1282 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1284 fchkp-use-static-bounds
1285 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1286 Use statically initialized variable for vars bounds instead of
1287 generating them each time it is required.
1289 fchkp-use-static-const-bounds
1290 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1291 Use statically initialized variable for constant bounds instead of
1292 generating them each time it is required.
1294 fchkp-treat-zero-dynamic-size-as-infinite
1295 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1296 With this option zero size obtained dynamically for objects with
1297 incomplete type will be treated as infinite.
1299 fchkp-check-read
1300 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1301 Generate checks for all read accesses to memory.
1303 fchkp-check-write
1304 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1305 Generate checks for all write accesses to memory.
1307 fchkp-store-bounds
1308 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1309 Generate bounds stores for pointer writes.
1311 fchkp-instrument-calls
1312 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1313 Generate bounds passing for calls.
1315 fchkp-instrument-marked-only
1316 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1317 Instrument only functions marked with bnd_instrument attribute.
1319 fchkp-use-wrappers
1320 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1321 Transform instrumented builtin calls into calls to wrappers.
1323 static-libmpx
1324 Driver
1326 static-libmpxwrappers
1327 Driver
1329 fcilkplus
1330 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1331 Enable Cilk Plus.
1333 fconcepts
1334 C++ ObjC++ Var(flag_concepts)
1335 Enable support for C++ concepts.
1337 fcond-mismatch
1338 C ObjC C++ ObjC++
1339 Allow the arguments of the '?' operator to have different types.
1341 fconserve-space
1342 C++ ObjC++ Var(flag_conserve_space)
1343 Does nothing.  Preserved for backward compatibility.
1345 fconstant-string-class=
1346 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1347 -fconst-string-class=<name>     Use class <name> for constant strings.
1349 fconstexpr-depth=
1350 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1351 -fconstexpr-depth=<number>      Specify maximum constexpr recursion depth.
1353 fconstexpr-loop-limit=
1354 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1355 -fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1357 fdebug-cpp
1358 C ObjC C++ ObjC++
1359 Emit debug annotations during preprocessing.
1361 fdeduce-init-list
1362 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1363 -fdeduce-init-list      enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
1365 fdeclone-ctor-dtor
1366 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1367 Factor complex constructors and destructors to favor space over speed.
1369 fdefault-inline
1370 C++ ObjC++ Ignore
1371 Does nothing.  Preserved for backward compatibility.
1373 fdiagnostics-show-template-tree
1374 C++ ObjC++ Var(flag_diagnostics_show_template_tree) Init(0)
1375 Print hierarchical comparisons when template types are mismatched.
1377 fdirectives-only
1378 C ObjC C++ ObjC++
1379 Preprocess directives only.
1381 fdollars-in-identifiers
1382 C ObjC C++ ObjC++
1383 Permit '$' as an identifier character.
1385 fdump-ada-spec
1386 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1387 Write all declarations as Ada code transitively.
1389 fdump-ada-spec-slim
1390 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1391 Write all declarations as Ada code for the given file only.
1393 felide-constructors
1394 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1396 felide-type
1397 C++ ObjC++ Var(flag_elide_type) Init(1)
1398 -fno-elide-type Do not elide common elements in template comparisons.
1400 fenforce-eh-specs
1401 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1402 Generate code to check exception specifications.
1404 fenum-int-equiv
1405 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1407 fexec-charset=
1408 C ObjC C++ ObjC++ Joined RejectNegative
1409 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>.
1411 fextended-identifiers
1412 C ObjC C++ ObjC++
1413 Permit universal character names (\\u and \\U) in identifiers.
1415 finput-charset=
1416 C ObjC C++ ObjC++ Joined RejectNegative
1417 -finput-charset=<cset>  Specify the default character set for source files.
1419 fextern-tls-init
1420 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1421 Support dynamic initialization of thread-local variables in a different translation unit.
1423 fexternal-templates
1424 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1426 ffor-scope
1427 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1428 Scope of for-init-statement variables is local to the loop.
1430 ffreestanding
1431 C ObjC C++ ObjC++
1432 Do not assume that standard C libraries and \"main\" exist.
1434 fgnu-keywords
1435 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1436 Recognize GNU-defined keywords.
1438 fgnu-runtime
1439 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1440 Generate code for GNU runtime environment.
1442 fgnu89-inline
1443 C ObjC Var(flag_gnu89_inline) Init(-1)
1444 Use traditional GNU semantics for inline functions.
1446 fguiding-decls
1447 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1449 fhandle-exceptions
1450 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1452 fhonor-std
1453 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1455 fhosted
1456 C ObjC
1457 Assume normal C execution environment.
1459 fhuge-objects
1460 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1461 No longer supported.
1463 fimplement-inlines
1464 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1465 Export functions even if they can be inlined.
1467 fimplicit-inline-templates
1468 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1469 Emit implicit instantiations of inline templates.
1471 fimplicit-templates
1472 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1473 Emit implicit instantiations of templates.
1475 fnew-inheriting-ctors
1476 C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
1477 Implement C++17 inheriting constructor semantics.
1479 ffriend-injection
1480 C++ ObjC++ Var(flag_friend_injection)
1481 Inject friend functions into enclosing namespace.
1483 fkeep-inline-dllexport
1484 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1485 Don't emit dllexported inline functions unless needed.
1487 flabels-ok
1488 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1490 flax-vector-conversions
1491 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1492 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1494 fms-extensions
1495 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1496 Don't warn about uses of Microsoft extensions.
1498 fmudflap
1499 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1501 fmudflapth
1502 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1504 fmudflapir
1505 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1507 fname-mangling-version-
1508 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1510 fnew-abi
1511 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1513 fnew-ttp-matching
1514 C++ ObjC++ Var(flag_new_ttp)
1515 Implement resolution of DR 150 for matching of template template arguments.
1517 fnext-runtime
1518 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1519 Generate code for NeXT (Apple Mac OS X) runtime environment.
1521 fnil-receivers
1522 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1523 Assume that receivers of Objective-C messages may be nil.
1525 flocal-ivars
1526 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1527 Allow access to instance variables as if they were local declarations within instance method implementations.
1529 fivar-visibility=
1530 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1531 -fvisibility=[private|protected|public|package] Set the default symbol visibility.
1533 Enum
1534 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1536 EnumValue
1537 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1539 EnumValue
1540 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1542 EnumValue
1543 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1545 EnumValue
1546 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1548 fnonansi-builtins
1549 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1551 fnonnull-objects
1552 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1554 fnothrow-opt
1555 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1556 Treat a throw() exception specification as noexcept to improve code size.
1558 fobjc-abi-version=
1559 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1560 Specify which ABI to use for Objective-C family code and meta-data generation.
1562 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1563 ; to initialize any non-POD ivars in Objective-C++ classes.
1564 fobjc-call-cxx-cdtors
1565 ObjC++ Var(flag_objc_call_cxx_cdtors)
1566 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
1568 fobjc-direct-dispatch
1569 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1570 Allow fast jumps to the message dispatcher.
1572 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1573 ; @try, etc.) in source code.
1574 fobjc-exceptions
1575 ObjC ObjC++ Var(flag_objc_exceptions)
1576 Enable Objective-C exception and synchronization syntax.
1578 fobjc-gc
1579 ObjC ObjC++ LTO Var(flag_objc_gc)
1580 Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
1582 fobjc-nilcheck
1583 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1584 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1586 ; Nonzero means that we generate NeXT setjmp based exceptions.
1587 fobjc-sjlj-exceptions
1588 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1589 Enable Objective-C setjmp exception handling runtime.
1591 fobjc-std=objc1
1592 ObjC ObjC++ Var(flag_objc1_only)
1593 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
1595 fopenacc
1596 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1597 Enable OpenACC.
1599 fopenacc-dim=
1600 C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1601 Specify default OpenACC compute dimensions.
1603 fopenmp
1604 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1605 Enable OpenMP (implies -frecursive in Fortran).
1607 fopenmp-simd
1608 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1609 Enable OpenMP's SIMD directives.
1611 foperator-names
1612 C++ ObjC++
1613 Recognize C++ keywords like \"compl\" and \"xor\".
1615 foptional-diags
1616 C++ ObjC++ Ignore
1617 Does nothing.  Preserved for backward compatibility.
1619 fpch-deps
1620 C ObjC C++ ObjC++
1622 fpch-preprocess
1623 C ObjC C++ ObjC++
1624 Look for and use PCH files even when preprocessing.
1626 fpermissive
1627 C++ ObjC++ Var(flag_permissive)
1628 Downgrade conformance errors to warnings.
1630 fplan9-extensions
1631 C ObjC Var(flag_plan9_extensions)
1632 Enable Plan 9 language extensions.
1634 fpreprocessed
1635 C ObjC C++ ObjC++
1636 Treat the input file as already preprocessed.
1638 ftrack-macro-expansion
1639 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1640 ; converted into ftrack-macro-expansion=
1642 ftrack-macro-expansion=
1643 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1644 -ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages.
1646 fpretty-templates
1647 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1648 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
1650 fprintf-return-value
1651 C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
1652 Treat known sprintf return values as constants.
1654 freplace-objc-classes
1655 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1656 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
1658 frepo
1659 C++ ObjC++
1660 Enable automatic template instantiation.
1662 frtti
1663 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1664 Generate run time type descriptor information.
1666 fshort-enums
1667 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1668 Use the narrowest integer type possible for enumeration types.
1670 fshort-wchar
1671 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1672 Force the underlying type for \"wchar_t\" to be \"unsigned short\".
1674 fsigned-bitfields
1675 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1676 When \"signed\" or \"unsigned\" is not given make the bitfield signed.
1678 fsigned-char
1679 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1680 Make \"char\" signed by default.
1682 fsized-deallocation
1683 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1684 Enable C++14 sized deallocation support.
1686 fsquangle
1687 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1689 fsso-struct=
1690 C ObjC Joined RejectNegative Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1691 -fsso-struct=[big-endian|little-endian|native]  Set the default scalar storage order.
1693 Enum
1694 Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1696 EnumValue
1697 Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1699 EnumValue
1700 Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1702 EnumValue
1703 Enum(sso_struct) String(native) Value(SSO_NATIVE)
1705 fstats
1706 C++ ObjC++ Var(flag_detailed_statistics)
1707 Display statistics accumulated during compilation.
1709 fstrict-enums
1710 C++ ObjC++ Optimization Var(flag_strict_enums)
1711 Assume that values of enumeration type are always within the minimum range of that type.
1713 fstrict-prototype
1714 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1716 fstrong-eval-order
1717 C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
1718 Follow the C++17 evaluation order requirements for assignment expressions,
1719 shift, member function calls, etc.
1721 fstrong-eval-order=
1722 C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) RejectNegative Init(-1)
1723 Follow the C++17 evaluation order requirements for assignment expressions,
1724 shift, member function calls, etc.
1726 Enum
1727 Name(strong_eval_order) Type(int)
1729 EnumValue
1730 Enum(strong_eval_order) String(none) Value(0)
1732 EnumValue
1733 Enum(strong_eval_order) String(some) Value(1)
1735 EnumValue
1736 Enum(strong_eval_order) String(all) Value(2)
1738 ftabstop=
1739 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1740 -ftabstop=<number>      Distance between tab stops for column reporting.
1742 ftemplate-backtrace-limit=
1743 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1744 Set the maximum number of template instantiation notes for a single warning or error.
1746 ftemplate-depth-
1747 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1749 ftemplate-depth=
1750 C++ ObjC++ Joined RejectNegative UInteger
1751 -ftemplate-depth=<number>       Specify maximum template instantiation depth.
1753 fthis-is-variable
1754 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1756 fthreadsafe-statics
1757 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1758 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
1760 funsigned-bitfields
1761 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1762 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
1764 funsigned-char
1765 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1766 Make \"char\" unsigned by default.
1768 fuse-cxa-atexit
1769 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1770 Use __cxa_atexit to register destructors.
1772 fuse-cxa-get-exception-ptr
1773 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1774 Use __cxa_get_exception_ptr in exception handling.
1776 fvisibility-inlines-hidden
1777 C++ ObjC++
1778 Marks all inlined functions and methods as having hidden visibility.
1780 fvisibility-ms-compat
1781 C++ ObjC++ Var(flag_visibility_ms_compat)
1782 Changes visibility to match Microsoft Visual Studio by default.
1784 fvtable-gc
1785 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1786 No longer supported.
1788 fvtable-thunks
1789 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1790 No longer supported.
1792 fweak
1793 C++ ObjC++ Var(flag_weak) Init(1)
1794 Emit common-like symbols as weak symbols.
1796 fwide-exec-charset=
1797 C ObjC C++ ObjC++ Joined RejectNegative
1798 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>.
1800 fworking-directory
1801 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1802 Generate a #line directive pointing at the current working directory.
1804 fxref
1805 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1806 No longer supported.
1808 fzero-link
1809 ObjC ObjC++ Var(flag_zero_link)
1810 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
1812 gen-decls
1813 ObjC ObjC++ Driver Var(flag_gen_declaration) RejectNegative
1814 Dump declarations to a .decl file.
1816 femit-struct-debug-baseonly
1817 C ObjC C++ ObjC++
1818 -femit-struct-debug-baseonly    Aggressive reduced debug info for structs.
1820 femit-struct-debug-reduced
1821 C ObjC C++ ObjC++
1822 -femit-struct-debug-reduced     Conservative reduced debug info for structs.
1824 femit-struct-debug-detailed=
1825 C ObjC C++ ObjC++ Joined
1826 -femit-struct-debug-detailed=<spec-list>        Detailed reduced debug info for structs.
1828 fext-numeric-literals
1829 C++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
1830 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1831 number literal rather than a user-defined number literal.
1833 idirafter
1834 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1835 -idirafter <dir>        Add <dir> to the end of the system include path.
1837 imacros
1838 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1839 -imacros <file> Accept definition of macros in <file>.
1841 imultilib
1842 C ObjC C++ ObjC++ Joined Separate
1843 -imultilib <dir>        Set <dir> to be the multilib include subdirectory.
1845 include
1846 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1847 -include <file> Include the contents of <file> before other files.
1849 iprefix
1850 C ObjC C++ ObjC++ Joined Separate
1851 -iprefix <path> Specify <path> as a prefix for next two options.
1853 isysroot
1854 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1855 -isysroot <dir> Set <dir> to be the system root directory.
1857 isystem
1858 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1859 -isystem <dir>  Add <dir> to the start of the system include path.
1861 iquote
1862 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1863 -iquote <dir>   Add <dir> to the end of the quote include path.
1865 iwithprefix
1866 C ObjC C++ ObjC++ Joined Separate
1867 -iwithprefix <dir>      Add <dir> to the end of the system include path.
1869 iwithprefixbefore
1870 C ObjC C++ ObjC++ Joined Separate
1871 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path.
1873 lang-asm
1874 C Undocumented RejectDriver
1876 no-integrated-cpp
1877 Driver
1879 nostdinc
1880 C ObjC C++ ObjC++
1881 Do not search standard system include directories (those specified with -isystem will still be used).
1883 nostdinc++
1884 C++ ObjC++
1885 Do not search standard system include directories for C++.
1888 C ObjC C++ ObjC++ Joined Separate
1889 ; Documented in common.opt
1891 pedantic
1892 C ObjC C++ ObjC++ Alias(Wpedantic)
1893 ; Documented in common.opt
1895 print-objc-runtime-info
1896 ObjC ObjC++
1897 Generate C header of platform-specific features.
1899 remap
1900 C ObjC C++ ObjC++
1901 Remap file names when including files.
1903 std=c++98
1904 C++ ObjC++
1905 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1907 std=c++03
1908 C++ ObjC++ Alias(std=c++98)
1909 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1911 std=c++11
1912 C++ ObjC++
1913 Conform to the ISO 2011 C++ standard.
1915 std=c++0x
1916 C++ ObjC++ Alias(std=c++11) Undocumented
1917 Deprecated in favor of -std=c++11.
1919 std=c++1y
1920 C++ ObjC++ Alias(std=c++14) Undocumented
1921 Deprecated in favor of -std=c++14.
1923 std=c++14
1924 C++ ObjC++
1925 Conform to the ISO 2014 C++ standard.
1927 std=c++1z
1928 C++ ObjC++ Alias(std=c++17) Undocumented
1929 Deprecated in favor of -std=c++17.
1931 std=c++17
1932 C++ ObjC++
1933 Conform to the ISO 2017 C++ standard.
1935 std=c++2a
1936 C++ ObjC++
1937 Conform to the ISO 2020(?) C++ draft standard (experimental and incomplete support).
1939 std=c11
1940 C ObjC
1941 Conform to the ISO 2011 C standard.
1943 std=c1x
1944 C ObjC Alias(std=c11)
1945 Deprecated in favor of -std=c11.
1947 std=c17
1948 C ObjC
1949 Conform to the ISO 2017 C standard.
1951 std=c89
1952 C ObjC Alias(std=c90)
1953 Conform to the ISO 1990 C standard.
1955 std=c90
1956 C ObjC
1957 Conform to the ISO 1990 C standard.
1959 std=c99
1960 C ObjC
1961 Conform to the ISO 1999 C standard.
1963 std=c9x
1964 C ObjC Alias(std=c99)
1965 Deprecated in favor of -std=c99.
1967 std=gnu++98
1968 C++ ObjC++
1969 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1970 corrigendum with GNU extensions.
1972 std=gnu++03
1973 C++ ObjC++ Alias(std=gnu++98)
1974 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1975 corrigendum with GNU extensions.
1977 std=gnu++11
1978 C++ ObjC++
1979 Conform to the ISO 2011 C++ standard with GNU extensions.
1981 std=gnu++0x
1982 C++ ObjC++ Alias(std=gnu++11) Undocumented
1983 Deprecated in favor of -std=gnu++11.
1985 std=gnu++1y
1986 C++ ObjC++ Alias(std=gnu++14) Undocumented
1987 Deprecated in favor of -std=gnu++14.
1989 std=gnu++14
1990 C++ ObjC++
1991 Conform to the ISO 2014 C++ standard with GNU extensions.
1993 std=gnu++1z
1994 C++ ObjC++ Alias(std=gnu++17) Undocumented
1995 Deprecated in favor of -std=gnu++17.
1997 std=gnu++17
1998 C++ ObjC++
1999 Conform to the ISO 2017 C++ standard with GNU extensions.
2001 std=gnu++2a
2002 C++ ObjC++
2003 Conform to the ISO 2020(?) C++ draft standard with GNU extensions (experimental and incomplete support).
2005 std=gnu11
2006 C ObjC
2007 Conform to the ISO 2011 C standard with GNU extensions.
2009 std=gnu1x
2010 C ObjC Alias(std=gnu11)
2011 Deprecated in favor of -std=gnu11.
2013 std=gnu17
2014 C ObjC
2015 Conform to the ISO 2017 C standard with GNU extensions.
2017 std=gnu89
2018 C ObjC Alias(std=gnu90)
2019 Conform to the ISO 1990 C standard with GNU extensions.
2021 std=gnu90
2022 C ObjC
2023 Conform to the ISO 1990 C standard with GNU extensions.
2025 std=gnu99
2026 C ObjC
2027 Conform to the ISO 1999 C standard with GNU extensions.
2029 std=gnu9x
2030 C ObjC Alias(std=gnu99)
2031 Deprecated in favor of -std=gnu99.
2033 std=iso9899:1990
2034 C ObjC Alias(std=c90)
2035 Conform to the ISO 1990 C standard.
2037 std=iso9899:199409
2038 C ObjC
2039 Conform to the ISO 1990 C standard as amended in 1994.
2041 std=iso9899:1999
2042 C ObjC Alias(std=c99)
2043 Conform to the ISO 1999 C standard.
2045 std=iso9899:199x
2046 C ObjC Alias(std=c99)
2047 Deprecated in favor of -std=iso9899:1999.
2049 std=iso9899:2011
2050 C ObjC Alias(std=c11)
2051 Conform to the ISO 2011 C standard.
2053 std=iso9899:2017
2054 C ObjC Alias(std=c17)
2055 Conform to the ISO 2017 C standard.
2057 traditional
2058 Driver
2060 traditional-cpp
2061 C ObjC C++ ObjC++
2062 Enable traditional preprocessing.
2064 trigraphs
2065 C ObjC C++ ObjC++
2066 -trigraphs      Support ISO C trigraphs.
2068 undef
2069 C ObjC C++ ObjC++ Var(flag_undef)
2070 Do not predefine system-specific and GCC-specific macros.
2073 C ObjC C++ ObjC++
2074 ; Documented in common.opt
2077 C ObjC C++ ObjC++
2078 ; Documented in common.opt
2080 ; This comment is to ensure we retain the blank line above.