re PR inline-asm/61692 (ICE in extract_insn in recog.c for asm with many parameters)
[official-gcc.git] / gcc / c-family / c.opt
blobb9f7c6562091fb7dc8d96da5df69f2cd7332c86c
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 || Weffc++)
376 Warn about deleting polymorphic objects with non-virtual destructors
378 Wdeprecated
379 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
380 Warn if a deprecated compiler feature, class, method, or field is used
382 Wdesignated-init
383 C ObjC Var(warn_designated_init) Init(1) Warning
384 Warn about positional initialization of structs requiring designated initializers
386 Wdiscarded-qualifiers
387 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
388 Warn if type qualifiers on pointers are discarded
390 Wdiv-by-zero
391 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
392 Warn about compile-time integer division by zero
394 Weffc++
395 C++ ObjC++ Var(warn_ecpp) Warning
396 Warn about violations of Effective C++ style rules
398 Wempty-body
399 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
400 Warn about an empty body in an if or else statement
402 Wendif-labels
403 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)
404 Warn about stray tokens after #elif and #endif
406 Wenum-compare
407 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
408 Warn about comparison of different enum types
410 Werror
411 C ObjC C++ ObjC++
412 ; Documented in common.opt
414 Werror-implicit-function-declaration
415 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
416 This switch is deprecated; use -Werror=implicit-function-declaration instead
418 Wfloat-conversion
419 C ObjC C++ ObjC++ Var(warn_float_conversion) LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
420 Warn for implicit type conversions that cause loss of floating point precision
422 Wfloat-equal
423 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
424 Warn if testing floating point numbers for equality
426 Wformat
427 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
428 Warn about printf/scanf/strftime/strfmon format string anomalies
430 Wformat-contains-nul
431 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
432 Warn about format strings that contain NUL bytes
434 Wformat-extra-args
435 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
436 Warn if passing too many arguments to a function for its format string
438 Wformat-nonliteral
439 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
440 Warn about format strings that are not literals
442 Wformat-security
443 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
444 Warn about possible security problems with format functions
446 Wformat-signedness
447 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
448 Warn about sign differences with format functions
450 Wformat-y2k
451 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
452 Warn about strftime formats yielding 2-digit years
454 Wformat-zero-length
455 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
456 Warn about zero-length formats
458 Wformat=
459 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
460 Warn about printf/scanf/strftime/strfmon format string anomalies
462 Wignored-qualifiers
463 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
464 Warn whenever type qualifiers are ignored.
466 Wincompatible-pointer-types
467 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
468 Warn when there is a conversion between pointers that have incompatible types
470 Winit-self
471 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
472 Warn about variables which are initialized to themselves
474 Wimplicit
475 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
476 Warn about implicit declarations
478 Wdouble-promotion
479 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
480 Warn about implicit conversions from \"float\" to \"double\"
482 Wimplicit-function-declaration
483 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
484 Warn about implicit function declarations
486 Wimplicit-int
487 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
488 Warn when a declaration does not specify a type
490 Wimport
491 C ObjC C++ ObjC++ Undocumented Ignore
493 Winherited-variadic-ctor
494 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
495 Warn about C++11 inheriting constructors when the base has a variadic constructor
497 Wint-conversion
498 C ObjC Var(warn_int_conversion) Init(1) Warning
499 Warn about incompatible integer to pointer and pointer to integer conversions
501 Wint-to-pointer-cast
502 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
503 Warn when there is a cast to a pointer from an integer of a different size
505 Winvalid-offsetof
506 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
507 Warn about invalid uses of the \"offsetof\" macro
509 Winvalid-pch
510 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
511 Warn about PCH files that are found but not used
513 Wjump-misses-init
514 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
515 Warn when a jump misses a variable initialization
517 Wliteral-suffix
518 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
519 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
521 Wlogical-op
522 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning 
523 Warn when a logical operator is suspiciously always evaluating to true or false
525 Wlogical-not-parentheses
526 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
527 Warn when logical not is used on the left hand side operand of a comparison
529 Wlong-long
530 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)
531 Do not warn about using \"long long\" when -pedantic
533 Wmain
534 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
535 Warn about suspicious declarations of \"main\"
537 Wmain
538 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
541 Wmemset-transposed-args
542 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
543 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not
545 Wmissing-braces
546 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
547 Warn about possibly missing braces around initializers
549 Wmissing-declarations
550 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
551 Warn about global functions without previous declarations
553 Wmissing-field-initializers
554 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
555 Warn about missing fields in struct initializers
557 Wsizeof-pointer-memaccess
558 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
559 Warn about suspicious length parameters to certain string functions if the argument uses sizeof
561 Wsizeof-array-argument
562 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
563 Warn when sizeof is applied on a parameter declared as an array
565 Wsuggest-attribute=format
566 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
567 Warn about functions which might be candidates for format attributes
569 Wswitch
570 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
571 Warn about enumerated switches, with no default, missing a case
573 Wswitch-default
574 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
575 Warn about enumerated switches missing a \"default:\" statement
577 Wswitch-enum
578 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
579 Warn about all enumerated switches missing a specific case
581 Wswitch-bool
582 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
583 Warn about switches with boolean controlling expression
585 Wmissing-format-attribute
586 C ObjC C++ ObjC++ Alias(Wsuggest-attribute=format)
589 Wmissing-include-dirs
590 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
591 Warn about user-specified include directories that do not exist
593 Wmissing-parameter-type
594 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
595 Warn about function parameters declared without a type specifier in K&R-style functions
597 Wmissing-prototypes
598 C ObjC Var(warn_missing_prototypes) Warning
599 Warn about global functions without prototypes
601 Wmudflap
602 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
604 Wmultichar
605 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
606 Warn about use of multi-character character constants
608 Wnarrowing
609 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++0x-compat)
610 Warn about narrowing conversions within { } that are ill-formed in C++11
612 Wnested-externs
613 C ObjC Var(warn_nested_externs) Warning
614 Warn about \"extern\" declarations not at file scope
616 Wnoexcept
617 C++ ObjC++ Var(warn_noexcept) Warning
618 Warn when a noexcept expression evaluates to false even though the expression can't actually throw
620 Wnon-template-friend
621 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
622 Warn when non-templatized friend functions are declared within a template
624 Wnon-virtual-dtor
625 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
626 Warn about non-virtual destructors
628 Wnonnull
629 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
630 Warn about NULL being passed to argument slots marked as requiring non-NULL
632 Wnonnull
633 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
636 Wnormalized
637 C ObjC C++ ObjC++ Alias(Wnormalized=,nfc,none)
640 Wnormalized=
641 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)
642 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings
644 ; Required for these enum values.
645 SourceInclude
646 cpplib.h
648 Enum
649 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
651 EnumValue
652 Enum(cpp_normalize_level) String(none) Value(normalized_none)
654 EnumValue
655 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
657 EnumValue
658 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
660 EnumValue
661 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
663 Wold-style-cast
664 C++ ObjC++ Var(warn_old_style_cast) Warning
665 Warn if a C-style cast is used in a program
667 Wold-style-declaration
668 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
669 Warn for obsolescent usage in a declaration
671 Wold-style-definition
672 C ObjC Var(warn_old_style_definition) Warning
673 Warn if an old-style parameter definition is used
675 Wopenmp-simd
676 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
677 Warn if a simd directive is overridden by the vectorizer cost model
679 Woverlength-strings
680 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
681 Warn if a string is longer than the maximum portable length specified by the standard
683 Woverloaded-virtual
684 C++ ObjC++ Var(warn_overloaded_virtual) Warning
685 Warn about overloaded virtual function names
687 Woverride-init
688 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
689 Warn about overriding initializers without side effects
691 Wpacked-bitfield-compat
692 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
693 Warn about packed bit-fields whose offset changed in GCC 4.4
695 Wparentheses
696 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
697 Warn about possibly missing parentheses
699 Wpedantic
700 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
701 ; Documented in common.opt
703 Wpmf-conversions
704 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
705 Warn when converting the type of pointers to member functions
707 Wpointer-arith
708 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
709 Warn about function pointer arithmetic
711 Wpointer-sign
712 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
713 Warn when a pointer differs in signedness in an assignment
715 Wpointer-to-int-cast
716 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
717 Warn when a pointer is cast to an integer of a different size
719 Wpragmas
720 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
721 Warn about misuses of pragmas
723 Wproperty-assign-default
724 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
725 Warn if a property for an Objective-C object has no assign semantics specified
727 Wprotocol
728 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
729 Warn if inherited methods are unimplemented
731 Wredundant-decls
732 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
733 Warn about multiple declarations of the same object
735 Wreorder
736 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
737 Warn when the compiler reorders code
739 Wreturn-type
740 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
741 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
743 Wselector
744 ObjC ObjC++ Var(warn_selector) Warning
745 Warn if a selector has multiple methods
747 Wsequence-point
748 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
749 Warn about possible violations of sequence point rules
751 Wshadow-ivar
752 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
753 Warn if a local declaration hides an instance variable
755 Wshift-count-negative
756 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
757 Warn if shift count is negative
759 Wshift-count-overflow
760 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
761 Warn if shift count >= width of type
763 Wsign-compare
764 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
765 Warn about signed-unsigned comparisons
767 Wsign-compare
768 C ObjC C++ ObjC++ EnabledBy(Wextra)
771 Wsign-conversion
772 C ObjC C++ ObjC++ Var(warn_sign_conversion) LangEnabledBy(C ObjC,Wconversion)
773 Warn for implicit type conversions between signed and unsigned integers
775 Wsign-promo
776 C++ ObjC++ Var(warn_sign_promo) Warning
777 Warn when overload promotes from unsigned to signed
779 Wstrict-null-sentinel
780 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
781 Warn about uncasted NULL used as sentinel
783 Wstrict-prototypes
784 C ObjC Var(warn_strict_prototypes) Warning
785 Warn about unprototyped function declarations
787 Wstrict-aliasing=
788 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
791 Wstrict-overflow=
792 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
795 Wstrict-selector-match
796 ObjC ObjC++ Var(warn_strict_selector_match) Warning
797 Warn if type signatures of candidate methods do not match exactly
799 Wsync-nand
800 C C++ Var(warn_sync_nand) Init(1) Warning
801 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used
803 Wsynth
804 C++ ObjC++ Var(warn_synth) Warning
805 Deprecated.  This switch has no effect
807 Wsystem-headers
808 C ObjC C++ ObjC++ Warning
809 ; Documented in common.opt
811 Wtraditional
812 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
813 Warn about features not present in traditional C
815 Wtraditional-conversion
816 C ObjC Var(warn_traditional_conversion) Warning
817 Warn of prototypes causing type conversions different from what would happen in the absence of prototype
819 Wtrigraphs
820 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
821 Warn if trigraphs are encountered that might affect the meaning of the program
823 Wundeclared-selector
824 ObjC ObjC++ Var(warn_undeclared_selector) Warning
825 Warn about @selector()s without previously declared methods
827 Wundef
828 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
829 Warn if an undefined macro is used in an #if directive
831 Wuninitialized
832 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
835 Wmaybe-uninitialized
836 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
839 Wunknown-pragmas
840 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
841 Warn about unrecognized pragmas
843 Wunsuffixed-float-constants
844 C ObjC Var(warn_unsuffixed_float_constants) Warning
845 Warn about unsuffixed float constants
847 Wunused
848 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
849 ; documented in common.opt
851 Wunused-local-typedefs
852 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
853 Warn when typedefs locally defined in a function are not used
855 Wunused-macros
856 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
857 Warn about macros defined in the main file that are not used
859 Wunused-result
860 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
861 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
863 Wvariadic-macros
864 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)
865 Warn about using variadic macros
867 Wvarargs
868 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
869 Warn about questionable usage of the macros used to retrieve variable arguments
871 Wvla
872 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
873 Warn if a variable length array is used
875 Wvolatile-register-var
876 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
877 Warn when a register variable is declared volatile
879 Wvirtual-move-assign
880 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
881 Warn if a virtual base has a non-trivial move assignment operator
883 Wwrite-strings
884 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
885 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.
887 Wzero-as-null-pointer-constant
888 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
889 Warn when a literal '0' is used as null pointer
891 Wuseless-cast
892 C++ ObjC++ Var(warn_useless_cast) Warning
893 Warn about useless casts
895 ansi
896 C ObjC C++ ObjC++
897 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
900 C ObjC C++ ObjC++ Joined
901 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
903 fabi-compat-version=
904 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
905 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases
907 faccess-control
908 C++ ObjC++ Var(flag_access_control) Init(1)
909 Enforce class member access control semantics
911 fada-spec-parent=
912 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
913 -fada-spec-parent=unit  Dump Ada specs as child units of given parent
915 fall-virtual
916 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
918 fallow-parameterless-variadic-functions
919 C ObjC Var(flag_allow_parameterless_variadic_functions)
920 Allow variadic functions without named parameter
922 falt-external-templates
923 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
924 No longer supported
926 fasm
927 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
928 Recognize the \"asm\" keyword
930 ; Define extra predefined macros for use in libgcc.
931 fbuilding-libgcc
932 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
934 fbuiltin
935 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
936 Recognize built-in functions
938 fbuiltin-
939 C ObjC C++ ObjC++ Joined
941 fcanonical-system-headers
942 C ObjC C++ ObjC++
943 Where shorter, use canonicalized paths to systems headers.
945 fcheck-pointer-bounds
946 Common Report Var(flag_check_pointer_bounds)
947 Add Pointer Bounds Checker instrumentation.  fchkp-* flags are used to
948 control instrumentation.  Currently available for C, C++ and ObjC.
950 fchkp-check-incomplete-type
951 C ObjC C++ ObjC++ Report Var(flag_chkp_incomplete_type) Init(1)
952 Generate pointer bounds checks for variables with incomplete type
954 fchkp-zero-input-bounds-for-main
955 C ObjC C++ ObjC++ Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
956 Use zero bounds for all incoming arguments in 'main' function.  It helps when
957 instrumented binaries are used with legacy libs.
959 fchkp-first-field-has-own-bounds
960 C ObjC C++ ObjC++ RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
961 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
962 field in the structure.  By default pointer to the first field has the same
963 bounds as pointer to the whole structure.
965 fchkp-narrow-bounds
966 C ObjC C++ ObjC++ Report Var(flag_chkp_narrow_bounds) Init(1)
967 Control how Pointer Bounds Checker handle pointers to object fields.  When
968 narrowing is on, field bounds are used.  Otherwise full object bounds are used.
970 fchkp-narrow-to-innermost-array
971 C ObjC C++ ObjC++ RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
972 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
973 nested static arryas access.  By default outermost array is used.
975 fchkp-optimize
976 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
977 Allow Pointer Bounds Checker optimizations.  By default allowed
978 on optimization levels >0.
980 fchkp-use-fast-string-functions
981 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
982 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
984 fchkp-use-nochk-string-functions
985 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
986 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
988 fchkp-use-static-bounds
989 C ObjC C++ ObjC++ Report Var(flag_chkp_use_static_bounds) Init(1)
990 Use statically initialized variable for vars bounds instead of
991 generating them each time it is required.
993 fchkp-use-static-const-bounds
994 C ObjC C++ ObjC++ Report Var(flag_chkp_use_static_const_bounds) Init(-1)
995 Use statically initialized variable for constant bounds instead of
996 generating them each time it is required.
998 fchkp-treat-zero-dynamic-size-as-infinite
999 C ObjC C++ ObjC++ Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1000 With this option zero size obtained dynamically for objects with
1001 incomplete type will be treated as infinite.
1003 fchkp-check-read
1004 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1005 Generate checks for all read accesses to memory.
1007 fchkp-check-write
1008 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1009 Generate checks for all write accesses to memory.
1011 fchkp-store-bounds
1012 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1013 Generate bounds stores for pointer writes.
1015 fchkp-instrument-calls
1016 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1017 Generate bounds passing for calls.
1019 fchkp-instrument-marked-only
1020 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1021 Instrument only functions marked with bnd_instrument attribute.
1023 fcilkplus
1024 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1025 Enable Cilk Plus
1027 fcond-mismatch
1028 C ObjC C++ ObjC++
1029 Allow the arguments of the '?' operator to have different types
1031 fconserve-space
1032 C++ ObjC++ Var(flag_conserve_space)
1033 Does nothing.  Preserved for backward compatibility.
1035 fconstant-string-class=
1036 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1037 -fconst-string-class=<name>     Use class <name> for constant strings
1039 fconstexpr-depth=
1040 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1041 -fconstexpr-depth=<number>      Specify maximum constexpr recursion depth
1043 fdebug-cpp
1044 C ObjC C++ ObjC++
1045 Emit debug annotations during preprocessing
1047 fdeduce-init-list
1048 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1049 -fdeduce-init-list      enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
1051 fdeclone-ctor-dtor
1052 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1053 Factor complex constructors and destructors to favor space over speed
1055 fdefault-inline
1056 C++ ObjC++ Ignore
1057 Does nothing.  Preserved for backward compatibility.
1059 fdirectives-only
1060 C ObjC C++ ObjC++
1061 Preprocess directives only.
1063 fdollars-in-identifiers
1064 C ObjC C++ ObjC++
1065 Permit '$' as an identifier character
1067 fdump-ada-spec
1068 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1069 Write all declarations as Ada code transitively
1071 fdump-ada-spec-slim
1072 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1073 Write all declarations as Ada code for the given file only
1075 felide-constructors
1076 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1078 fenforce-eh-specs
1079 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1080 Generate code to check exception specifications
1082 fenum-int-equiv
1083 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1085 fexec-charset=
1086 C ObjC C++ ObjC++ Joined RejectNegative
1087 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>
1089 fextended-identifiers
1090 C ObjC C++ ObjC++
1091 Permit universal character names (\\u and \\U) in identifiers
1093 finput-charset=
1094 C ObjC C++ ObjC++ Joined RejectNegative
1095 -finput-charset=<cset>  Specify the default character set for source files
1097 fextern-tls-init
1098 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1099 Support dynamic initialization of thread-local variables in a different translation unit
1101 fexternal-templates
1102 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1104 ffor-scope
1105 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1106 Scope of for-init-statement variables is local to the loop
1108 ffreestanding
1109 C ObjC C++ ObjC++
1110 Do not assume that standard C libraries and \"main\" exist
1112 fgnu-keywords
1113 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1114 Recognize GNU-defined keywords
1116 fgnu-runtime
1117 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1118 Generate code for GNU runtime environment
1120 fgnu89-inline
1121 C ObjC Var(flag_gnu89_inline) Init(-1)
1122 Use traditional GNU semantics for inline functions
1124 fguiding-decls
1125 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1127 fhandle-exceptions
1128 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1130 fhonor-std
1131 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1133 fhosted
1134 C ObjC
1135 Assume normal C execution environment
1137 fhuge-objects
1138 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1139 No longer supported
1141 fimplement-inlines
1142 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1143 Export functions even if they can be inlined
1145 fimplicit-inline-templates
1146 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1147 Emit implicit instantiations of inline templates
1149 fimplicit-templates
1150 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1151 Emit implicit instantiations of templates
1153 ffriend-injection
1154 C++ ObjC++ Var(flag_friend_injection)
1155 Inject friend functions into enclosing namespace
1157 fkeep-inline-dllexport
1158 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1159 Don't emit dllexported inline functions unless needed
1161 flabels-ok
1162 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1164 flax-vector-conversions
1165 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1166 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1168 fms-extensions
1169 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1170 Don't warn about uses of Microsoft extensions
1172 fmudflap
1173 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1175 fmudflapth
1176 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1178 fmudflapir
1179 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1181 fname-mangling-version-
1182 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1184 fnew-abi
1185 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1187 fnext-runtime
1188 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1189 Generate code for NeXT (Apple Mac OS X) runtime environment
1191 fnil-receivers
1192 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1193 Assume that receivers of Objective-C messages may be nil
1195 flocal-ivars
1196 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1197 Allow access to instance variables as if they were local declarations within instance method implementations.
1199 fivar-visibility=
1200 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1201 -fvisibility=[private|protected|public|package] Set the default symbol visibility
1203 Enum
1204 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1206 EnumValue
1207 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1209 EnumValue
1210 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1212 EnumValue
1213 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1215 EnumValue
1216 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1218 fnonansi-builtins
1219 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1221 fnonnull-objects
1222 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1224 fnothrow-opt
1225 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1226 Treat a throw() exception specification as noexcept to improve code size
1228 fobjc-abi-version=
1229 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1230 Specify which ABI to use for Objective-C family code and meta-data generation.
1232 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1233 ; to initialize any non-POD ivars in Objective-C++ classes.
1234 fobjc-call-cxx-cdtors
1235 ObjC++ Var(flag_objc_call_cxx_cdtors)
1236 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
1238 fobjc-direct-dispatch
1239 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1240 Allow fast jumps to the message dispatcher
1242 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1243 ; @try, etc.) in source code.
1244 fobjc-exceptions
1245 ObjC ObjC++ Var(flag_objc_exceptions)
1246 Enable Objective-C exception and synchronization syntax
1248 fobjc-gc
1249 ObjC ObjC++ LTO Var(flag_objc_gc)
1250 Enable garbage collection (GC) in Objective-C/Objective-C++ programs
1252 fobjc-nilcheck
1253 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1254 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1256 ; Nonzero means that we generate NeXT setjmp based exceptions.
1257 fobjc-sjlj-exceptions
1258 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1259 Enable Objective-C setjmp exception handling runtime
1261 fobjc-std=objc1
1262 ObjC ObjC++ Var(flag_objc1_only)
1263 Conform to the Objective-C 1.0 language as implemented in GCC 4.0
1265 fopenmp
1266 C ObjC C++ ObjC++ Var(flag_openmp)
1267 Enable OpenMP (implies -frecursive in Fortran)
1269 fopenmp-simd
1270 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1271 Enable OpenMP's SIMD directives
1273 foperator-names
1274 C++ ObjC++
1275 Recognize C++ keywords like \"compl\" and \"xor\"
1277 foptional-diags
1278 C++ ObjC++ Ignore
1279 Does nothing.  Preserved for backward compatibility.
1281 fpch-deps
1282 C ObjC C++ ObjC++
1284 fpch-preprocess
1285 C ObjC C++ ObjC++
1286 Look for and use PCH files even when preprocessing
1288 fpermissive
1289 C++ ObjC++ Var(flag_permissive)
1290 Downgrade conformance errors to warnings
1292 fplan9-extensions
1293 C ObjC Var(flag_plan9_extensions)
1294 Enable Plan 9 language extensions
1296 fpreprocessed
1297 C ObjC C++ ObjC++
1298 Treat the input file as already preprocessed
1300 ftrack-macro-expansion
1301 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1302 ; converted into ftrack-macro-expansion=
1304 ftrack-macro-expansion=
1305 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1306 -ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages
1308 fpretty-templates
1309 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1310 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
1312 freplace-objc-classes
1313 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1314 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
1316 frepo
1317 C++ ObjC++
1318 Enable automatic template instantiation
1320 frtti
1321 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1322 Generate run time type descriptor information
1324 fshort-double
1325 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
1326 Use the same size for double as for float
1328 fshort-enums
1329 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1330 Use the narrowest integer type possible for enumeration types
1332 fshort-wchar
1333 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1334 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
1336 fsigned-bitfields
1337 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1338 When \"signed\" or \"unsigned\" is not given make the bitfield signed
1340 fsigned-char
1341 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1342 Make \"char\" signed by default
1344 fsquangle
1345 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1347 fstats
1348 C++ ObjC++ Var(flag_detailed_statistics)
1349 Display statistics accumulated during compilation
1351 fstrict-enums
1352 C++ ObjC++ Optimization Var(flag_strict_enums)
1353 Assume that values of enumeration type are always within the minimum range of that type
1355 fstrict-prototype
1356 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1358 ftabstop=
1359 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1360 -ftabstop=<number>      Distance between tab stops for column reporting
1362 ftemplate-backtrace-limit=
1363 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1364 Set the maximum number of template instantiation notes for a single warning or error
1366 ftemplate-depth-
1367 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1369 ftemplate-depth=
1370 C++ ObjC++ Joined RejectNegative UInteger
1371 -ftemplate-depth=<number>       Specify maximum template instantiation depth
1373 fthis-is-variable
1374 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1376 fthreadsafe-statics
1377 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1378 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
1380 funsigned-bitfields
1381 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1382 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
1384 funsigned-char
1385 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1386 Make \"char\" unsigned by default
1388 fuse-cxa-atexit
1389 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1390 Use __cxa_atexit to register destructors
1392 fuse-cxa-get-exception-ptr
1393 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1394 Use __cxa_get_exception_ptr in exception handling
1396 fvisibility-inlines-hidden
1397 C++ ObjC++
1398 Marks all inlined functions and methods as having hidden visibility
1400 fvisibility-ms-compat
1401 C++ ObjC++ Var(flag_visibility_ms_compat)
1402 Changes visibility to match Microsoft Visual Studio by default
1404 fvtable-gc
1405 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1406 No longer supported
1408 fvtable-thunks
1409 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1410 No longer supported
1412 fweak
1413 C++ ObjC++ Var(flag_weak) Init(1)
1414 Emit common-like symbols as weak symbols
1416 fwide-exec-charset=
1417 C ObjC C++ ObjC++ Joined RejectNegative
1418 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>
1420 fworking-directory
1421 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1422 Generate a #line directive pointing at the current working directory
1424 fxref
1425 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1426 No longer supported
1428 fzero-link
1429 ObjC ObjC++ Var(flag_zero_link)
1430 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
1432 gen-decls
1433 ObjC ObjC++ Var(flag_gen_declaration)
1434 Dump declarations to a .decl file
1436 femit-struct-debug-baseonly
1437 C ObjC C++ ObjC++
1438 -femit-struct-debug-baseonly    Aggressive reduced debug info for structs
1440 femit-struct-debug-reduced
1441 C ObjC C++ ObjC++
1442 -femit-struct-debug-reduced     Conservative reduced debug info for structs
1444 femit-struct-debug-detailed=
1445 C ObjC C++ ObjC++ Joined
1446 -femit-struct-debug-detailed=<spec-list>        Detailed reduced debug info for structs
1448 fext-numeric-literals
1449 C++ ObjC++ 
1450 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1451 number literal rather than a user-defined number literal.
1453 idirafter
1454 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1455 -idirafter <dir>        Add <dir> to the end of the system include path
1457 imacros
1458 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1459 -imacros <file> Accept definition of macros in <file>
1461 imultilib
1462 C ObjC C++ ObjC++ Joined Separate
1463 -imultilib <dir>        Set <dir> to be the multilib include subdirectory
1465 include
1466 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1467 -include <file> Include the contents of <file> before other files
1469 iprefix
1470 C ObjC C++ ObjC++ Joined Separate
1471 -iprefix <path> Specify <path> as a prefix for next two options
1473 isysroot
1474 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1475 -isysroot <dir> Set <dir> to be the system root directory
1477 isystem
1478 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1479 -isystem <dir>  Add <dir> to the start of the system include path
1481 iquote
1482 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1483 -iquote <dir>   Add <dir> to the end of the quote include path
1485 iwithprefix
1486 C ObjC C++ ObjC++ Joined Separate
1487 -iwithprefix <dir>      Add <dir> to the end of the system include path
1489 iwithprefixbefore
1490 C ObjC C++ ObjC++ Joined Separate
1491 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path
1493 lang-asm
1494 C Undocumented RejectDriver
1496 no-integrated-cpp
1497 Driver
1499 nostdinc
1500 C ObjC C++ ObjC++
1501 Do not search standard system include directories (those specified with -isystem will still be used)
1503 nostdinc++
1504 C++ ObjC++
1505 Do not search standard system include directories for C++
1508 C ObjC C++ ObjC++ Joined Separate
1509 ; Documented in common.opt
1511 pedantic
1512 C ObjC C++ ObjC++ Alias(Wpedantic)
1513 ; Documented in common.opt
1515 print-objc-runtime-info
1516 ObjC ObjC++
1517 Generate C header of platform-specific features
1519 remap
1520 C ObjC C++ ObjC++
1521 Remap file names when including files
1523 std=c++98
1524 C++ ObjC++
1525 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1527 std=c++03
1528 C++ ObjC++ Alias(std=c++98)
1529 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1531 std=c++11
1532 C++ ObjC++
1533 Conform to the ISO 2011 C++ standard
1535 std=c++0x
1536 C++ ObjC++ Alias(std=c++11) Undocumented
1537 Deprecated in favor of -std=c++11
1539 std=c++1y
1540 C++ ObjC++ Alias(std=c++14) Undocumented
1541 Deprecated in favor of -std=c++14
1543 std=c++14
1544 C++ ObjC++ Undocumented
1545 Conform to the ISO 2014 C++ standard (experimental and incomplete support)
1547 std=c++1z
1548 C++ ObjC++
1549 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support)
1551 std=c++17
1552 C++ ObjC++ Alias(std=c++1z) Undocumented
1554 std=c11
1555 C ObjC
1556 Conform to the ISO 2011 C standard (experimental and incomplete support)
1558 std=c1x
1559 C ObjC Alias(std=c11)
1560 Deprecated in favor of -std=c11
1562 std=c89
1563 C ObjC Alias(std=c90)
1564 Conform to the ISO 1990 C standard
1566 std=c90
1567 C ObjC
1568 Conform to the ISO 1990 C standard
1570 std=c99
1571 C ObjC
1572 Conform to the ISO 1999 C standard
1574 std=c9x
1575 C ObjC Alias(std=c99)
1576 Deprecated in favor of -std=c99
1578 std=gnu++98
1579 C++ ObjC++
1580 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1581 corrigendum with GNU extensions
1583 std=gnu++03
1584 C++ ObjC++ Alias(std=gnu++98)
1585 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1586 corrigendum with GNU extensions
1588 std=gnu++11
1589 C++ ObjC++
1590 Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)
1592 std=gnu++0x
1593 C++ ObjC++ Alias(std=gnu++11)
1594 Deprecated in favor of -std=gnu++11
1596 std=gnu++1y
1597 C++ ObjC++ Alias(std=gnu++14) Undocumented
1599 std=gnu++14
1600 C++ ObjC++
1601 Conform to the ISO 2014 C++ standard with GNU extensions (experimental and incomplete support)
1603 std=gnu++1z
1604 C++ ObjC++
1605 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support)
1607 std=gnu++17
1608 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1610 std=gnu11
1611 C ObjC
1612 Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)
1614 std=gnu1x
1615 C ObjC Alias(std=gnu11)
1616 Deprecated in favor of -std=gnu11
1618 std=gnu89
1619 C ObjC Alias(std=gnu90)
1620 Conform to the ISO 1990 C standard with GNU extensions
1622 std=gnu90
1623 C ObjC
1624 Conform to the ISO 1990 C standard with GNU extensions
1626 std=gnu99
1627 C ObjC
1628 Conform to the ISO 1999 C standard with GNU extensions
1630 std=gnu9x
1631 C ObjC Alias(std=gnu99)
1632 Deprecated in favor of -std=gnu99
1634 std=iso9899:1990
1635 C ObjC Alias(std=c90)
1636 Conform to the ISO 1990 C standard
1638 std=iso9899:199409
1639 C ObjC
1640 Conform to the ISO 1990 C standard as amended in 1994
1642 std=iso9899:1999
1643 C ObjC Alias(std=c99)
1644 Conform to the ISO 1999 C standard
1646 std=iso9899:199x
1647 C ObjC Alias(std=c99)
1648 Deprecated in favor of -std=iso9899:1999
1650 std=iso9899:2011
1651 C ObjC Alias(std=c11)
1652 Conform to the ISO 2011 C standard (experimental and incomplete support)
1654 traditional
1655 Driver
1657 traditional-cpp
1658 C ObjC C++ ObjC++
1659 Enable traditional preprocessing
1661 trigraphs
1662 C ObjC C++ ObjC++
1663 -trigraphs      Support ISO C trigraphs
1665 undef
1666 C ObjC C++ ObjC++ Var(flag_undef)
1667 Do not predefine system-specific and GCC-specific macros
1670 C ObjC C++ ObjC++
1671 ; Documented in common.opt
1674 C ObjC C++ ObjC++
1675 ; Documented in common.opt
1677 ; This comment is to ensure we retain the blank line above.