* gcc.dg/store-motion-fgcse-sm.c (dg-final): Cleanup
[official-gcc.git] / gcc / c-family / c.opt
blob85dcb98b6a635cc5985333f025f5020aed3f4ce3
1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2014 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 Wcast-qual
319 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
320 Warn about casts which discard qualifiers
322 Wchar-subscripts
323 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
324 Warn about subscripts whose type is \"char\"
326 Wchkp
327 C ObjC C++ ObjC++ Var(warn_chkp) Warning EnabledBy(Wall)
328 Warn about memory access errors found by Pointer Bounds Checker
330 Wclobbered
331 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
332 Warn about variables that might be changed by \"longjmp\" or \"vfork\"
334 Wcomment
335 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
336 Warn about possibly nested block comments, and C++ comments spanning more than one physical line
338 Wcomments
339 C ObjC C++ ObjC++ Warning Alias(Wcomment)
340 Synonym for -Wcomment
342 Wconditionally-supported
343 C++ ObjC++ Var(warn_conditionally_supported) Warning
344 Warn for conditionally-supported constructs
346 Wconversion
347 C ObjC C++ ObjC++ Var(warn_conversion) Warning
348 Warn for implicit type conversions that may change a value
350 Wconversion-null
351 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
352 Warn for converting NULL from/to a non-pointer type
354 Wcpp
355 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
356 ; Documented in common.opt
358 Wctor-dtor-privacy
359 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
360 Warn when all constructors and destructors are private
362 Wdate-time
363 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
364 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage
366 Wdeclaration-after-statement
367 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
368 Warn when a declaration is found after a statement
370 Wdelete-incomplete
371 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
372 Warn when deleting a pointer to incomplete type
374 Wdelete-non-virtual-dtor
375 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall)
376 Warn about deleting polymorphic objects with non-virtual destructors
378 Wdelete-non-virtual-dtor
379 LangEnabledBy(C++ ObjC++,Weffc++)
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-qualifiers
391 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
392 Warn if type qualifiers on pointers are discarded
394 Wdiv-by-zero
395 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
396 Warn about compile-time integer division by zero
398 Weffc++
399 C++ ObjC++ Var(warn_ecpp) Warning
400 Warn about violations of Effective C++ style rules
402 Wempty-body
403 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
404 Warn about an empty body in an if or else statement
406 Wendif-labels
407 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)
408 Warn about stray tokens after #elif and #endif
410 Wenum-compare
411 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall)
412 Warn about comparison of different enum types
414 Wenum-compare
415 LangEnabledBy(C ObjC,Wc++-compat)
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 Wsizeof-pointer-memaccess
566 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
567 Warn about suspicious length parameters to certain string functions if the argument uses sizeof
569 Wsizeof-array-argument
570 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
571 Warn when sizeof is applied on a parameter declared as an array
573 Wsuggest-attribute=format
574 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
575 Warn about functions which might be candidates for format attributes
577 Wswitch
578 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
579 Warn about enumerated switches, with no default, missing a case
581 Wswitch-default
582 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
583 Warn about enumerated switches missing a \"default:\" statement
585 Wswitch-enum
586 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
587 Warn about all enumerated switches missing a specific case
589 Wswitch-bool
590 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
591 Warn about switches with boolean controlling expression
593 Wmissing-format-attribute
594 C ObjC C++ ObjC++ Alias(Wsuggest-attribute=format)
597 Wmissing-include-dirs
598 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
599 Warn about user-specified include directories that do not exist
601 Wmissing-parameter-type
602 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
603 Warn about function parameters declared without a type specifier in K&R-style functions
605 Wmissing-prototypes
606 C ObjC Var(warn_missing_prototypes) Warning
607 Warn about global functions without prototypes
609 Wmudflap
610 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
612 Wmultichar
613 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
614 Warn about use of multi-character character constants
616 Wnarrowing
617 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall)
618 Warn about narrowing conversions within { } that are ill-formed in C++11
620 Wnarrowing
621 C ObjC C++ ObjC++ LangEnabledBy(C++ ObjC++,Wc++0x-compat)
624 Wnested-externs
625 C ObjC Var(warn_nested_externs) Warning
626 Warn about \"extern\" declarations not at file scope
628 Wnoexcept
629 C++ ObjC++ Var(warn_noexcept) Warning
630 Warn when a noexcept expression evaluates to false even though the expression can't actually throw
632 Wnon-template-friend
633 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
634 Warn when non-templatized friend functions are declared within a template
636 Wnon-virtual-dtor
637 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
638 Warn about non-virtual destructors
640 Wnonnull
641 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
642 Warn about NULL being passed to argument slots marked as requiring non-NULL
644 Wnonnull
645 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
648 Wnormalized
649 C ObjC C++ ObjC++ Alias(Wnormalized=,nfc,none)
652 Wnormalized=
653 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)
654 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings
656 ; Required for these enum values.
657 SourceInclude
658 cpplib.h
660 Enum
661 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
663 EnumValue
664 Enum(cpp_normalize_level) String(none) Value(normalized_none)
666 EnumValue
667 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
669 EnumValue
670 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
672 EnumValue
673 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
675 Wold-style-cast
676 C++ ObjC++ Var(warn_old_style_cast) Warning
677 Warn if a C-style cast is used in a program
679 Wold-style-declaration
680 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
681 Warn for obsolescent usage in a declaration
683 Wold-style-definition
684 C ObjC Var(warn_old_style_definition) Warning
685 Warn if an old-style parameter definition is used
687 Wopenmp-simd
688 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
689 Warn if a simd directive is overridden by the vectorizer cost model
691 Woverlength-strings
692 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
693 Warn if a string is longer than the maximum portable length specified by the standard
695 Woverloaded-virtual
696 C++ ObjC++ Var(warn_overloaded_virtual) Warning
697 Warn about overloaded virtual function names
699 Woverride-init
700 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
701 Warn about overriding initializers without side effects
703 Wpacked-bitfield-compat
704 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
705 Warn about packed bit-fields whose offset changed in GCC 4.4
707 Wparentheses
708 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
709 Warn about possibly missing parentheses
711 Wpedantic
712 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
713 ; Documented in common.opt
715 Wpmf-conversions
716 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
717 Warn when converting the type of pointers to member functions
719 Wpointer-arith
720 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
721 Warn about function pointer arithmetic
723 Wpointer-sign
724 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall)
725 Warn when a pointer differs in signedness in an assignment
727 Wpointer-sign
728 C ObjC LangEnabledBy(C ObjC,Wpedantic)
731 Wpointer-to-int-cast
732 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
733 Warn when a pointer is cast to an integer of a different size
735 Wpragmas
736 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
737 Warn about misuses of pragmas
739 Wproperty-assign-default
740 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
741 Warn if a property for an Objective-C object has no assign semantics specified
743 Wprotocol
744 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
745 Warn if inherited methods are unimplemented
747 Wredundant-decls
748 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
749 Warn about multiple declarations of the same object
751 Wreorder
752 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
753 Warn when the compiler reorders code
755 Wreturn-type
756 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
757 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
759 Wselector
760 ObjC ObjC++ Var(warn_selector) Warning
761 Warn if a selector has multiple methods
763 Wsequence-point
764 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
765 Warn about possible violations of sequence point rules
767 Wshadow-ivar
768 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
769 Warn if a local declaration hides an instance variable
771 Wshift-count-negative
772 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
773 Warn if shift count is negative
775 Wshift-count-overflow
776 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
777 Warn if shift count >= width of type
779 Wsign-compare
780 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
781 Warn about signed-unsigned comparisons
783 Wsign-compare
784 C ObjC C++ ObjC++ EnabledBy(Wextra)
787 Wsign-conversion
788 C ObjC C++ ObjC++ Var(warn_sign_conversion) LangEnabledBy(C ObjC,Wconversion)
789 Warn for implicit type conversions between signed and unsigned integers
791 Wsign-promo
792 C++ ObjC++ Var(warn_sign_promo) Warning
793 Warn when overload promotes from unsigned to signed
795 Wstrict-null-sentinel
796 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
797 Warn about uncasted NULL used as sentinel
799 Wstrict-prototypes
800 C ObjC Var(warn_strict_prototypes) Warning
801 Warn about unprototyped function declarations
803 Wstrict-aliasing=
804 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
807 Wstrict-overflow=
808 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
811 Wstrict-selector-match
812 ObjC ObjC++ Var(warn_strict_selector_match) Warning
813 Warn if type signatures of candidate methods do not match exactly
815 Wsync-nand
816 C C++ Var(warn_sync_nand) Init(1) Warning
817 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used
819 Wsynth
820 C++ ObjC++ Var(warn_synth) Warning
821 Deprecated.  This switch has no effect
823 Wsystem-headers
824 C ObjC C++ ObjC++ Warning
825 ; Documented in common.opt
827 Wtraditional
828 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
829 Warn about features not present in traditional C
831 Wtraditional-conversion
832 C ObjC Var(warn_traditional_conversion) Warning
833 Warn of prototypes causing type conversions different from what would happen in the absence of prototype
835 Wtrigraphs
836 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
837 Warn if trigraphs are encountered that might affect the meaning of the program
839 Wundeclared-selector
840 ObjC ObjC++ Var(warn_undeclared_selector) Warning
841 Warn about @selector()s without previously declared methods
843 Wundef
844 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
845 Warn if an undefined macro is used in an #if directive
847 Wuninitialized
848 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
851 Wmaybe-uninitialized
852 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
855 Wunknown-pragmas
856 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
857 Warn about unrecognized pragmas
859 Wunsuffixed-float-constants
860 C ObjC Var(warn_unsuffixed_float_constants) Warning
861 Warn about unsuffixed float constants
863 Wunused
864 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
865 ; documented in common.opt
867 Wunused-local-typedefs
868 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
869 Warn when typedefs locally defined in a function are not used
871 Wunused-macros
872 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
873 Warn about macros defined in the main file that are not used
875 Wunused-result
876 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
877 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
879 Wvariadic-macros
880 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)
881 Warn about using variadic macros
883 Wvariadic-macros
884 LangEnabledBy(C ObjC C++ ObjC++,Wtraditional)
887 Wvarargs
888 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
889 Warn about questionable usage of the macros used to retrieve variable arguments
891 Wvla
892 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
893 Warn if a variable length array is used
895 Wvolatile-register-var
896 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
897 Warn when a register variable is declared volatile
899 Wvirtual-move-assign
900 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
901 Warn if a virtual base has a non-trivial move assignment operator
903 Wwrite-strings
904 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
905 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.
907 Wzero-as-null-pointer-constant
908 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
909 Warn when a literal '0' is used as null pointer
911 Wuseless-cast
912 C++ ObjC++ Var(warn_useless_cast) Warning
913 Warn about useless casts
915 ansi
916 C ObjC C++ ObjC++
917 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
920 C ObjC C++ ObjC++ Joined
921 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
923 fabi-compat-version=
924 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
925 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases
927 faccess-control
928 C++ ObjC++ Var(flag_access_control) Init(1)
929 Enforce class member access control semantics
931 fada-spec-parent=
932 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
933 -fada-spec-parent=unit  Dump Ada specs as child units of given parent
935 fall-virtual
936 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
938 fallow-parameterless-variadic-functions
939 C ObjC Var(flag_allow_parameterless_variadic_functions)
940 Allow variadic functions without named parameter
942 falt-external-templates
943 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
944 No longer supported
946 fasm
947 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
948 Recognize the \"asm\" keyword
950 ; Define extra predefined macros for use in libgcc.
951 fbuilding-libgcc
952 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
954 fbuiltin
955 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
956 Recognize built-in functions
958 fbuiltin-
959 C ObjC C++ ObjC++ Joined
961 fcanonical-system-headers
962 C ObjC C++ ObjC++
963 Where shorter, use canonicalized paths to systems headers.
965 fcheck-pointer-bounds
966 Common Report Var(flag_check_pointer_bounds)
967 Add Pointer Bounds Checker instrumentation.  fchkp-* flags are used to
968 control instrumentation.  Currently available for C, C++ and ObjC.
970 fchkp-check-incomplete-type
971 C ObjC C++ ObjC++ Report Var(flag_chkp_incomplete_type) Init(1)
972 Generate pointer bounds checks for variables with incomplete type
974 fchkp-zero-input-bounds-for-main
975 C ObjC C++ ObjC++ Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
976 Use zero bounds for all incoming arguments in 'main' function.  It helps when
977 instrumented binaries are used with legacy libs.
979 fchkp-first-field-has-own-bounds
980 C ObjC C++ ObjC++ RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
981 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
982 field in the structure.  By default pointer to the first field has the same
983 bounds as pointer to the whole structure.
985 fchkp-narrow-bounds
986 C ObjC C++ ObjC++ Report Var(flag_chkp_narrow_bounds) Init(1)
987 Control how Pointer Bounds Checker handle pointers to object fields.  When
988 narrowing is on, field bounds are used.  Otherwise full object bounds are used.
990 fchkp-narrow-to-innermost-array
991 C ObjC C++ ObjC++ RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
992 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
993 nested static arryas access.  By default outermost array is used.
995 fchkp-optimize
996 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
997 Allow Pointer Bounds Checker optimizations.  By default allowed
998 on optimization levels >0.
1000 fchkp-use-fast-string-functions
1001 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1002 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1004 fchkp-use-nochk-string-functions
1005 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1006 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1008 fchkp-use-static-bounds
1009 C ObjC C++ ObjC++ Report Var(flag_chkp_use_static_bounds) Init(1)
1010 Use statically initialized variable for vars bounds instead of
1011 generating them each time it is required.
1013 fchkp-use-static-const-bounds
1014 C ObjC C++ ObjC++ Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1015 Use statically initialized variable for constant bounds instead of
1016 generating them each time it is required.
1018 fchkp-treat-zero-dynamic-size-as-infinite
1019 C ObjC C++ ObjC++ Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1020 With this option zero size obtained dynamically for objects with
1021 incomplete type will be treated as infinite.
1023 fchkp-check-read
1024 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1025 Generate checks for all read accesses to memory.
1027 fchkp-check-write
1028 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1029 Generate checks for all write accesses to memory.
1031 fchkp-store-bounds
1032 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1033 Generate bounds stores for pointer writes.
1035 fchkp-instrument-calls
1036 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1037 Generate bounds passing for calls.
1039 fchkp-instrument-marked-only
1040 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1041 Instrument only functions marked with bnd_instrument attribute.
1043 fcilkplus
1044 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1045 Enable Cilk Plus
1047 fcond-mismatch
1048 C ObjC C++ ObjC++
1049 Allow the arguments of the '?' operator to have different types
1051 fconserve-space
1052 C++ ObjC++ Var(flag_conserve_space)
1053 Does nothing.  Preserved for backward compatibility.
1055 fconstant-string-class=
1056 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1057 -fconst-string-class=<name>     Use class <name> for constant strings
1059 fconstexpr-depth=
1060 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1061 -fconstexpr-depth=<number>      Specify maximum constexpr recursion depth
1063 fdebug-cpp
1064 C ObjC C++ ObjC++
1065 Emit debug annotations during preprocessing
1067 fdeduce-init-list
1068 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1069 -fdeduce-init-list      enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
1071 fdeclone-ctor-dtor
1072 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1073 Factor complex constructors and destructors to favor space over speed
1075 fdefault-inline
1076 C++ ObjC++ Ignore
1077 Does nothing.  Preserved for backward compatibility.
1079 fdirectives-only
1080 C ObjC C++ ObjC++
1081 Preprocess directives only.
1083 fdollars-in-identifiers
1084 C ObjC C++ ObjC++
1085 Permit '$' as an identifier character
1087 fdump-ada-spec
1088 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1089 Write all declarations as Ada code transitively
1091 fdump-ada-spec-slim
1092 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1093 Write all declarations as Ada code for the given file only
1095 felide-constructors
1096 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1098 fenforce-eh-specs
1099 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1100 Generate code to check exception specifications
1102 fenum-int-equiv
1103 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1105 fexec-charset=
1106 C ObjC C++ ObjC++ Joined RejectNegative
1107 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>
1109 fextended-identifiers
1110 C ObjC C++ ObjC++
1111 Permit universal character names (\\u and \\U) in identifiers
1113 finput-charset=
1114 C ObjC C++ ObjC++ Joined RejectNegative
1115 -finput-charset=<cset>  Specify the default character set for source files
1117 fextern-tls-init
1118 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1119 Support dynamic initialization of thread-local variables in a different translation unit
1121 fexternal-templates
1122 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1124 ffor-scope
1125 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1126 Scope of for-init-statement variables is local to the loop
1128 ffreestanding
1129 C ObjC C++ ObjC++
1130 Do not assume that standard C libraries and \"main\" exist
1132 fgnu-keywords
1133 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1134 Recognize GNU-defined keywords
1136 fgnu-runtime
1137 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1138 Generate code for GNU runtime environment
1140 fgnu89-inline
1141 C ObjC Var(flag_gnu89_inline) Init(-1)
1142 Use traditional GNU semantics for inline functions
1144 fguiding-decls
1145 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1147 fhandle-exceptions
1148 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1150 fhonor-std
1151 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1153 fhosted
1154 C ObjC
1155 Assume normal C execution environment
1157 fhuge-objects
1158 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1159 No longer supported
1161 fimplement-inlines
1162 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1163 Export functions even if they can be inlined
1165 fimplicit-inline-templates
1166 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1167 Emit implicit instantiations of inline templates
1169 fimplicit-templates
1170 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1171 Emit implicit instantiations of templates
1173 ffriend-injection
1174 C++ ObjC++ Var(flag_friend_injection)
1175 Inject friend functions into enclosing namespace
1177 fkeep-inline-dllexport
1178 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1179 Don't emit dllexported inline functions unless needed
1181 flabels-ok
1182 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1184 flax-vector-conversions
1185 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1186 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1188 fms-extensions
1189 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1190 Don't warn about uses of Microsoft extensions
1192 fmudflap
1193 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1195 fmudflapth
1196 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1198 fmudflapir
1199 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1201 fname-mangling-version-
1202 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1204 fnew-abi
1205 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1207 fnext-runtime
1208 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1209 Generate code for NeXT (Apple Mac OS X) runtime environment
1211 fnil-receivers
1212 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1213 Assume that receivers of Objective-C messages may be nil
1215 flocal-ivars
1216 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1217 Allow access to instance variables as if they were local declarations within instance method implementations.
1219 fivar-visibility=
1220 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1221 -fvisibility=[private|protected|public|package] Set the default symbol visibility
1223 Enum
1224 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1226 EnumValue
1227 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1229 EnumValue
1230 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1232 EnumValue
1233 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1235 EnumValue
1236 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1238 fnonansi-builtins
1239 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1241 fnonnull-objects
1242 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1244 fnothrow-opt
1245 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1246 Treat a throw() exception specification as noexcept to improve code size
1248 fobjc-abi-version=
1249 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1250 Specify which ABI to use for Objective-C family code and meta-data generation.
1252 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1253 ; to initialize any non-POD ivars in Objective-C++ classes.
1254 fobjc-call-cxx-cdtors
1255 ObjC++ Var(flag_objc_call_cxx_cdtors)
1256 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
1258 fobjc-direct-dispatch
1259 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1260 Allow fast jumps to the message dispatcher
1262 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1263 ; @try, etc.) in source code.
1264 fobjc-exceptions
1265 ObjC ObjC++ Var(flag_objc_exceptions)
1266 Enable Objective-C exception and synchronization syntax
1268 fobjc-gc
1269 ObjC ObjC++ LTO Var(flag_objc_gc)
1270 Enable garbage collection (GC) in Objective-C/Objective-C++ programs
1272 fobjc-nilcheck
1273 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1274 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1276 ; Nonzero means that we generate NeXT setjmp based exceptions.
1277 fobjc-sjlj-exceptions
1278 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1279 Enable Objective-C setjmp exception handling runtime
1281 fobjc-std=objc1
1282 ObjC ObjC++ Var(flag_objc1_only)
1283 Conform to the Objective-C 1.0 language as implemented in GCC 4.0
1285 fopenmp
1286 C ObjC C++ ObjC++ Var(flag_openmp)
1287 Enable OpenMP (implies -frecursive in Fortran)
1289 fopenmp-simd
1290 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1291 Enable OpenMP's SIMD directives
1293 foperator-names
1294 C++ ObjC++
1295 Recognize C++ keywords like \"compl\" and \"xor\"
1297 foptional-diags
1298 C++ ObjC++ Ignore
1299 Does nothing.  Preserved for backward compatibility.
1301 fpch-deps
1302 C ObjC C++ ObjC++
1304 fpch-preprocess
1305 C ObjC C++ ObjC++
1306 Look for and use PCH files even when preprocessing
1308 fpermissive
1309 C++ ObjC++ Var(flag_permissive)
1310 Downgrade conformance errors to warnings
1312 fplan9-extensions
1313 C ObjC Var(flag_plan9_extensions)
1314 Enable Plan 9 language extensions
1316 fpreprocessed
1317 C ObjC C++ ObjC++
1318 Treat the input file as already preprocessed
1320 ftrack-macro-expansion
1321 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1322 ; converted into ftrack-macro-expansion=
1324 ftrack-macro-expansion=
1325 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1326 -ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages
1328 fpretty-templates
1329 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1330 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
1332 freplace-objc-classes
1333 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1334 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
1336 frepo
1337 C++ ObjC++
1338 Enable automatic template instantiation
1340 frtti
1341 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1342 Generate run time type descriptor information
1344 fshort-double
1345 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
1346 Use the same size for double as for float
1348 fshort-enums
1349 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1350 Use the narrowest integer type possible for enumeration types
1352 fshort-wchar
1353 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1354 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
1356 fsigned-bitfields
1357 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1358 When \"signed\" or \"unsigned\" is not given make the bitfield signed
1360 fsigned-char
1361 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1362 Make \"char\" signed by default
1364 fsquangle
1365 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1367 fstats
1368 C++ ObjC++ Var(flag_detailed_statistics)
1369 Display statistics accumulated during compilation
1371 fstrict-enums
1372 C++ ObjC++ Optimization Var(flag_strict_enums)
1373 Assume that values of enumeration type are always within the minimum range of that type
1375 fstrict-prototype
1376 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1378 ftabstop=
1379 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1380 -ftabstop=<number>      Distance between tab stops for column reporting
1382 ftemplate-backtrace-limit=
1383 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1384 Set the maximum number of template instantiation notes for a single warning or error
1386 ftemplate-depth-
1387 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1389 ftemplate-depth=
1390 C++ ObjC++ Joined RejectNegative UInteger
1391 -ftemplate-depth=<number>       Specify maximum template instantiation depth
1393 fthis-is-variable
1394 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1396 fthreadsafe-statics
1397 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1398 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
1400 funsigned-bitfields
1401 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1402 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
1404 funsigned-char
1405 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1406 Make \"char\" unsigned by default
1408 fuse-cxa-atexit
1409 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1410 Use __cxa_atexit to register destructors
1412 fuse-cxa-get-exception-ptr
1413 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1414 Use __cxa_get_exception_ptr in exception handling
1416 fvisibility-inlines-hidden
1417 C++ ObjC++
1418 Marks all inlined functions and methods as having hidden visibility
1420 fvisibility-ms-compat
1421 C++ ObjC++ Var(flag_visibility_ms_compat)
1422 Changes visibility to match Microsoft Visual Studio by default
1424 fvtable-gc
1425 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1426 No longer supported
1428 fvtable-thunks
1429 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1430 No longer supported
1432 fweak
1433 C++ ObjC++ Var(flag_weak) Init(1)
1434 Emit common-like symbols as weak symbols
1436 fwide-exec-charset=
1437 C ObjC C++ ObjC++ Joined RejectNegative
1438 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>
1440 fworking-directory
1441 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1442 Generate a #line directive pointing at the current working directory
1444 fxref
1445 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1446 No longer supported
1448 fzero-link
1449 ObjC ObjC++ Var(flag_zero_link)
1450 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
1452 gen-decls
1453 ObjC ObjC++ Var(flag_gen_declaration)
1454 Dump declarations to a .decl file
1456 femit-struct-debug-baseonly
1457 C ObjC C++ ObjC++
1458 -femit-struct-debug-baseonly    Aggressive reduced debug info for structs
1460 femit-struct-debug-reduced
1461 C ObjC C++ ObjC++
1462 -femit-struct-debug-reduced     Conservative reduced debug info for structs
1464 femit-struct-debug-detailed=
1465 C ObjC C++ ObjC++ Joined
1466 -femit-struct-debug-detailed=<spec-list>        Detailed reduced debug info for structs
1468 fext-numeric-literals
1469 C++ ObjC++ 
1470 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1471 number literal rather than a user-defined number literal.
1473 idirafter
1474 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1475 -idirafter <dir>        Add <dir> to the end of the system include path
1477 imacros
1478 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1479 -imacros <file> Accept definition of macros in <file>
1481 imultilib
1482 C ObjC C++ ObjC++ Joined Separate
1483 -imultilib <dir>        Set <dir> to be the multilib include subdirectory
1485 include
1486 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1487 -include <file> Include the contents of <file> before other files
1489 iprefix
1490 C ObjC C++ ObjC++ Joined Separate
1491 -iprefix <path> Specify <path> as a prefix for next two options
1493 isysroot
1494 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1495 -isysroot <dir> Set <dir> to be the system root directory
1497 isystem
1498 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1499 -isystem <dir>  Add <dir> to the start of the system include path
1501 iquote
1502 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1503 -iquote <dir>   Add <dir> to the end of the quote include path
1505 iwithprefix
1506 C ObjC C++ ObjC++ Joined Separate
1507 -iwithprefix <dir>      Add <dir> to the end of the system include path
1509 iwithprefixbefore
1510 C ObjC C++ ObjC++ Joined Separate
1511 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path
1513 lang-asm
1514 C Undocumented RejectDriver
1516 no-integrated-cpp
1517 Driver
1519 nostdinc
1520 C ObjC C++ ObjC++
1521 Do not search standard system include directories (those specified with -isystem will still be used)
1523 nostdinc++
1524 C++ ObjC++
1525 Do not search standard system include directories for C++
1528 C ObjC C++ ObjC++ Joined Separate
1529 ; Documented in common.opt
1531 pedantic
1532 C ObjC C++ ObjC++ Alias(Wpedantic)
1533 ; Documented in common.opt
1535 print-objc-runtime-info
1536 ObjC ObjC++
1537 Generate C header of platform-specific features
1539 remap
1540 C ObjC C++ ObjC++
1541 Remap file names when including files
1543 std=c++98
1544 C++ ObjC++
1545 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1547 std=c++03
1548 C++ ObjC++ Alias(std=c++98)
1549 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1551 std=c++11
1552 C++ ObjC++
1553 Conform to the ISO 2011 C++ standard
1555 std=c++0x
1556 C++ ObjC++ Alias(std=c++11) Undocumented
1557 Deprecated in favor of -std=c++11
1559 std=c++1y
1560 C++ ObjC++ Alias(std=c++14) Undocumented
1561 Deprecated in favor of -std=c++14
1563 std=c++14
1564 C++ ObjC++ Undocumented
1565 Conform to the ISO 2014 C++ standard (experimental and incomplete support)
1567 std=c++1z
1568 C++ ObjC++
1569 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support)
1571 std=c++17
1572 C++ ObjC++ Alias(std=c++1z) Undocumented
1574 std=c11
1575 C ObjC
1576 Conform to the ISO 2011 C standard (experimental and incomplete support)
1578 std=c1x
1579 C ObjC Alias(std=c11)
1580 Deprecated in favor of -std=c11
1582 std=c89
1583 C ObjC Alias(std=c90)
1584 Conform to the ISO 1990 C standard
1586 std=c90
1587 C ObjC
1588 Conform to the ISO 1990 C standard
1590 std=c99
1591 C ObjC
1592 Conform to the ISO 1999 C standard
1594 std=c9x
1595 C ObjC Alias(std=c99)
1596 Deprecated in favor of -std=c99
1598 std=gnu++98
1599 C++ ObjC++
1600 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1601 corrigendum with GNU extensions
1603 std=gnu++03
1604 C++ ObjC++ Alias(std=gnu++98)
1605 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1606 corrigendum with GNU extensions
1608 std=gnu++11
1609 C++ ObjC++
1610 Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)
1612 std=gnu++0x
1613 C++ ObjC++ Alias(std=gnu++11)
1614 Deprecated in favor of -std=gnu++11
1616 std=gnu++1y
1617 C++ ObjC++ Alias(std=gnu++14) Undocumented
1619 std=gnu++14
1620 C++ ObjC++
1621 Conform to the ISO 2014 C++ standard with GNU extensions (experimental and incomplete support)
1623 std=gnu++1z
1624 C++ ObjC++
1625 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support)
1627 std=gnu++17
1628 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1630 std=gnu11
1631 C ObjC
1632 Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)
1634 std=gnu1x
1635 C ObjC Alias(std=gnu11)
1636 Deprecated in favor of -std=gnu11
1638 std=gnu89
1639 C ObjC Alias(std=gnu90)
1640 Conform to the ISO 1990 C standard with GNU extensions
1642 std=gnu90
1643 C ObjC
1644 Conform to the ISO 1990 C standard with GNU extensions
1646 std=gnu99
1647 C ObjC
1648 Conform to the ISO 1999 C standard with GNU extensions
1650 std=gnu9x
1651 C ObjC Alias(std=gnu99)
1652 Deprecated in favor of -std=gnu99
1654 std=iso9899:1990
1655 C ObjC Alias(std=c90)
1656 Conform to the ISO 1990 C standard
1658 std=iso9899:199409
1659 C ObjC
1660 Conform to the ISO 1990 C standard as amended in 1994
1662 std=iso9899:1999
1663 C ObjC Alias(std=c99)
1664 Conform to the ISO 1999 C standard
1666 std=iso9899:199x
1667 C ObjC Alias(std=c99)
1668 Deprecated in favor of -std=iso9899:1999
1670 std=iso9899:2011
1671 C ObjC Alias(std=c11)
1672 Conform to the ISO 2011 C standard (experimental and incomplete support)
1674 traditional
1675 Driver
1677 traditional-cpp
1678 C ObjC C++ ObjC++
1679 Enable traditional preprocessing
1681 trigraphs
1682 C ObjC C++ ObjC++
1683 -trigraphs      Support ISO C trigraphs
1685 undef
1686 C ObjC C++ ObjC++ Var(flag_undef)
1687 Do not predefine system-specific and GCC-specific macros
1690 C ObjC C++ ObjC++
1691 ; Documented in common.opt
1694 C ObjC C++ ObjC++
1695 ; Documented in common.opt
1697 ; This comment is to ensure we retain the blank line above.