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