svn merge -r 219183:219425 svn+ssh://gcc.gnu.org/svn/gcc/trunk
[official-gcc.git] / gcc / c-family / c.opt
blob85c49186d399ed611ecea5795eacc2073ca44063
1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2015 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
204 C ObjC C++ ObjC++
205 Print the name of header files as they are used
208 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
209 -I <dir>        Add <dir> to the end of the main include path
212 C ObjC C++ ObjC++
213 Generate make dependencies
216 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
217 Generate make dependencies and compile
220 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
221 -MF <file>      Write dependency output to the given file
224 C ObjC C++ ObjC++
225 Treat missing header files as generated files
228 C ObjC C++ ObjC++
229 Like -M but ignore system header files
232 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
233 Like -MD but ignore system header files
236 C ObjC C++ ObjC++
237 Generate phony targets for all headers
240 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
241 -MQ <target>    Add a MAKE-quoted target
244 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
245 -MT <target>    Add an unquoted target
248 C ObjC C++ ObjC++
249 Do not generate #line directives
252 C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
253 -U<macro>       Undefine <macro>
255 Wabi
256 C ObjC C++ ObjC++ LTO Var(warn_abi) Warning
257 Warn about things that will change when compiling with an ABI-compliant compiler
259 Wabi=
260 C ObjC C++ ObjC++ LTO Joined RejectNegative UInteger Warning
261 Warn about things that change between the current -fabi-version and the specified version
263 Wabi-tag
264 C++ ObjC++ Var(warn_abi_tag) Warning
265 Warn if a subobject has an abi_tag attribute that the complete object type does not have
267 Wpsabi
268 C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Undocumented LangEnabledBy(C ObjC C++ ObjC++,Wabi)
270 Waddress
271 C ObjC C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
272 Warn about suspicious uses of memory addresses
274 Wall
275 C ObjC C++ ObjC++ Warning
276 Enable most warning messages
278 Warray-bounds
279 LangEnabledBy(C ObjC C++ ObjC++,Wall)
280 ; in common.opt
282 Wassign-intercept
283 ObjC ObjC++ Var(warn_assign_intercept) Warning
284 Warn whenever an Objective-C assignment is being intercepted by the garbage collector
286 Wbad-function-cast
287 C ObjC Var(warn_bad_function_cast) Warning
288 Warn about casting functions to incompatible types
290 Wbool-compare
291 C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
292 Warn about boolean expression compared with an integer value different from true/false
294 Wbuiltin-macro-redefined
295 C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
296 Warn when a built-in preprocessor macro is undefined or redefined
298 Wc90-c99-compat
299 C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
300 Warn about features not present in ISO C90, but present in ISO C99
302 Wc99-c11-compat
303 C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
304 Warn about features not present in ISO C99, but present in ISO C11
306 Wc++-compat
307 C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
308 Warn about C constructs that are not in the common subset of C and C++
310 Wc++0x-compat
311 C++ ObjC++ Var(warn_cxx0x_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
312 Deprecated in favor of -Wc++11-compat
314 Wc++11-compat
315 C++ ObjC++ Warning Alias(Wc++0x-compat)
316 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011
318 Wc++14-compat
319 C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
320 Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014
322 Wcast-qual
323 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
324 Warn about casts which discard qualifiers
326 Wchar-subscripts
327 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
328 Warn about subscripts whose type is \"char\"
330 Wchkp
331 C ObjC C++ ObjC++ Var(warn_chkp) Warning EnabledBy(Wall)
332 Warn about memory access errors found by Pointer Bounds Checker
334 Wclobbered
335 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
336 Warn about variables that might be changed by \"longjmp\" or \"vfork\"
338 Wcomment
339 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
340 Warn about possibly nested block comments, and C++ comments spanning more than one physical line
342 Wcomments
343 C ObjC C++ ObjC++ Warning Alias(Wcomment)
344 Synonym for -Wcomment
346 Wconditionally-supported
347 C++ ObjC++ Var(warn_conditionally_supported) Warning
348 Warn for conditionally-supported constructs
350 Wconversion
351 C ObjC C++ ObjC++ Var(warn_conversion) Warning
352 Warn for implicit type conversions that may change a value
354 Wconversion-null
355 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
356 Warn for converting NULL from/to a non-pointer type
358 Wcpp
359 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
360 ; Documented in common.opt
362 Wctor-dtor-privacy
363 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
364 Warn when all constructors and destructors are private
366 Wdate-time
367 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
368 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage
370 Wdeclaration-after-statement
371 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
372 Warn when a declaration is found after a statement
374 Wdelete-incomplete
375 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
376 Warn when deleting a pointer to incomplete type
378 Wdelete-non-virtual-dtor
379 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
380 Warn about deleting polymorphic objects with non-virtual destructors
382 Wdeprecated
383 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
384 Warn if a deprecated compiler feature, class, method, or field is used
386 Wdesignated-init
387 C ObjC Var(warn_designated_init) Init(1) Warning
388 Warn about positional initialization of structs requiring designated initializers
390 Wdiscarded-array-qualifiers
391 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
392 Warn if qualifiers on arrays which are pointer targets are discarded
394 Wdiscarded-qualifiers
395 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
396 Warn if type qualifiers on pointers are discarded
398 Wdiv-by-zero
399 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
400 Warn about compile-time integer division by zero
402 Weffc++
403 C++ ObjC++ Var(warn_ecpp) Warning
404 Warn about violations of Effective C++ style rules
406 Wempty-body
407 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
408 Warn about an empty body in an if or else statement
410 Wendif-labels
411 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)
412 Warn about stray tokens after #elif and #endif
414 Wenum-compare
415 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
416 Warn about comparison of different enum types
418 Werror
419 C ObjC C++ ObjC++
420 ; Documented in common.opt
422 Werror-implicit-function-declaration
423 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
424 This switch is deprecated; use -Werror=implicit-function-declaration instead
426 Wfloat-conversion
427 C ObjC C++ ObjC++ Var(warn_float_conversion) LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
428 Warn for implicit type conversions that cause loss of floating point precision
430 Wfloat-equal
431 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
432 Warn if testing floating point numbers for equality
434 Wformat
435 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
436 Warn about printf/scanf/strftime/strfmon format string anomalies
438 Wformat-contains-nul
439 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
440 Warn about format strings that contain NUL bytes
442 Wformat-extra-args
443 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
444 Warn if passing too many arguments to a function for its format string
446 Wformat-nonliteral
447 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
448 Warn about format strings that are not literals
450 Wformat-security
451 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
452 Warn about possible security problems with format functions
454 Wformat-signedness
455 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
456 Warn about sign differences with format functions
458 Wformat-y2k
459 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
460 Warn about strftime formats yielding 2-digit years
462 Wformat-zero-length
463 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
464 Warn about zero-length formats
466 Wformat=
467 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
468 Warn about printf/scanf/strftime/strfmon format string anomalies
470 Wignored-qualifiers
471 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
472 Warn whenever type qualifiers are ignored.
474 Wincompatible-pointer-types
475 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
476 Warn when there is a conversion between pointers that have incompatible types
478 Winit-self
479 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
480 Warn about variables which are initialized to themselves
482 Wimplicit
483 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
484 Warn about implicit declarations
486 Wdouble-promotion
487 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
488 Warn about implicit conversions from \"float\" to \"double\"
490 Wimplicit-function-declaration
491 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
492 Warn about implicit function declarations
494 Wimplicit-int
495 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
496 Warn when a declaration does not specify a type
498 Wimport
499 C ObjC C++ ObjC++ Undocumented Ignore
501 Winherited-variadic-ctor
502 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
503 Warn about C++11 inheriting constructors when the base has a variadic constructor
505 Wint-conversion
506 C ObjC Var(warn_int_conversion) Init(1) Warning
507 Warn about incompatible integer to pointer and pointer to integer conversions
509 Wint-to-pointer-cast
510 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
511 Warn when there is a cast to a pointer from an integer of a different size
513 Winvalid-offsetof
514 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
515 Warn about invalid uses of the \"offsetof\" macro
517 Winvalid-pch
518 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
519 Warn about PCH files that are found but not used
521 Wjump-misses-init
522 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
523 Warn when a jump misses a variable initialization
525 Wliteral-suffix
526 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
527 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
529 Wlogical-op
530 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning 
531 Warn when a logical operator is suspiciously always evaluating to true or false
533 Wlogical-not-parentheses
534 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
535 Warn when logical not is used on the left hand side operand of a comparison
537 Wlong-long
538 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)
539 Do not warn about using \"long long\" when -pedantic
541 Wmain
542 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
543 Warn about suspicious declarations of \"main\"
545 Wmain
546 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
549 Wmemset-transposed-args
550 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
551 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not
553 Wmissing-braces
554 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
555 Warn about possibly missing braces around initializers
557 Wmissing-declarations
558 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
559 Warn about global functions without previous declarations
561 Wmissing-field-initializers
562 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
563 Warn about missing fields in struct initializers
565 Wsized-deallocation
566 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
567 Warn about missing sized deallocation functions
569 Wsizeof-pointer-memaccess
570 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
571 Warn about suspicious length parameters to certain string functions if the argument uses sizeof
573 Wsizeof-array-argument
574 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
575 Warn when sizeof is applied on a parameter declared as an array
577 Wsuggest-attribute=format
578 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
579 Warn about functions which might be candidates for format attributes
581 Wsuggest-override
582 C++ ObjC++ Var(warn_override) Warning
583 Suggest that the override keyword be used when the declaration of a virtual
584 function overrides another.
586 Wswitch
587 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
588 Warn about enumerated switches, with no default, missing a case
590 Wswitch-default
591 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
592 Warn about enumerated switches missing a \"default:\" statement
594 Wswitch-enum
595 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
596 Warn about all enumerated switches missing a specific case
598 Wswitch-bool
599 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
600 Warn about switches with boolean controlling expression
602 Wmissing-format-attribute
603 C ObjC C++ ObjC++ Alias(Wsuggest-attribute=format)
606 Wmissing-include-dirs
607 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
608 Warn about user-specified include directories that do not exist
610 Wmissing-parameter-type
611 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
612 Warn about function parameters declared without a type specifier in K&R-style functions
614 Wmissing-prototypes
615 C ObjC Var(warn_missing_prototypes) Warning
616 Warn about global functions without prototypes
618 Wmudflap
619 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
621 Wmultichar
622 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
623 Warn about use of multi-character character constants
625 Wnarrowing
626 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++0x-compat)
627 Warn about narrowing conversions within { } that are ill-formed in C++11
629 Wnested-externs
630 C ObjC Var(warn_nested_externs) Warning
631 Warn about \"extern\" declarations not at file scope
633 Wnoexcept
634 C++ ObjC++ Var(warn_noexcept) Warning
635 Warn when a noexcept expression evaluates to false even though the expression can't actually throw
637 Wnon-template-friend
638 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
639 Warn when non-templatized friend functions are declared within a template
641 Wnon-virtual-dtor
642 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
643 Warn about non-virtual destructors
645 Wnonnull
646 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
647 Warn about NULL being passed to argument slots marked as requiring non-NULL
649 Wnonnull
650 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
653 Wnormalized
654 C ObjC C++ ObjC++ Alias(Wnormalized=,nfc,none)
657 Wnormalized=
658 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)
659 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings
661 ; Required for these enum values.
662 SourceInclude
663 cpplib.h
665 Enum
666 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
668 EnumValue
669 Enum(cpp_normalize_level) String(none) Value(normalized_none)
671 EnumValue
672 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
674 EnumValue
675 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
677 EnumValue
678 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
680 Wold-style-cast
681 C++ ObjC++ Var(warn_old_style_cast) Warning
682 Warn if a C-style cast is used in a program
684 Wold-style-declaration
685 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
686 Warn for obsolescent usage in a declaration
688 Wold-style-definition
689 C ObjC Var(warn_old_style_definition) Warning
690 Warn if an old-style parameter definition is used
692 Wopenmp-simd
693 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
694 Warn if a simd directive is overridden by the vectorizer cost model
696 Woverlength-strings
697 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
698 Warn if a string is longer than the maximum portable length specified by the standard
700 Woverloaded-virtual
701 C++ ObjC++ Var(warn_overloaded_virtual) Warning
702 Warn about overloaded virtual function names
704 Woverride-init
705 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
706 Warn about overriding initializers without side effects
708 Wpacked-bitfield-compat
709 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
710 Warn about packed bit-fields whose offset changed in GCC 4.4
712 Wparentheses
713 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
714 Warn about possibly missing parentheses
716 Wpedantic
717 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
718 ; Documented in common.opt
720 Wpmf-conversions
721 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
722 Warn when converting the type of pointers to member functions
724 Wpointer-arith
725 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
726 Warn about function pointer arithmetic
728 Wpointer-sign
729 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
730 Warn when a pointer differs in signedness in an assignment
732 Wpointer-to-int-cast
733 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
734 Warn when a pointer is cast to an integer of a different size
736 Wpragmas
737 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
738 Warn about misuses of pragmas
740 Wproperty-assign-default
741 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
742 Warn if a property for an Objective-C object has no assign semantics specified
744 Wprotocol
745 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
746 Warn if inherited methods are unimplemented
748 Wredundant-decls
749 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
750 Warn about multiple declarations of the same object
752 Wreorder
753 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
754 Warn when the compiler reorders code
756 Wreturn-type
757 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
758 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
760 Wselector
761 ObjC ObjC++ Var(warn_selector) Warning
762 Warn if a selector has multiple methods
764 Wsequence-point
765 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
766 Warn about possible violations of sequence point rules
768 Wshadow-ivar
769 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
770 Warn if a local declaration hides an instance variable
772 Wshift-count-negative
773 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
774 Warn if shift count is negative
776 Wshift-count-overflow
777 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
778 Warn if shift count >= width of type
780 Wsign-compare
781 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
782 Warn about signed-unsigned comparisons
784 Wsign-compare
785 C ObjC C++ ObjC++ EnabledBy(Wextra)
788 Wsign-conversion
789 C ObjC C++ ObjC++ Var(warn_sign_conversion) LangEnabledBy(C ObjC,Wconversion)
790 Warn for implicit type conversions between signed and unsigned integers
792 Wsign-promo
793 C++ ObjC++ Var(warn_sign_promo) Warning
794 Warn when overload promotes from unsigned to signed
796 Wstrict-null-sentinel
797 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
798 Warn about uncasted NULL used as sentinel
800 Wstrict-prototypes
801 C ObjC Var(warn_strict_prototypes) Warning
802 Warn about unprototyped function declarations
804 Wstrict-aliasing=
805 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
808 Wstrict-overflow=
809 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
812 Wstrict-selector-match
813 ObjC ObjC++ Var(warn_strict_selector_match) Warning
814 Warn if type signatures of candidate methods do not match exactly
816 Wsync-nand
817 C C++ Var(warn_sync_nand) Init(1) Warning
818 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used
820 Wsynth
821 C++ ObjC++ Var(warn_synth) Warning
822 Deprecated.  This switch has no effect
824 Wsystem-headers
825 C ObjC C++ ObjC++ Warning
826 ; Documented in common.opt
828 Wtraditional
829 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
830 Warn about features not present in traditional C
832 Wtraditional-conversion
833 C ObjC Var(warn_traditional_conversion) Warning
834 Warn of prototypes causing type conversions different from what would happen in the absence of prototype
836 Wtrigraphs
837 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
838 Warn if trigraphs are encountered that might affect the meaning of the program
840 Wundeclared-selector
841 ObjC ObjC++ Var(warn_undeclared_selector) Warning
842 Warn about @selector()s without previously declared methods
844 Wundef
845 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
846 Warn if an undefined macro is used in an #if directive
848 Wuninitialized
849 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
852 Wmaybe-uninitialized
853 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
856 Wunknown-pragmas
857 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
858 Warn about unrecognized pragmas
860 Wunsuffixed-float-constants
861 C ObjC Var(warn_unsuffixed_float_constants) Warning
862 Warn about unsuffixed float constants
864 Wunused
865 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
866 ; documented in common.opt
868 Wunused-local-typedefs
869 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
870 Warn when typedefs locally defined in a function are not used
872 Wunused-macros
873 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
874 Warn about macros defined in the main file that are not used
876 Wunused-result
877 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
878 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
880 Wvariadic-macros
881 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)
882 Warn about using variadic macros
884 Wvarargs
885 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
886 Warn about questionable usage of the macros used to retrieve variable arguments
888 Wvla
889 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
890 Warn if a variable length array is used
892 Wvolatile-register-var
893 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
894 Warn when a register variable is declared volatile
896 Wvirtual-move-assign
897 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
898 Warn if a virtual base has a non-trivial move assignment operator
900 Wwrite-strings
901 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
902 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.
904 Wzero-as-null-pointer-constant
905 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
906 Warn when a literal '0' is used as null pointer
908 Wuseless-cast
909 C++ ObjC++ Var(warn_useless_cast) Warning
910 Warn about useless casts
912 ansi
913 C ObjC C++ ObjC++
914 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
917 C ObjC C++ ObjC++ Joined
918 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
920 fabi-compat-version=
921 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
922 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases
924 faccess-control
925 C++ ObjC++ Var(flag_access_control) Init(1)
926 Enforce class member access control semantics
928 fada-spec-parent=
929 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
930 -fada-spec-parent=unit  Dump Ada specs as child units of given parent
932 fall-virtual
933 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
935 fallow-parameterless-variadic-functions
936 C ObjC Var(flag_allow_parameterless_variadic_functions)
937 Allow variadic functions without named parameter
939 falt-external-templates
940 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
941 No longer supported
943 fasm
944 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
945 Recognize the \"asm\" keyword
947 ; Define extra predefined macros for use in libgcc.
948 fbuilding-libgcc
949 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
951 fbuiltin
952 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
953 Recognize built-in functions
955 fbuiltin-
956 C ObjC C++ ObjC++ Joined
958 fcanonical-system-headers
959 C ObjC C++ ObjC++
960 Where shorter, use canonicalized paths to systems headers.
962 fcheck-pointer-bounds
963 Common Report Var(flag_check_pointer_bounds)
964 Add Pointer Bounds Checker instrumentation.  fchkp-* flags are used to
965 control instrumentation.  Currently available for C, C++ and ObjC.
967 fchkp-check-incomplete-type
968 C ObjC C++ ObjC++ Report Var(flag_chkp_incomplete_type) Init(1)
969 Generate pointer bounds checks for variables with incomplete type
971 fchkp-zero-input-bounds-for-main
972 C ObjC C++ ObjC++ Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
973 Use zero bounds for all incoming arguments in 'main' function.  It helps when
974 instrumented binaries are used with legacy libs.
976 fchkp-first-field-has-own-bounds
977 C ObjC C++ ObjC++ RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
978 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
979 field in the structure.  By default pointer to the first field has the same
980 bounds as pointer to the whole structure.
982 fchkp-narrow-bounds
983 C ObjC C++ ObjC++ Report Var(flag_chkp_narrow_bounds) Init(1)
984 Control how Pointer Bounds Checker handle pointers to object fields.  When
985 narrowing is on, field bounds are used.  Otherwise full object bounds are used.
987 fchkp-narrow-to-innermost-array
988 C ObjC C++ ObjC++ RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
989 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
990 nested static arryas access.  By default outermost array is used.
992 fchkp-optimize
993 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
994 Allow Pointer Bounds Checker optimizations.  By default allowed
995 on optimization levels >0.
997 fchkp-use-fast-string-functions
998 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
999 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1001 fchkp-use-nochk-string-functions
1002 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1003 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1005 fchkp-use-static-bounds
1006 C ObjC C++ ObjC++ Report Var(flag_chkp_use_static_bounds) Init(1)
1007 Use statically initialized variable for vars bounds instead of
1008 generating them each time it is required.
1010 fchkp-use-static-const-bounds
1011 C ObjC C++ ObjC++ Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1012 Use statically initialized variable for constant bounds instead of
1013 generating them each time it is required.
1015 fchkp-treat-zero-dynamic-size-as-infinite
1016 C ObjC C++ ObjC++ Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1017 With this option zero size obtained dynamically for objects with
1018 incomplete type will be treated as infinite.
1020 fchkp-check-read
1021 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1022 Generate checks for all read accesses to memory.
1024 fchkp-check-write
1025 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1026 Generate checks for all write accesses to memory.
1028 fchkp-store-bounds
1029 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1030 Generate bounds stores for pointer writes.
1032 fchkp-instrument-calls
1033 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1034 Generate bounds passing for calls.
1036 fchkp-instrument-marked-only
1037 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1038 Instrument only functions marked with bnd_instrument attribute.
1040 fcilkplus
1041 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1042 Enable Cilk Plus
1044 fcond-mismatch
1045 C ObjC C++ ObjC++
1046 Allow the arguments of the '?' operator to have different types
1048 fconserve-space
1049 C++ ObjC++ Var(flag_conserve_space)
1050 Does nothing.  Preserved for backward compatibility.
1052 fconstant-string-class=
1053 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1054 -fconst-string-class=<name>     Use class <name> for constant strings
1056 fconstexpr-depth=
1057 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1058 -fconstexpr-depth=<number>      Specify maximum constexpr recursion depth
1060 fdebug-cpp
1061 C ObjC C++ ObjC++
1062 Emit debug annotations during preprocessing
1064 fdeduce-init-list
1065 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1066 -fdeduce-init-list      enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
1068 fdeclone-ctor-dtor
1069 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1070 Factor complex constructors and destructors to favor space over speed
1072 fdefault-inline
1073 C++ ObjC++ Ignore
1074 Does nothing.  Preserved for backward compatibility.
1076 fdirectives-only
1077 C ObjC C++ ObjC++
1078 Preprocess directives only.
1080 fdollars-in-identifiers
1081 C ObjC C++ ObjC++
1082 Permit '$' as an identifier character
1084 fdump-ada-spec
1085 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1086 Write all declarations as Ada code transitively
1088 fdump-ada-spec-slim
1089 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1090 Write all declarations as Ada code for the given file only
1092 felide-constructors
1093 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1095 fenforce-eh-specs
1096 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1097 Generate code to check exception specifications
1099 fenum-int-equiv
1100 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1102 fexec-charset=
1103 C ObjC C++ ObjC++ Joined RejectNegative
1104 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>
1106 fextended-identifiers
1107 C ObjC C++ ObjC++
1108 Permit universal character names (\\u and \\U) in identifiers
1110 finput-charset=
1111 C ObjC C++ ObjC++ Joined RejectNegative
1112 -finput-charset=<cset>  Specify the default character set for source files
1114 fextern-tls-init
1115 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1116 Support dynamic initialization of thread-local variables in a different translation unit
1118 fexternal-templates
1119 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1121 ffor-scope
1122 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1123 Scope of for-init-statement variables is local to the loop
1125 ffreestanding
1126 C ObjC C++ ObjC++
1127 Do not assume that standard C libraries and \"main\" exist
1129 fgnu-keywords
1130 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1131 Recognize GNU-defined keywords
1133 fgnu-runtime
1134 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1135 Generate code for GNU runtime environment
1137 fgnu89-inline
1138 C ObjC Var(flag_gnu89_inline) Init(-1)
1139 Use traditional GNU semantics for inline functions
1141 fguiding-decls
1142 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1144 fhandle-exceptions
1145 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1147 fhonor-std
1148 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1150 fhosted
1151 C ObjC
1152 Assume normal C execution environment
1154 fhuge-objects
1155 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1156 No longer supported
1158 fimplement-inlines
1159 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1160 Export functions even if they can be inlined
1162 fimplicit-inline-templates
1163 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1164 Emit implicit instantiations of inline templates
1166 fimplicit-templates
1167 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1168 Emit implicit instantiations of templates
1170 ffriend-injection
1171 C++ ObjC++ Var(flag_friend_injection)
1172 Inject friend functions into enclosing namespace
1174 fkeep-inline-dllexport
1175 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1176 Don't emit dllexported inline functions unless needed
1178 flabels-ok
1179 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1181 flax-vector-conversions
1182 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1183 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1185 fms-extensions
1186 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1187 Don't warn about uses of Microsoft extensions
1189 fmudflap
1190 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1192 fmudflapth
1193 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1195 fmudflapir
1196 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1198 fname-mangling-version-
1199 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1201 fnew-abi
1202 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1204 fnext-runtime
1205 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1206 Generate code for NeXT (Apple Mac OS X) runtime environment
1208 fnil-receivers
1209 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1210 Assume that receivers of Objective-C messages may be nil
1212 flocal-ivars
1213 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1214 Allow access to instance variables as if they were local declarations within instance method implementations.
1216 fivar-visibility=
1217 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1218 -fvisibility=[private|protected|public|package] Set the default symbol visibility
1220 Enum
1221 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1223 EnumValue
1224 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1226 EnumValue
1227 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1229 EnumValue
1230 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1232 EnumValue
1233 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1235 fnonansi-builtins
1236 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1238 fnonnull-objects
1239 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1241 fnothrow-opt
1242 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1243 Treat a throw() exception specification as noexcept to improve code size
1245 fobjc-abi-version=
1246 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1247 Specify which ABI to use for Objective-C family code and meta-data generation.
1249 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1250 ; to initialize any non-POD ivars in Objective-C++ classes.
1251 fobjc-call-cxx-cdtors
1252 ObjC++ Var(flag_objc_call_cxx_cdtors)
1253 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
1255 fobjc-direct-dispatch
1256 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1257 Allow fast jumps to the message dispatcher
1259 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1260 ; @try, etc.) in source code.
1261 fobjc-exceptions
1262 ObjC ObjC++ Var(flag_objc_exceptions)
1263 Enable Objective-C exception and synchronization syntax
1265 fobjc-gc
1266 ObjC ObjC++ LTO Var(flag_objc_gc)
1267 Enable garbage collection (GC) in Objective-C/Objective-C++ programs
1269 fobjc-nilcheck
1270 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1271 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1273 ; Nonzero means that we generate NeXT setjmp based exceptions.
1274 fobjc-sjlj-exceptions
1275 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1276 Enable Objective-C setjmp exception handling runtime
1278 fobjc-std=objc1
1279 ObjC ObjC++ Var(flag_objc1_only)
1280 Conform to the Objective-C 1.0 language as implemented in GCC 4.0
1282 fopenacc
1283 C ObjC C++ ObjC++ Var(flag_openacc)
1284 Enable OpenACC
1286 fopenmp
1287 C ObjC C++ ObjC++ Var(flag_openmp)
1288 Enable OpenMP (implies -frecursive in Fortran)
1290 fopenmp-simd
1291 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1292 Enable OpenMP's SIMD directives
1294 foperator-names
1295 C++ ObjC++
1296 Recognize C++ keywords like \"compl\" and \"xor\"
1298 foptional-diags
1299 C++ ObjC++ Ignore
1300 Does nothing.  Preserved for backward compatibility.
1302 fpch-deps
1303 C ObjC C++ ObjC++
1305 fpch-preprocess
1306 C ObjC C++ ObjC++
1307 Look for and use PCH files even when preprocessing
1309 fpermissive
1310 C++ ObjC++ Var(flag_permissive)
1311 Downgrade conformance errors to warnings
1313 fplan9-extensions
1314 C ObjC Var(flag_plan9_extensions)
1315 Enable Plan 9 language extensions
1317 fpreprocessed
1318 C ObjC C++ ObjC++
1319 Treat the input file as already preprocessed
1321 ftrack-macro-expansion
1322 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1323 ; converted into ftrack-macro-expansion=
1325 ftrack-macro-expansion=
1326 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1327 -ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages
1329 fpretty-templates
1330 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1331 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
1333 freplace-objc-classes
1334 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1335 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
1337 frepo
1338 C++ ObjC++
1339 Enable automatic template instantiation
1341 frtti
1342 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1343 Generate run time type descriptor information
1345 fshort-double
1346 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
1347 Use the same size for double as for float
1349 fshort-enums
1350 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1351 Use the narrowest integer type possible for enumeration types
1353 fshort-wchar
1354 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1355 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
1357 fsigned-bitfields
1358 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1359 When \"signed\" or \"unsigned\" is not given make the bitfield signed
1361 fsigned-char
1362 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1363 Make \"char\" signed by default
1365 fsized-deallocation
1366 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1367 Enable C++14 sized deallocation support
1369 fsquangle
1370 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1372 fstats
1373 C++ ObjC++ Var(flag_detailed_statistics)
1374 Display statistics accumulated during compilation
1376 fstrict-enums
1377 C++ ObjC++ Optimization Var(flag_strict_enums)
1378 Assume that values of enumeration type are always within the minimum range of that type
1380 fstrict-prototype
1381 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1383 ftabstop=
1384 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1385 -ftabstop=<number>      Distance between tab stops for column reporting
1387 ftemplate-backtrace-limit=
1388 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1389 Set the maximum number of template instantiation notes for a single warning or error
1391 ftemplate-depth-
1392 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1394 ftemplate-depth=
1395 C++ ObjC++ Joined RejectNegative UInteger
1396 -ftemplate-depth=<number>       Specify maximum template instantiation depth
1398 fthis-is-variable
1399 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1401 fthreadsafe-statics
1402 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1403 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
1405 funsigned-bitfields
1406 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1407 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
1409 funsigned-char
1410 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1411 Make \"char\" unsigned by default
1413 fuse-cxa-atexit
1414 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1415 Use __cxa_atexit to register destructors
1417 fuse-cxa-get-exception-ptr
1418 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1419 Use __cxa_get_exception_ptr in exception handling
1421 fvisibility-inlines-hidden
1422 C++ ObjC++
1423 Marks all inlined functions and methods as having hidden visibility
1425 fvisibility-ms-compat
1426 C++ ObjC++ Var(flag_visibility_ms_compat)
1427 Changes visibility to match Microsoft Visual Studio by default
1429 fvtable-gc
1430 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1431 No longer supported
1433 fvtable-thunks
1434 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1435 No longer supported
1437 fweak
1438 C++ ObjC++ Var(flag_weak) Init(1)
1439 Emit common-like symbols as weak symbols
1441 fwide-exec-charset=
1442 C ObjC C++ ObjC++ Joined RejectNegative
1443 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>
1445 fworking-directory
1446 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1447 Generate a #line directive pointing at the current working directory
1449 fxref
1450 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1451 No longer supported
1453 fzero-link
1454 ObjC ObjC++ Var(flag_zero_link)
1455 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
1457 gen-decls
1458 ObjC ObjC++ Var(flag_gen_declaration)
1459 Dump declarations to a .decl file
1461 femit-struct-debug-baseonly
1462 C ObjC C++ ObjC++
1463 -femit-struct-debug-baseonly    Aggressive reduced debug info for structs
1465 femit-struct-debug-reduced
1466 C ObjC C++ ObjC++
1467 -femit-struct-debug-reduced     Conservative reduced debug info for structs
1469 femit-struct-debug-detailed=
1470 C ObjC C++ ObjC++ Joined
1471 -femit-struct-debug-detailed=<spec-list>        Detailed reduced debug info for structs
1473 fext-numeric-literals
1474 C++ ObjC++ 
1475 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1476 number literal rather than a user-defined number literal.
1478 idirafter
1479 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1480 -idirafter <dir>        Add <dir> to the end of the system include path
1482 imacros
1483 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1484 -imacros <file> Accept definition of macros in <file>
1486 imultilib
1487 C ObjC C++ ObjC++ Joined Separate
1488 -imultilib <dir>        Set <dir> to be the multilib include subdirectory
1490 include
1491 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1492 -include <file> Include the contents of <file> before other files
1494 iprefix
1495 C ObjC C++ ObjC++ Joined Separate
1496 -iprefix <path> Specify <path> as a prefix for next two options
1498 isysroot
1499 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1500 -isysroot <dir> Set <dir> to be the system root directory
1502 isystem
1503 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1504 -isystem <dir>  Add <dir> to the start of the system include path
1506 iquote
1507 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1508 -iquote <dir>   Add <dir> to the end of the quote include path
1510 iwithprefix
1511 C ObjC C++ ObjC++ Joined Separate
1512 -iwithprefix <dir>      Add <dir> to the end of the system include path
1514 iwithprefixbefore
1515 C ObjC C++ ObjC++ Joined Separate
1516 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path
1518 lang-asm
1519 C Undocumented RejectDriver
1521 no-integrated-cpp
1522 Driver
1524 nostdinc
1525 C ObjC C++ ObjC++
1526 Do not search standard system include directories (those specified with -isystem will still be used)
1528 nostdinc++
1529 C++ ObjC++
1530 Do not search standard system include directories for C++
1533 C ObjC C++ ObjC++ Joined Separate
1534 ; Documented in common.opt
1536 pedantic
1537 C ObjC C++ ObjC++ Alias(Wpedantic)
1538 ; Documented in common.opt
1540 print-objc-runtime-info
1541 ObjC ObjC++
1542 Generate C header of platform-specific features
1544 remap
1545 C ObjC C++ ObjC++
1546 Remap file names when including files
1548 std=c++98
1549 C++ ObjC++
1550 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1552 std=c++03
1553 C++ ObjC++ Alias(std=c++98)
1554 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1556 std=c++11
1557 C++ ObjC++
1558 Conform to the ISO 2011 C++ standard
1560 std=c++0x
1561 C++ ObjC++ Alias(std=c++11) Undocumented
1562 Deprecated in favor of -std=c++11
1564 std=c++1y
1565 C++ ObjC++ Alias(std=c++14) Undocumented
1566 Deprecated in favor of -std=c++14
1568 std=c++14
1569 C++ ObjC++ Undocumented
1570 Conform to the ISO 2014 C++ standard (experimental and incomplete support)
1572 std=c++1z
1573 C++ ObjC++
1574 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support)
1576 std=c++17
1577 C++ ObjC++ Alias(std=c++1z) Undocumented
1579 std=c11
1580 C ObjC
1581 Conform to the ISO 2011 C standard (experimental and incomplete support)
1583 std=c1x
1584 C ObjC Alias(std=c11)
1585 Deprecated in favor of -std=c11
1587 std=c89
1588 C ObjC Alias(std=c90)
1589 Conform to the ISO 1990 C standard
1591 std=c90
1592 C ObjC
1593 Conform to the ISO 1990 C standard
1595 std=c99
1596 C ObjC
1597 Conform to the ISO 1999 C standard
1599 std=c9x
1600 C ObjC Alias(std=c99)
1601 Deprecated in favor of -std=c99
1603 std=gnu++98
1604 C++ ObjC++
1605 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1606 corrigendum with GNU extensions
1608 std=gnu++03
1609 C++ ObjC++ Alias(std=gnu++98)
1610 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1611 corrigendum with GNU extensions
1613 std=gnu++11
1614 C++ ObjC++
1615 Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)
1617 std=gnu++0x
1618 C++ ObjC++ Alias(std=gnu++11)
1619 Deprecated in favor of -std=gnu++11
1621 std=gnu++1y
1622 C++ ObjC++ Alias(std=gnu++14) Undocumented
1624 std=gnu++14
1625 C++ ObjC++
1626 Conform to the ISO 2014 C++ standard with GNU extensions (experimental and incomplete support)
1628 std=gnu++1z
1629 C++ ObjC++
1630 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support)
1632 std=gnu++17
1633 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1635 std=gnu11
1636 C ObjC
1637 Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)
1639 std=gnu1x
1640 C ObjC Alias(std=gnu11)
1641 Deprecated in favor of -std=gnu11
1643 std=gnu89
1644 C ObjC Alias(std=gnu90)
1645 Conform to the ISO 1990 C standard with GNU extensions
1647 std=gnu90
1648 C ObjC
1649 Conform to the ISO 1990 C standard with GNU extensions
1651 std=gnu99
1652 C ObjC
1653 Conform to the ISO 1999 C standard with GNU extensions
1655 std=gnu9x
1656 C ObjC Alias(std=gnu99)
1657 Deprecated in favor of -std=gnu99
1659 std=iso9899:1990
1660 C ObjC Alias(std=c90)
1661 Conform to the ISO 1990 C standard
1663 std=iso9899:199409
1664 C ObjC
1665 Conform to the ISO 1990 C standard as amended in 1994
1667 std=iso9899:1999
1668 C ObjC Alias(std=c99)
1669 Conform to the ISO 1999 C standard
1671 std=iso9899:199x
1672 C ObjC Alias(std=c99)
1673 Deprecated in favor of -std=iso9899:1999
1675 std=iso9899:2011
1676 C ObjC Alias(std=c11)
1677 Conform to the ISO 2011 C standard (experimental and incomplete support)
1679 traditional
1680 Driver
1682 traditional-cpp
1683 C ObjC C++ ObjC++
1684 Enable traditional preprocessing
1686 trigraphs
1687 C ObjC C++ ObjC++
1688 -trigraphs      Support ISO C trigraphs
1690 undef
1691 C ObjC C++ ObjC++ Var(flag_undef)
1692 Do not predefine system-specific and GCC-specific macros
1695 C ObjC C++ ObjC++
1696 ; Documented in common.opt
1699 C ObjC C++ ObjC++
1700 ; Documented in common.opt
1702 ; This comment is to ensure we retain the blank line above.