usr.sbin/makefs/hammer2: Remove redundant hammer2_inode_modify()
[dragonfly.git] / contrib / gcc-8.0 / gcc / c-family / c.opt
blobf591b39be5a0afa4a5cc71f52f070ba6ce9459b3
1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2018 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++ LTO ObjC++ Var(warn_alloc_size_limit) Warning Joined LangEnabledBy(C ObjC C++ LTO 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++ LTO ObjC++,Wall)
323 ; in common.opt
325 Warray-bounds=
326 LangEnabledBy(C ObjC C++ LTO 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-function-type
388 C ObjC C++ ObjC++ Var(warn_cast_function_type) Warning EnabledBy(Wextra)
389 Warn about casts between incompatible function types.
391 Wcast-qual
392 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
393 Warn about casts which discard qualifiers.
395 Wcatch-value
396 C++ ObjC++ Warning Alias(Wcatch-value=, 1, 0)
397 Warn about catch handlers of non-reference type.
399 Wcatch-value=
400 C++ ObjC++ Var(warn_catch_value) Warning Joined RejectNegative UInteger LangEnabledBy(C++ ObjC++,Wall, 1, 0) IntegerRange(0, 3)
401 Warn about catch handlers of non-reference type.
403 Wchar-subscripts
404 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
405 Warn about subscripts whose type is \"char\".
407 Wchkp
408 C ObjC C++ ObjC++ Var(warn_chkp) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
409 Warn about memory access errors found by Pointer Bounds Checker.
411 Wclobbered
412 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
413 Warn about variables that might be changed by \"longjmp\" or \"vfork\".
415 Wcomment
416 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
417 Warn about possibly nested block comments, and C++ comments spanning more than one physical line.
419 Wcomments
420 C ObjC C++ ObjC++ Warning Alias(Wcomment)
421 Synonym for -Wcomment.
423 Wconditionally-supported
424 C++ ObjC++ Var(warn_conditionally_supported) Warning
425 Warn for conditionally-supported constructs.
427 Wconversion
428 C ObjC C++ ObjC++ Var(warn_conversion) Warning
429 Warn for implicit type conversions that may change a value.
431 Wconversion-null
432 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
433 Warn for converting NULL from/to a non-pointer type.
435 Wcpp
436 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
437 ; Documented in common.opt
439 Wctor-dtor-privacy
440 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
441 Warn when all constructors and destructors are private.
443 Wdangling-else
444 C ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
445 Warn about dangling else.
447 Wdate-time
448 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
449 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
451 Wdeclaration-after-statement
452 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
453 Warn when a declaration is found after a statement.
455 Wdelete-incomplete
456 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
457 Warn when deleting a pointer to incomplete type.
459 Wdelete-non-virtual-dtor
460 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
461 Warn about deleting polymorphic objects with non-virtual destructors.
463 Wdeprecated
464 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
465 Warn if a deprecated compiler feature, class, method, or field is used.
467 Wdesignated-init
468 C ObjC Var(warn_designated_init) Init(1) Warning
469 Warn about positional initialization of structs requiring designated initializers.
471 Wdiscarded-array-qualifiers
472 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
473 Warn if qualifiers on arrays which are pointer targets are discarded.
475 Wdiscarded-qualifiers
476 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
477 Warn if type qualifiers on pointers are discarded.
479 Wdiv-by-zero
480 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
481 Warn about compile-time integer division by zero.
483 Wduplicated-branches
484 C ObjC C++ ObjC++ Var(warn_duplicated_branches) Init(0) Warning
485 Warn about duplicated branches in if-else statements.
487 Wduplicated-cond
488 C ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
489 Warn about duplicated conditions in an if-else-if chain.
491 Weffc++
492 C++ ObjC++ Var(warn_ecpp) Warning
493 Warn about violations of Effective C++ style rules.
495 Wempty-body
496 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
497 Warn about an empty body in an if or else statement.
499 Wendif-labels
500 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)
501 Warn about stray tokens after #else and #endif.
503 Wenum-compare
504 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
505 Warn about comparison of different enum types.
507 Werror
508 C ObjC C++ ObjC++
509 ; Documented in common.opt
511 Werror-implicit-function-declaration
512 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
513 This switch is deprecated; use -Werror=implicit-function-declaration instead.
515 Wextra
516 C ObjC C++ ObjC++ Warning
517 ; in common.opt
519 Wextra-semi
520 C++ ObjC++ Var(warn_extra_semi) Warning
521 Warn about semicolon after in-class function definition.
523 Wfloat-conversion
524 C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
525 Warn for implicit type conversions that cause loss of floating point precision.
527 Wfloat-equal
528 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
529 Warn if testing floating point numbers for equality.
531 Wformat
532 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
533 Warn about printf/scanf/strftime/strfmon format string anomalies.
535 Wformat-contains-nul
536 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
537 Warn about format strings that contain NUL bytes.
539 Wformat-extra-args
540 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
541 Warn if passing too many arguments to a function for its format string.
543 Wformat-nonliteral
544 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
545 Warn about format strings that are not literals.
547 Wformat-overflow
548 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-overflow=, 1, 0) IntegerRange(0, 2)
549 Warn about function calls with format strings that write past the end
550 of the destination region.  Same as -Wformat-overflow=1.
552 Wformat-security
553 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
554 Warn about possible security problems with format functions.
556 Wformat-signedness
557 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
558 Warn about sign differences with format functions.
560 Wformat-truncation
561 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-truncation=, 1, 0)
562 Warn about calls to snprintf and similar functions that truncate output.
563 Same as -Wformat-truncation=1.
565 Wformat-y2k
566 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
567 Warn about strftime formats yielding 2-digit years.
569 Wformat-zero-length
570 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
571 Warn about zero-length formats.
573 Wformat=
574 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
575 Warn about printf/scanf/strftime/strfmon format string anomalies.
577 Wformat-overflow=
578 C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_overflow) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
579 Warn about function calls with format strings that write past the end
580 of the destination region.
582 Wformat-truncation=
583 C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_trunc) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
584 Warn about calls to snprintf and similar functions that truncate output.
586 Wif-not-aligned
587 C ObjC C++ ObjC++ Var(warn_if_not_aligned) Init(1) Warning
588 Warn when the field in a struct is not aligned.
590 Wignored-qualifiers
591 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
592 Warn whenever type qualifiers are ignored.
594 Wignored-attributes
595 C C++ Var(warn_ignored_attributes) Init(1) Warning
596 Warn whenever attributes are ignored.
598 Wincompatible-pointer-types
599 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
600 Warn when there is a conversion between pointers that have incompatible types.
602 Winit-self
603 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
604 Warn about variables which are initialized to themselves.
606 Wimplicit
607 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
608 Warn about implicit declarations.
610 Wimplicit-fallthrough=
611 LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
612 ; in common.opt
614 Wdouble-promotion
615 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
616 Warn about implicit conversions from \"float\" to \"double\".
618 Wexpansion-to-defined
619 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)
620 Warn if \"defined\" is used outside #if.
622 Wimplicit-function-declaration
623 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
624 Warn about implicit function declarations.
626 Wimplicit-int
627 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
628 Warn when a declaration does not specify a type.
630 Wimport
631 C ObjC C++ ObjC++ Undocumented Ignore
633 Winherited-variadic-ctor
634 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
635 Warn about C++11 inheriting constructors when the base has a variadic constructor.
637 Wint-conversion
638 C ObjC Var(warn_int_conversion) Init(1) Warning
639 Warn about incompatible integer to pointer and pointer to integer conversions.
641 Wint-in-bool-context
642 C ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
643 Warn for suspicious integer expressions in boolean context.
645 Wint-to-pointer-cast
646 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
647 Warn when there is a cast to a pointer from an integer of a different size.
649 Winvalid-offsetof
650 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
651 Warn about invalid uses of the \"offsetof\" macro.
653 Winvalid-pch
654 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
655 Warn about PCH files that are found but not used.
657 Wjump-misses-init
658 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
659 Warn when a jump misses a variable initialization.
661 Wliteral-suffix
662 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
663 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
665 Wlogical-op
666 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
667 Warn when a logical operator is suspiciously always evaluating to true or false.
669 Wlogical-not-parentheses
670 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
671 Warn when logical not is used on the left hand side operand of a comparison.
673 Wlong-long
674 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)
675 Do not warn about using \"long long\" when -pedantic.
677 Wmain
678 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
679 Warn about suspicious declarations of \"main\".
681 Wmain
682 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
685 Wmemset-transposed-args
686 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
687 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
689 Wmemset-elt-size
690 C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
691 Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
693 Wmisleading-indentation
694 C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
695 Warn when the indentation of the code does not reflect the block structure.
697 Wmissing-braces
698 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
699 Warn about possibly missing braces around initializers.
701 Wmissing-declarations
702 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
703 Warn about global functions without previous declarations.
705 Wmissing-field-initializers
706 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
707 Warn about missing fields in struct initializers.
709 Wmultistatement-macros
710 C ObjC C++ ObjC++ Var(warn_multistatement_macros) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
711 Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
713 Wmultiple-inheritance
714 C++ ObjC++ Var(warn_multiple_inheritance) Warning
715 Warn on direct multiple inheritance.
717 Wnamespaces
718 C++ ObjC++ Var(warn_namespaces) Warning
719 Warn on namespace definition.
721 Wpacked-not-aligned
722 C ObjC C++ ObjC++ Var(warn_packed_not_aligned) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
723 Warn when fields in a struct with the packed attribute are misaligned.
725 Wsized-deallocation
726 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
727 Warn about missing sized deallocation functions.
729 Wsizeof-pointer-div
730 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
731 Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers.
733 Wsizeof-pointer-memaccess
734 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
735 Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
737 Wsizeof-array-argument
738 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
739 Warn when sizeof is applied on a parameter declared as an array.
741 Wstringop-overflow
742 C ObjC C++ LTO ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
743 Warn about buffer overflow in string manipulation functions like memcpy
744 and strcpy.
746 Wstringop-overflow=
747 C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall, 2, 0) IntegerRange(0, 4)
748 Under the control of Object Size type, warn about buffer overflow in string
749 manipulation functions like memcpy and strcpy.
751 Wstringop-truncation
752 C ObjC C++ LTO ObjC++ Var(warn_stringop_truncation) Warning Init (1) LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
753 Warn about truncation in string manipulation functions like strncat and strncpy.
755 Wsuggest-attribute=format
756 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
757 Warn about functions which might be candidates for format attributes.
759 Wsuggest-override
760 C++ ObjC++ Var(warn_override) Warning
761 Suggest that the override keyword be used when the declaration of a virtual
762 function overrides another.
764 Wswitch
765 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
766 Warn about enumerated switches, with no default, missing a case.
768 Wswitch-default
769 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
770 Warn about enumerated switches missing a \"default:\" statement.
772 Wswitch-enum
773 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
774 Warn about all enumerated switches missing a specific case.
776 Wswitch-bool
777 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
778 Warn about switches with boolean controlling expression.
780 Wtemplates
781 C++ ObjC++ Var(warn_templates) Warning
782 Warn on primary template declaration.
784 Wmissing-attributes
785 C ObjC C++ ObjC++ Var(warn_missing_attributes) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
786 Warn about declarations of entities that may be missing attributes
787 that related entities have been declared with it.
789 Wmissing-format-attribute
790 C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
793 Wmissing-include-dirs
794 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
795 Warn about user-specified include directories that do not exist.
797 Wmissing-parameter-type
798 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
799 Warn about function parameters declared without a type specifier in K&R-style functions.
801 Wmissing-prototypes
802 C ObjC Var(warn_missing_prototypes) Warning
803 Warn about global functions without prototypes.
805 Wmudflap
806 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
808 Wmultichar
809 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
810 Warn about use of multi-character character constants.
812 Wnarrowing
813 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
814 Warn about narrowing conversions within { } that are ill-formed in C++11.
816 Wnested-externs
817 C ObjC Var(warn_nested_externs) Warning
818 Warn about \"extern\" declarations not at file scope.
820 Wnoexcept
821 C++ ObjC++ Var(warn_noexcept) Warning
822 Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
824 Wnoexcept-type
825 C++ ObjC++ Warning Var(warn_noexcept_type) LangEnabledBy(C++ ObjC++,Wabi || Wc++17-compat)
826 Warn if C++17 noexcept function type will change the mangled name of a symbol.
828 Wnon-template-friend
829 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
830 Warn when non-templatized friend functions are declared within a template.
832 Wclass-memaccess
833 C++ ObjC++ Var(warn_class_memaccess) Warning LangEnabledBy(C++ ObjC++, Wall)
834 Warn for unsafe raw memory writes to objects of class types.
836 Wnon-virtual-dtor
837 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
838 Warn about non-virtual destructors.
840 Wnonnull
841 C ObjC C++ LTO ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=,warn_format >= 1,0)
842 Warn about NULL being passed to argument slots marked as requiring non-NULL.
844 Wnonnull
845 C ObjC C++ LTO ObjC++ LangEnabledBy(C ObjC C++ LTO ObjC++,Wall)
848 Wnonnull-compare
849 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
852 Wnormalized
853 C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
856 Wnormalized=
857 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)
858 -Wnormalized=[none|id|nfc|nfkc] Warn about non-normalized Unicode strings.
860 ; Required for these enum values.
861 SourceInclude
862 cpplib.h
864 Enum
865 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
867 EnumValue
868 Enum(cpp_normalize_level) String(none) Value(normalized_none)
870 EnumValue
871 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
873 EnumValue
874 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
876 EnumValue
877 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
879 Wold-style-cast
880 C++ ObjC++ Var(warn_old_style_cast) Warning
881 Warn if a C-style cast is used in a program.
883 Wold-style-declaration
884 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
885 Warn for obsolescent usage in a declaration.
887 Wold-style-definition
888 C ObjC Var(warn_old_style_definition) Warning
889 Warn if an old-style parameter definition is used.
891 Wopenmp-simd
892 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
893 Warn if a simd directive is overridden by the vectorizer cost model.
895 Woverlength-strings
896 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
897 Warn if a string is longer than the maximum portable length specified by the standard.
899 Woverloaded-virtual
900 C++ ObjC++ Var(warn_overloaded_virtual) Warning
901 Warn about overloaded virtual function names.
903 Woverride-init
904 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
905 Warn about overriding initializers without side effects.
907 Woverride-init-side-effects
908 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
909 Warn about overriding initializers with side effects.
911 Wpacked-bitfield-compat
912 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
913 Warn about packed bit-fields whose offset changed in GCC 4.4.
915 Wparentheses
916 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
917 Warn about possibly missing parentheses.
919 Wpedantic
920 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
921 ; Documented in common.opt
923 Wpmf-conversions
924 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
925 Warn when converting the type of pointers to member functions.
927 Wpointer-arith
928 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
929 Warn about function pointer arithmetic.
931 Wpointer-sign
932 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
933 Warn when a pointer differs in signedness in an assignment.
935 Wpointer-compare
936 C ObjC C++ ObjC++ Var(warn_pointer_compare) Init(1) Warning
937 Warn when a pointer is compared with a zero character constant.
939 Wpointer-to-int-cast
940 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
941 Warn when a pointer is cast to an integer of a different size.
943 Wpragmas
944 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
945 Warn about misuses of pragmas.
947 Wproperty-assign-default
948 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
949 Warn if a property for an Objective-C object has no assign semantics specified.
951 Wprotocol
952 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
953 Warn if inherited methods are unimplemented.
955 Wplacement-new
956 C++ Warning Alias(Wplacement-new=, 1, 0)
957 Warn for placement new expressions with undefined behavior.
959 Wplacement-new=
960 C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2)
961 Warn for placement new expressions with undefined behavior.
963 Wredundant-decls
964 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
965 Warn about multiple declarations of the same object.
967 Wregister
968 C++ ObjC++ Var(warn_register) Warning
969 Warn about uses of register storage specifier.
971 Wreorder
972 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
973 Warn when the compiler reorders code.
975 Wreturn-type
976 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) Init(-1)
977 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
979 Wscalar-storage-order
980 C ObjC C++ ObjC++ Init(1) Warning
981 Warn on suspicious constructs involving reverse scalar storage order.
983 Wselector
984 ObjC ObjC++ Var(warn_selector) Warning
985 Warn if a selector has multiple methods.
987 Wsequence-point
988 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
989 Warn about possible violations of sequence point rules.
991 Wshadow-ivar
992 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
993 Warn if a local declaration hides an instance variable.
995 Wshift-overflow
996 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
997 Warn if left shift of a signed value overflows.
999 Wshift-overflow=
1000 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning IntegerRange(0, 2)
1001 Warn if left shift of a signed value overflows.
1003 Wshift-count-negative
1004 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
1005 Warn if shift count is negative.
1007 Wshift-count-overflow
1008 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
1009 Warn if shift count >= width of type.
1011 Wshift-negative-value
1012 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
1013 Warn if left shifting a negative value.
1015 Wsign-compare
1016 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
1017 Warn about signed-unsigned comparisons.
1019 Wsign-compare
1020 C ObjC C++ ObjC++ EnabledBy(Wextra)
1023 Wsign-conversion
1024 C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
1025 Warn for implicit type conversions between signed and unsigned integers.
1027 Wsign-promo
1028 C++ ObjC++ Var(warn_sign_promo) Warning
1029 Warn when overload promotes from unsigned to signed.
1031 Wstrict-null-sentinel
1032 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
1033 Warn about uncasted NULL used as sentinel.
1035 Wstrict-prototypes
1036 C ObjC Var(warn_strict_prototypes) Warning
1037 Warn about unprototyped function declarations.
1039 Wstrict-aliasing=
1040 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0) IntegerRange(0, 3)
1043 Wstrict-overflow=
1044 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 5)
1047 Wstrict-selector-match
1048 ObjC ObjC++ Var(warn_strict_selector_match) Warning
1049 Warn if type signatures of candidate methods do not match exactly.
1051 Wsync-nand
1052 C C++ Var(warn_sync_nand) Init(1) Warning
1053 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
1055 Wsynth
1056 C++ ObjC++ Var(warn_synth) Warning
1057 Deprecated.  This switch has no effect.
1059 Wsystem-headers
1060 C ObjC C++ ObjC++ Warning
1061 ; Documented in common.opt
1063 Wtautological-compare
1064 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1065 Warn if a comparison always evaluates to true or false.
1067 Wterminate
1068 C++ ObjC++ Warning Var(warn_terminate) Init(1)
1069 Warn if a throw expression will always result in a call to terminate().
1071 Wtraditional
1072 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
1073 Warn about features not present in traditional C.
1075 Wtraditional-conversion
1076 C ObjC Var(warn_traditional_conversion) Warning
1077 Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
1079 Wtrigraphs
1080 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1081 Warn if trigraphs are encountered that might affect the meaning of the program.
1083 Wundeclared-selector
1084 ObjC ObjC++ Var(warn_undeclared_selector) Warning
1085 Warn about @selector()s without previously declared methods.
1087 Wundef
1088 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
1089 Warn if an undefined macro is used in an #if directive.
1091 Wuninitialized
1092 C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
1095 Wmaybe-uninitialized
1096 C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
1099 Wunknown-pragmas
1100 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
1101 Warn about unrecognized pragmas.
1103 Wunsuffixed-float-constants
1104 C ObjC Var(warn_unsuffixed_float_constants) Warning
1105 Warn about unsuffixed float constants.
1107 Wunused
1108 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1109 ; documented in common.opt
1111 Wunused-local-typedefs
1112 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
1113 Warn when typedefs locally defined in a function are not used.
1115 Wunused-macros
1116 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
1117 Warn about macros defined in the main file that are not used.
1119 Wunused-result
1120 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
1121 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
1123 Wunused-variable
1124 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
1125 ; documented in common.opt
1127 Wunused-const-variable
1128 C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
1129 Warn when a const variable is unused.
1131 Wunused-const-variable=
1132 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0) IntegerRange(0, 2)
1133 Warn when a const variable is unused.
1135 Wvariadic-macros
1136 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)
1137 Warn about using variadic macros.
1139 Wvarargs
1140 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
1141 Warn about questionable usage of the macros used to retrieve variable arguments.
1143 Wvla
1144 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
1145 Warn if a variable length array is used.
1147 Wvla-larger-than=
1148 C ObjC C++ ObjC++ Var(warn_vla_limit) Warning Joined RejectNegative UInteger
1149 -Wvla-larger-than=<number>      Warn on unbounded uses of variable-length arrays, and
1150 on bounded uses of variable-length arrays whose bound can be
1151 larger than <number> bytes.
1153 Wvolatile-register-var
1154 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1155 Warn when a register variable is declared volatile.
1157 Wvirtual-inheritance
1158 C++ ObjC++ Var(warn_virtual_inheritance) Warning
1159 Warn on direct virtual inheritance.
1161 Wvirtual-move-assign
1162 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
1163 Warn if a virtual base has a non-trivial move assignment operator.
1165 Wwrite-strings
1166 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
1167 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.
1169 Wzero-as-null-pointer-constant
1170 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
1171 Warn when a literal '0' is used as null pointer.
1173 Wuseless-cast
1174 C++ ObjC++ Var(warn_useless_cast) Warning
1175 Warn about useless casts.
1177 Wsubobject-linkage
1178 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
1179 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.
1181 Wduplicate-decl-specifier
1182 C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1183 Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1185 Wrestrict
1186 C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall)
1187 Warn when an argument passed to a restrict-qualified parameter aliases with
1188 another argument.
1190 ansi
1191 C ObjC C++ ObjC++
1192 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
1195 C ObjC C++ ObjC++ Joined
1196 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
1198 fabi-compat-version=
1199 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
1200 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
1202 faccess-control
1203 C++ ObjC++ Var(flag_access_control) Init(1)
1204 Enforce class member access control semantics.
1206 fada-spec-parent=
1207 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
1208 -fada-spec-parent=unit  Dump Ada specs as child units of given parent.
1210 faligned-new
1211 C++ ObjC++ Alias(faligned-new=,1,0)
1212 Support C++17 allocation of over-aligned types.
1214 faligned-new=
1215 C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
1216 -faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
1218 fall-virtual
1219 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1221 fallow-parameterless-variadic-functions
1222 C ObjC Var(flag_allow_parameterless_variadic_functions)
1223 Allow variadic functions without named parameter.
1225 falt-external-templates
1226 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1227 No longer supported.
1229 fasm
1230 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1231 Recognize the \"asm\" keyword.
1233 ; Define extra predefined macros for use in libgcc.
1234 fbuilding-libgcc
1235 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1237 fbuiltin
1238 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1239 Recognize built-in functions.
1241 fbuiltin-
1242 C ObjC C++ ObjC++ Joined
1244 fcanonical-system-headers
1245 C ObjC C++ ObjC++
1246 Where shorter, use canonicalized paths to systems headers.
1248 fcheck-pointer-bounds
1249 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
1250 Add Pointer Bounds Checker instrumentation.  fchkp-* flags are used to
1251 control instrumentation.  Currently available for C, C++ and ObjC.
1253 fchkp-check-incomplete-type
1254 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
1255 Generate pointer bounds checks for variables with incomplete type.
1257 fchkp-zero-input-bounds-for-main
1258 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
1259 Use zero bounds for all incoming arguments in 'main' function.  It helps when
1260 instrumented binaries are used with legacy libs.
1262 fchkp-first-field-has-own-bounds
1263 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
1264 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1265 field in the structure.  By default pointer to the first field has the same
1266 bounds as pointer to the whole structure.
1268 fchkp-narrow-bounds
1269 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
1270 Control how Pointer Bounds Checker handle pointers to object fields.  When
1271 narrowing is on, field bounds are used.  Otherwise full object bounds are used.
1273 fchkp-narrow-to-innermost-array
1274 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1275 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1276 nested static arrays access.  By default outermost array is used.
1278 fchkp-flexible-struct-trailing-arrays
1279 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_flexible_struct_trailing_arrays)
1280 Forces Pointer Bounds Checker to treat all trailing arrays in structures as
1281 possibly flexible.  By default only arrays fields with zero length or that are
1282 marked with attribute bnd_variable_size are treated as flexible.
1284 fchkp-optimize
1285 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1286 Allow Pointer Bounds Checker optimizations.  By default allowed
1287 on optimization levels >0.
1289 fchkp-use-fast-string-functions
1290 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1291 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1293 fchkp-use-nochk-string-functions
1294 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1295 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1297 fchkp-use-static-bounds
1298 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1299 Use statically initialized variable for vars bounds instead of
1300 generating them each time it is required.
1302 fchkp-use-static-const-bounds
1303 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1304 Use statically initialized variable for constant bounds instead of
1305 generating them each time it is required.
1307 fchkp-treat-zero-dynamic-size-as-infinite
1308 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1309 With this option zero size obtained dynamically for objects with
1310 incomplete type will be treated as infinite.
1312 fchkp-check-read
1313 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1314 Generate checks for all read accesses to memory.
1316 fchkp-check-write
1317 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1318 Generate checks for all write accesses to memory.
1320 fchkp-store-bounds
1321 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1322 Generate bounds stores for pointer writes.
1324 fchkp-instrument-calls
1325 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1326 Generate bounds passing for calls.
1328 fchkp-instrument-marked-only
1329 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1330 Instrument only functions marked with bnd_instrument attribute.
1332 fchkp-use-wrappers
1333 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1334 Transform instrumented builtin calls into calls to wrappers.
1336 static-libmpx
1337 Driver
1339 static-libmpxwrappers
1340 Driver
1342 fcilkplus
1343 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0) Undocumented
1344 Deprecated in GCC 8.  This switch has no effect.
1346 fconcepts
1347 C++ ObjC++ Var(flag_concepts)
1348 Enable support for C++ concepts.
1350 fcond-mismatch
1351 C ObjC C++ ObjC++
1352 Allow the arguments of the '?' operator to have different types.
1354 fconserve-space
1355 C++ ObjC++ Var(flag_conserve_space)
1356 Does nothing.  Preserved for backward compatibility.
1358 fconstant-string-class=
1359 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1360 -fconst-string-class=<name>     Use class <name> for constant strings.
1362 fconstexpr-depth=
1363 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1364 -fconstexpr-depth=<number>      Specify maximum constexpr recursion depth.
1366 fconstexpr-loop-limit=
1367 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1368 -fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1370 fdebug-cpp
1371 C ObjC C++ ObjC++
1372 Emit debug annotations during preprocessing.
1374 fdeduce-init-list
1375 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1376 -fdeduce-init-list      enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
1378 fdeclone-ctor-dtor
1379 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1380 Factor complex constructors and destructors to favor space over speed.
1382 fdefault-inline
1383 C++ ObjC++ Ignore
1384 Does nothing.  Preserved for backward compatibility.
1386 fdiagnostics-show-template-tree
1387 C++ ObjC++ Var(flag_diagnostics_show_template_tree) Init(0)
1388 Print hierarchical comparisons when template types are mismatched.
1390 fdirectives-only
1391 C ObjC C++ ObjC++
1392 Preprocess directives only.
1394 fdollars-in-identifiers
1395 C ObjC C++ ObjC++
1396 Permit '$' as an identifier character.
1398 fmacro-prefix-map=
1399 C ObjC C++ ObjC++ Joined RejectNegative
1400 -fmacro-prefix-map=<old>=<new> Map one directory name to another in __FILE__, __BASE_FILE__, and __builtin_FILE().
1402 fdump-ada-spec
1403 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1404 Write all declarations as Ada code transitively.
1406 fdump-ada-spec-slim
1407 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1408 Write all declarations as Ada code for the given file only.
1410 felide-constructors
1411 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1413 felide-type
1414 C++ ObjC++ Var(flag_elide_type) Init(1)
1415 -fno-elide-type Do not elide common elements in template comparisons.
1417 fenforce-eh-specs
1418 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1419 Generate code to check exception specifications.
1421 fenum-int-equiv
1422 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1424 fexec-charset=
1425 C ObjC C++ ObjC++ Joined RejectNegative
1426 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>.
1428 fextended-identifiers
1429 C ObjC C++ ObjC++
1430 Permit universal character names (\\u and \\U) in identifiers.
1432 finput-charset=
1433 C ObjC C++ ObjC++ Joined RejectNegative
1434 -finput-charset=<cset>  Specify the default character set for source files.
1436 fextern-tls-init
1437 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1438 Support dynamic initialization of thread-local variables in a different translation unit.
1440 fexternal-templates
1441 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1443 ffor-scope
1444 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1445 Scope of for-init-statement variables is local to the loop.
1447 ffreestanding
1448 C ObjC C++ ObjC++
1449 Do not assume that standard C libraries and \"main\" exist.
1451 fgnu-keywords
1452 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1453 Recognize GNU-defined keywords.
1455 fgnu-runtime
1456 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1457 Generate code for GNU runtime environment.
1459 fgnu89-inline
1460 C ObjC Var(flag_gnu89_inline) Init(-1)
1461 Use traditional GNU semantics for inline functions.
1463 fguiding-decls
1464 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1466 fhandle-exceptions
1467 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1469 fhonor-std
1470 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1472 fhosted
1473 C ObjC
1474 Assume normal C execution environment.
1476 fhuge-objects
1477 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1478 No longer supported.
1480 fimplement-inlines
1481 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1482 Export functions even if they can be inlined.
1484 fimplicit-inline-templates
1485 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1486 Emit implicit instantiations of inline templates.
1488 fimplicit-templates
1489 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1490 Emit implicit instantiations of templates.
1492 fnew-inheriting-ctors
1493 C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
1494 Implement C++17 inheriting constructor semantics.
1496 ffriend-injection
1497 C++ ObjC++ Var(flag_friend_injection)
1498 Inject friend functions into enclosing namespace.
1500 fkeep-inline-dllexport
1501 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1502 Don't emit dllexported inline functions unless needed.
1504 flabels-ok
1505 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1507 flax-vector-conversions
1508 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1509 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1511 fms-extensions
1512 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1513 Don't warn about uses of Microsoft extensions.
1515 fmudflap
1516 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1518 fmudflapth
1519 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1521 fmudflapir
1522 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1524 fname-mangling-version-
1525 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1527 fnew-abi
1528 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1530 fnew-ttp-matching
1531 C++ ObjC++ Var(flag_new_ttp)
1532 Implement resolution of DR 150 for matching of template template arguments.
1534 fnext-runtime
1535 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1536 Generate code for NeXT (Apple Mac OS X) runtime environment.
1538 fnil-receivers
1539 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1540 Assume that receivers of Objective-C messages may be nil.
1542 flocal-ivars
1543 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1544 Allow access to instance variables as if they were local declarations within instance method implementations.
1546 fivar-visibility=
1547 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1548 -fvisibility=[private|protected|public|package] Set the default symbol visibility.
1550 Enum
1551 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1553 EnumValue
1554 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1556 EnumValue
1557 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1559 EnumValue
1560 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1562 EnumValue
1563 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1565 fnonansi-builtins
1566 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1568 fnonnull-objects
1569 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1571 fnothrow-opt
1572 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1573 Treat a throw() exception specification as noexcept to improve code size.
1575 fobjc-abi-version=
1576 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1577 Specify which ABI to use for Objective-C family code and meta-data generation.
1579 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1580 ; to initialize any non-POD ivars in Objective-C++ classes.
1581 fobjc-call-cxx-cdtors
1582 ObjC++ Var(flag_objc_call_cxx_cdtors)
1583 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
1585 fobjc-direct-dispatch
1586 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1587 Allow fast jumps to the message dispatcher.
1589 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1590 ; @try, etc.) in source code.
1591 fobjc-exceptions
1592 ObjC ObjC++ Var(flag_objc_exceptions)
1593 Enable Objective-C exception and synchronization syntax.
1595 fobjc-gc
1596 ObjC ObjC++ LTO Var(flag_objc_gc)
1597 Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
1599 fobjc-nilcheck
1600 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1601 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1603 ; Nonzero means that we generate NeXT setjmp based exceptions.
1604 fobjc-sjlj-exceptions
1605 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1606 Enable Objective-C setjmp exception handling runtime.
1608 fobjc-std=objc1
1609 ObjC ObjC++ Var(flag_objc1_only)
1610 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
1612 fopenacc
1613 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1614 Enable OpenACC.
1616 fopenacc-dim=
1617 C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1618 Specify default OpenACC compute dimensions.
1620 fopenmp
1621 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1622 Enable OpenMP (implies -frecursive in Fortran).
1624 fopenmp-simd
1625 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1626 Enable OpenMP's SIMD directives.
1628 foperator-names
1629 C++ ObjC++
1630 Recognize C++ keywords like \"compl\" and \"xor\".
1632 foptional-diags
1633 C++ ObjC++ Ignore
1634 Does nothing.  Preserved for backward compatibility.
1636 fpch-deps
1637 C ObjC C++ ObjC++
1639 fpch-preprocess
1640 C ObjC C++ ObjC++
1641 Look for and use PCH files even when preprocessing.
1643 fpermissive
1644 C++ ObjC++ Var(flag_permissive)
1645 Downgrade conformance errors to warnings.
1647 fplan9-extensions
1648 C ObjC Var(flag_plan9_extensions)
1649 Enable Plan 9 language extensions.
1651 fpreprocessed
1652 C ObjC C++ ObjC++
1653 Treat the input file as already preprocessed.
1655 ftrack-macro-expansion
1656 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1657 ; converted into ftrack-macro-expansion=
1659 ftrack-macro-expansion=
1660 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1661 -ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages.
1663 fpretty-templates
1664 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1665 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
1667 fprintf-return-value
1668 C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
1669 Treat known sprintf return values as constants.
1671 freplace-objc-classes
1672 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1673 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
1675 frepo
1676 C++ ObjC++
1677 Enable automatic template instantiation.
1679 frtti
1680 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1681 Generate run time type descriptor information.
1683 fshort-enums
1684 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1685 Use the narrowest integer type possible for enumeration types.
1687 fshort-wchar
1688 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1689 Force the underlying type for \"wchar_t\" to be \"unsigned short\".
1691 fsigned-bitfields
1692 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1693 When \"signed\" or \"unsigned\" is not given make the bitfield signed.
1695 fsigned-char
1696 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1697 Make \"char\" signed by default.
1699 fsized-deallocation
1700 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1701 Enable C++14 sized deallocation support.
1703 fsquangle
1704 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1706 fsso-struct=
1707 C ObjC Joined RejectNegative Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1708 -fsso-struct=[big-endian|little-endian|native]  Set the default scalar storage order.
1710 Enum
1711 Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1713 EnumValue
1714 Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1716 EnumValue
1717 Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1719 EnumValue
1720 Enum(sso_struct) String(native) Value(SSO_NATIVE)
1722 fstats
1723 C++ ObjC++ Var(flag_detailed_statistics)
1724 Display statistics accumulated during compilation.
1726 fstrict-enums
1727 C++ ObjC++ Optimization Var(flag_strict_enums)
1728 Assume that values of enumeration type are always within the minimum range of that type.
1730 fstrict-prototype
1731 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1733 fstrong-eval-order
1734 C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
1735 Follow the C++17 evaluation order requirements for assignment expressions,
1736 shift, member function calls, etc.
1738 fstrong-eval-order=
1739 C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) RejectNegative Init(-1)
1740 Follow the C++17 evaluation order requirements for assignment expressions,
1741 shift, member function calls, etc.
1743 Enum
1744 Name(strong_eval_order) Type(int)
1746 EnumValue
1747 Enum(strong_eval_order) String(none) Value(0)
1749 EnumValue
1750 Enum(strong_eval_order) String(some) Value(1)
1752 EnumValue
1753 Enum(strong_eval_order) String(all) Value(2)
1755 ftabstop=
1756 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1757 -ftabstop=<number>      Distance between tab stops for column reporting.
1759 ftemplate-backtrace-limit=
1760 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1761 Set the maximum number of template instantiation notes for a single warning or error.
1763 ftemplate-depth-
1764 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1766 ftemplate-depth=
1767 C++ ObjC++ Joined RejectNegative UInteger
1768 -ftemplate-depth=<number>       Specify maximum template instantiation depth.
1770 fthis-is-variable
1771 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1773 fthreadsafe-statics
1774 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1775 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
1777 funsigned-bitfields
1778 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1779 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
1781 funsigned-char
1782 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1783 Make \"char\" unsigned by default.
1785 fuse-cxa-atexit
1786 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1787 Use __cxa_atexit to register destructors.
1789 fuse-cxa-get-exception-ptr
1790 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1791 Use __cxa_get_exception_ptr in exception handling.
1793 fvisibility-inlines-hidden
1794 C++ ObjC++
1795 Marks all inlined functions and methods as having hidden visibility.
1797 fvisibility-ms-compat
1798 C++ ObjC++ Var(flag_visibility_ms_compat)
1799 Changes visibility to match Microsoft Visual Studio by default.
1801 fvtable-gc
1802 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1803 No longer supported.
1805 fvtable-thunks
1806 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1807 No longer supported.
1809 fweak
1810 C++ ObjC++ Var(flag_weak) Init(1)
1811 Emit common-like symbols as weak symbols.
1813 fwide-exec-charset=
1814 C ObjC C++ ObjC++ Joined RejectNegative
1815 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>.
1817 fworking-directory
1818 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1819 Generate a #line directive pointing at the current working directory.
1821 fxref
1822 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1823 No longer supported.
1825 fzero-link
1826 ObjC ObjC++ Var(flag_zero_link)
1827 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
1829 gen-decls
1830 ObjC ObjC++ Driver Var(flag_gen_declaration) RejectNegative
1831 Dump declarations to a .decl file.
1833 femit-struct-debug-baseonly
1834 C ObjC C++ ObjC++
1835 -femit-struct-debug-baseonly    Aggressive reduced debug info for structs.
1837 femit-struct-debug-reduced
1838 C ObjC C++ ObjC++
1839 -femit-struct-debug-reduced     Conservative reduced debug info for structs.
1841 femit-struct-debug-detailed=
1842 C ObjC C++ ObjC++ Joined
1843 -femit-struct-debug-detailed=<spec-list>        Detailed reduced debug info for structs.
1845 fext-numeric-literals
1846 C++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
1847 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1848 number literal rather than a user-defined number literal.
1850 idirafter
1851 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1852 -idirafter <dir>        Add <dir> to the end of the system include path.
1854 imacros
1855 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1856 -imacros <file> Accept definition of macros in <file>.
1858 imultilib
1859 C ObjC C++ ObjC++ Joined Separate
1860 -imultilib <dir>        Set <dir> to be the multilib include subdirectory.
1862 include
1863 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1864 -include <file> Include the contents of <file> before other files.
1866 iprefix
1867 C ObjC C++ ObjC++ Joined Separate
1868 -iprefix <path> Specify <path> as a prefix for next two options.
1870 isysroot
1871 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1872 -isysroot <dir> Set <dir> to be the system root directory.
1874 isystem
1875 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1876 -isystem <dir>  Add <dir> to the start of the system include path.
1878 iquote
1879 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1880 -iquote <dir>   Add <dir> to the end of the quote include path.
1882 iwithprefix
1883 C ObjC C++ ObjC++ Joined Separate
1884 -iwithprefix <dir>      Add <dir> to the end of the system include path.
1886 iwithprefixbefore
1887 C ObjC C++ ObjC++ Joined Separate
1888 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path.
1890 lang-asm
1891 C Undocumented RejectDriver
1893 no-integrated-cpp
1894 Driver
1896 nostdinc
1897 C ObjC C++ ObjC++
1898 Do not search standard system include directories (those specified with -isystem will still be used).
1900 nostdinc++
1901 C++ ObjC++
1902 Do not search standard system include directories for C++.
1905 C ObjC C++ ObjC++ Joined Separate
1906 ; Documented in common.opt
1908 pedantic
1909 C ObjC C++ ObjC++ Alias(Wpedantic)
1910 ; Documented in common.opt
1912 print-objc-runtime-info
1913 ObjC ObjC++
1914 Generate C header of platform-specific features.
1916 remap
1917 C ObjC C++ ObjC++
1918 Remap file names when including files.
1920 std=c++98
1921 C++ ObjC++
1922 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1924 std=c++03
1925 C++ ObjC++ Alias(std=c++98)
1926 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1928 std=c++11
1929 C++ ObjC++
1930 Conform to the ISO 2011 C++ standard.
1932 std=c++0x
1933 C++ ObjC++ Alias(std=c++11) Undocumented
1934 Deprecated in favor of -std=c++11.
1936 std=c++1y
1937 C++ ObjC++ Alias(std=c++14) Undocumented
1938 Deprecated in favor of -std=c++14.
1940 std=c++14
1941 C++ ObjC++
1942 Conform to the ISO 2014 C++ standard.
1944 std=c++1z
1945 C++ ObjC++ Alias(std=c++17) Undocumented
1946 Deprecated in favor of -std=c++17.
1948 std=c++17
1949 C++ ObjC++
1950 Conform to the ISO 2017 C++ standard.
1952 std=c++2a
1953 C++ ObjC++
1954 Conform to the ISO 2020(?) C++ draft standard (experimental and incomplete support).
1956 std=c11
1957 C ObjC
1958 Conform to the ISO 2011 C standard.
1960 std=c1x
1961 C ObjC Alias(std=c11)
1962 Deprecated in favor of -std=c11.
1964 std=c17
1965 C ObjC
1966 Conform to the ISO 2017 C standard (expected to be published in 2018).
1968 std=c18
1969 C ObjC Alias(std=c17)
1970 Conform to the ISO 2017 C standard (expected to be published in 2018).
1972 std=c89
1973 C ObjC Alias(std=c90)
1974 Conform to the ISO 1990 C standard.
1976 std=c90
1977 C ObjC
1978 Conform to the ISO 1990 C standard.
1980 std=c99
1981 C ObjC
1982 Conform to the ISO 1999 C standard.
1984 std=c9x
1985 C ObjC Alias(std=c99)
1986 Deprecated in favor of -std=c99.
1988 std=gnu++98
1989 C++ ObjC++
1990 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1991 corrigendum with GNU extensions.
1993 std=gnu++03
1994 C++ ObjC++ Alias(std=gnu++98)
1995 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1996 corrigendum with GNU extensions.
1998 std=gnu++11
1999 C++ ObjC++
2000 Conform to the ISO 2011 C++ standard with GNU extensions.
2002 std=gnu++0x
2003 C++ ObjC++ Alias(std=gnu++11) Undocumented
2004 Deprecated in favor of -std=gnu++11.
2006 std=gnu++1y
2007 C++ ObjC++ Alias(std=gnu++14) Undocumented
2008 Deprecated in favor of -std=gnu++14.
2010 std=gnu++14
2011 C++ ObjC++
2012 Conform to the ISO 2014 C++ standard with GNU extensions.
2014 std=gnu++1z
2015 C++ ObjC++ Alias(std=gnu++17) Undocumented
2016 Deprecated in favor of -std=gnu++17.
2018 std=gnu++17
2019 C++ ObjC++
2020 Conform to the ISO 2017 C++ standard with GNU extensions.
2022 std=gnu++2a
2023 C++ ObjC++
2024 Conform to the ISO 2020(?) C++ draft standard with GNU extensions (experimental and incomplete support).
2026 std=gnu11
2027 C ObjC
2028 Conform to the ISO 2011 C standard with GNU extensions.
2030 std=gnu1x
2031 C ObjC Alias(std=gnu11)
2032 Deprecated in favor of -std=gnu11.
2034 std=gnu17
2035 C ObjC
2036 Conform to the ISO 2017 C standard (expected to be published in 2018) with GNU extensions.
2038 std=gnu18
2039 C ObjC Alias(std=gnu17)
2040 Conform to the ISO 2017 C standard (expected to be published in 2018) with GNU extensions.
2042 std=gnu89
2043 C ObjC Alias(std=gnu90)
2044 Conform to the ISO 1990 C standard with GNU extensions.
2046 std=gnu90
2047 C ObjC
2048 Conform to the ISO 1990 C standard with GNU extensions.
2050 std=gnu99
2051 C ObjC
2052 Conform to the ISO 1999 C standard with GNU extensions.
2054 std=gnu9x
2055 C ObjC Alias(std=gnu99)
2056 Deprecated in favor of -std=gnu99.
2058 std=iso9899:1990
2059 C ObjC Alias(std=c90)
2060 Conform to the ISO 1990 C standard.
2062 std=iso9899:199409
2063 C ObjC
2064 Conform to the ISO 1990 C standard as amended in 1994.
2066 std=iso9899:1999
2067 C ObjC Alias(std=c99)
2068 Conform to the ISO 1999 C standard.
2070 std=iso9899:199x
2071 C ObjC Alias(std=c99)
2072 Deprecated in favor of -std=iso9899:1999.
2074 std=iso9899:2011
2075 C ObjC Alias(std=c11)
2076 Conform to the ISO 2011 C standard.
2078 std=iso9899:2017
2079 C ObjC Alias(std=c17)
2080 Conform to the ISO 2017 C standard (expected to be published in 2018).
2082 std=iso9899:2018
2083 C ObjC Alias(std=c17)
2084 Conform to the ISO 2017 C standard (expected to be published in 2018).
2086 traditional
2087 Driver
2089 traditional-cpp
2090 C ObjC C++ ObjC++
2091 Enable traditional preprocessing.
2093 trigraphs
2094 C ObjC C++ ObjC++
2095 -trigraphs      Support ISO C trigraphs.
2097 undef
2098 C ObjC C++ ObjC++ Var(flag_undef)
2099 Do not predefine system-specific and GCC-specific macros.
2102 C ObjC C++ ObjC++
2103 ; Documented in common.opt
2106 C ObjC C++ ObjC++
2107 ; Documented in common.opt
2109 ; This comment is to ensure we retain the blank line above.