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