2015-06-25 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
[official-gcc.git] / gcc / c-family / c.opt
blob285952ea5fdfd10e0d574e1a924b6334694f7695
1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2015 Free Software Foundation, Inc.
4 ; This file is part of GCC.
6 ; GCC is free software; you can redistribute it and/or modify it under
7 ; the terms of the GNU General Public License as published by the Free
8 ; Software Foundation; either version 3, or (at your option) any later
9 ; version.
11 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 ; for more details.
16 ; You should have received a copy of the GNU General Public License
17 ; along with GCC; see the file COPYING3.  If not see
18 ; <http://www.gnu.org/licenses/>.
20 ; See the GCC internals manual for a description of this file's format.
22 ; Please try to keep this file in ASCII collating order.
24 Language
27 Language
28 ObjC
30 Language
31 C++
33 Language
34 ObjC++
36 -all-warnings
37 C ObjC C++ ObjC++ Warning Alias(Wall)
39 -ansi
40 C ObjC C++ ObjC++ Alias(ansi)
42 -assert
43 C ObjC C++ ObjC++ Separate Alias(A) MissingArgError(assertion missing after %qs)
45 -assert=
46 C ObjC C++ ObjC++ Joined Alias(A) MissingArgError(assertion missing after %qs)
48 -comments
49 C ObjC C++ ObjC++ Alias(C)
51 -comments-in-macros
52 C ObjC C++ ObjC++ Alias(CC)
54 -define-macro
55 C ObjC C++ ObjC++ Separate Alias(D) MissingArgError(macro name missing after %qs)
57 -define-macro=
58 C ObjC C++ ObjC++ Joined Alias(D) MissingArgError(macro name missing after %qs)
60 -dependencies
61 C ObjC C++ ObjC++ Alias(M)
63 -dump
64 C ObjC C++ ObjC++ Separate Alias(d)
66 -dump=
67 C ObjC C++ ObjC++ Joined Alias(d)
69 -imacros
70 C ObjC C++ ObjC++ Separate Alias(imacros) MissingArgError(missing filename after %qs)
72 -imacros=
73 C ObjC C++ ObjC++ Joined Alias(imacros) MissingArgError(missing filename after %qs)
75 -include
76 C ObjC C++ ObjC++ Separate Alias(include) MissingArgError(missing filename after %qs)
78 -include=
79 C ObjC C++ ObjC++ Joined Alias(include) MissingArgError(missing filename after %qs)
81 -include-barrier
82 C ObjC C++ ObjC++ Alias(I, -)
84 -include-directory
85 C ObjC C++ ObjC++ Separate Alias(I) MissingArgError(missing path after %qs)
87 -include-directory=
88 C ObjC C++ ObjC++ Joined Alias(I) MissingArgError(missing path after %qs)
90 -include-directory-after
91 C ObjC C++ ObjC++ Separate Alias(idirafter) MissingArgError(missing path after %qs)
93 -include-directory-after=
94 C ObjC C++ ObjC++ Joined Alias(idirafter) MissingArgError(missing path after %qs)
96 -include-prefix
97 C ObjC C++ ObjC++ Separate Alias(iprefix)
99 -include-prefix=
100 C ObjC C++ ObjC++ JoinedOrMissing Alias(iprefix)
102 -include-with-prefix
103 C ObjC C++ ObjC++ Separate Alias(iwithprefix)
105 -include-with-prefix=
106 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
108 -include-with-prefix-after
109 C ObjC C++ ObjC++ Separate Alias(iwithprefix)
111 -include-with-prefix-after=
112 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
114 -include-with-prefix-before
115 C ObjC C++ ObjC++ Separate Alias(iwithprefixbefore)
117 -include-with-prefix-before=
118 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefixbefore)
120 -no-integrated-cpp
121 Driver Alias(no-integrated-cpp)
123 -no-line-commands
124 C ObjC C++ ObjC++ Alias(P)
126 -no-standard-includes
127 C ObjC C++ ObjC++ Alias(nostdinc)
129 -no-warnings
130 C ObjC C++ ObjC++ Alias(w)
132 -output
133 C ObjC C++ ObjC++ Separate Alias(o)
135 -output=
136 C ObjC C++ ObjC++ Joined Alias(o)
138 -output-pch=
139 C ObjC C++ ObjC++ Joined Separate
141 -pedantic
142 C ObjC C++ ObjC++ Alias(pedantic)
144 -preprocess
145 C ObjC C++ ObjC++ Undocumented Alias(E)
147 -print-missing-file-dependencies
148 C ObjC C++ ObjC++ Alias(MG)
150 -trace-includes
151 C ObjC C++ ObjC++ Alias(H)
153 -traditional
154 Driver Alias(traditional)
156 -traditional-cpp
157 C ObjC C++ ObjC++ Alias(traditional-cpp)
159 -trigraphs
160 C ObjC C++ ObjC++ Alias(trigraphs)
162 -undefine-macro
163 C ObjC C++ ObjC++ Separate Alias(U) MissingArgError(macro name missing after %qs)
165 -undefine-macro=
166 C ObjC C++ ObjC++ Joined Alias(U) MissingArgError(macro name missing after %qs)
168 -user-dependencies
169 C ObjC C++ ObjC++ Alias(MM)
171 -verbose
172 Common C ObjC C++ ObjC++ Alias(v)
174 -write-dependencies
175 C ObjC C++ ObjC++ NoDriverArg Separate Alias(MD) MissingArgError(missing filename after %qs)
177 -write-user-dependencies
178 C ObjC C++ ObjC++ NoDriverArg Separate Alias(MMD) MissingArgError(missing filename after %qs)
181 C ObjC C++ ObjC++ Joined Separate MissingArgError(assertion missing after %qs)
182 -A<question>=<answer>   Assert the <answer> to <question>.  Putting '-' before <question> disables the <answer> to <question>
185 C ObjC C++ ObjC++
186 Do not discard comments
189 C ObjC C++ ObjC++
190 Do not discard comments in macro expansions
193 C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
194 -D<macro>[=<val>]       Define a <macro> with <val> as its value.  If just <macro> is given, <val> is taken to be 1
197 C ObjC C++ ObjC++ Undocumented Var(flag_preprocess_only)
200 Driver C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
201 -F <dir>        Add <dir> to the end of the main framework include path
204 C ObjC C++ ObjC++
205 Print the name of header files as they are used
208 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
209 -I <dir>        Add <dir> to the end of the main include path
212 C ObjC C++ ObjC++
213 Generate make dependencies
216 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
217 Generate make dependencies and compile
220 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
221 -MF <file>      Write dependency output to the given file
224 C ObjC C++ ObjC++
225 Treat missing header files as generated files
228 C ObjC C++ ObjC++
229 Like -M but ignore system header files
232 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
233 Like -MD but ignore system header files
236 C ObjC C++ ObjC++
237 Generate phony targets for all headers
240 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
241 -MQ <target>    Add a MAKE-quoted target
244 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
245 -MT <target>    Add an unquoted target
248 C ObjC C++ ObjC++
249 Do not generate #line directives
252 C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
253 -U<macro>       Undefine <macro>
255 Wabi
256 C ObjC C++ ObjC++ LTO Var(warn_abi) Warning
257 Warn about things that will change when compiling with an ABI-compliant compiler
259 Wabi=
260 C ObjC C++ ObjC++ LTO Joined RejectNegative UInteger Warning
261 Warn about things that change between the current -fabi-version and the specified version
263 Wabi-tag
264 C++ ObjC++ Var(warn_abi_tag) Warning
265 Warn if a subobject has an abi_tag attribute that the complete object type does not have
267 Wpsabi
268 C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Undocumented LangEnabledBy(C ObjC C++ ObjC++,Wabi)
270 Waddress
271 C ObjC C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
272 Warn about suspicious uses of memory addresses
274 Wall
275 C ObjC C++ ObjC++ Warning
276 Enable most warning messages
278 Warray-bounds
279 LangEnabledBy(C ObjC C++ ObjC++,Wall)
280 ; in common.opt
282 Warray-bounds=
283 LangEnabledBy(C ObjC C++ ObjC++,Wall,1,0)
284 ; in common.opt
286 Wassign-intercept
287 ObjC ObjC++ Var(warn_assign_intercept) Warning
288 Warn whenever an Objective-C assignment is being intercepted by the garbage collector
290 Wbad-function-cast
291 C ObjC Var(warn_bad_function_cast) Warning
292 Warn about casting functions to incompatible types
294 Wbool-compare
295 C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
296 Warn about boolean expression compared with an integer value different from true/false
298 Wbuiltin-macro-redefined
299 C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
300 Warn when a built-in preprocessor macro is undefined or redefined
302 Wc90-c99-compat
303 C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
304 Warn about features not present in ISO C90, but present in ISO C99
306 Wc99-c11-compat
307 C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
308 Warn about features not present in ISO C99, but present in ISO C11
310 Wc++-compat
311 C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
312 Warn about C constructs that are not in the common subset of C and C++
314 Wc++0x-compat
315 C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
317 Wc++11-compat
318 C++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT)
319 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011
321 Wc++14-compat
322 C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
323 Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014
325 Wcast-qual
326 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
327 Warn about casts which discard qualifiers
329 Wchar-subscripts
330 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
331 Warn about subscripts whose type is \"char\"
333 Wchkp
334 C ObjC C++ ObjC++ Var(warn_chkp) Warning EnabledBy(Wall)
335 Warn about memory access errors found by Pointer Bounds Checker
337 Wclobbered
338 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
339 Warn about variables that might be changed by \"longjmp\" or \"vfork\"
341 Wcomment
342 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
343 Warn about possibly nested block comments, and C++ comments spanning more than one physical line
345 Wcomments
346 C ObjC C++ ObjC++ Warning Alias(Wcomment)
347 Synonym for -Wcomment
349 Wconditionally-supported
350 C++ ObjC++ Var(warn_conditionally_supported) Warning
351 Warn for conditionally-supported constructs
353 Wconversion
354 C ObjC C++ ObjC++ Var(warn_conversion) Warning
355 Warn for implicit type conversions that may change a value
357 Wconversion-null
358 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
359 Warn for converting NULL from/to a non-pointer type
361 Wcpp
362 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
363 ; Documented in common.opt
365 Wctor-dtor-privacy
366 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
367 Warn when all constructors and destructors are private
369 Wdate-time
370 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
371 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage
373 Wdeclaration-after-statement
374 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
375 Warn when a declaration is found after a statement
377 Wdelete-incomplete
378 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
379 Warn when deleting a pointer to incomplete type
381 Wdelete-non-virtual-dtor
382 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
383 Warn about deleting polymorphic objects with non-virtual destructors
385 Wdeprecated
386 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
387 Warn if a deprecated compiler feature, class, method, or field is used
389 Wdesignated-init
390 C ObjC Var(warn_designated_init) Init(1) Warning
391 Warn about positional initialization of structs requiring designated initializers
393 Wdiscarded-array-qualifiers
394 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
395 Warn if qualifiers on arrays which are pointer targets are discarded
397 Wdiscarded-qualifiers
398 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
399 Warn if type qualifiers on pointers are discarded
401 Wdiv-by-zero
402 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
403 Warn about compile-time integer division by zero
405 Weffc++
406 C++ ObjC++ Var(warn_ecpp) Warning
407 Warn about violations of Effective C++ style rules
409 Wempty-body
410 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
411 Warn about an empty body in an if or else statement
413 Wendif-labels
414 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)
415 Warn about stray tokens after #elif and #endif
417 Wenum-compare
418 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
419 Warn about comparison of different enum types
421 Werror
422 C ObjC C++ ObjC++
423 ; Documented in common.opt
425 Werror-implicit-function-declaration
426 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
427 This switch is deprecated; use -Werror=implicit-function-declaration instead
429 Wfloat-conversion
430 C ObjC C++ ObjC++ Var(warn_float_conversion) LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
431 Warn for implicit type conversions that cause loss of floating point precision
433 Wfloat-equal
434 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
435 Warn if testing floating point numbers for equality
437 Wformat
438 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
439 Warn about printf/scanf/strftime/strfmon format string anomalies
441 Wformat-contains-nul
442 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
443 Warn about format strings that contain NUL bytes
445 Wformat-extra-args
446 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
447 Warn if passing too many arguments to a function for its format string
449 Wformat-nonliteral
450 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
451 Warn about format strings that are not literals
453 Wformat-security
454 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
455 Warn about possible security problems with format functions
457 Wformat-signedness
458 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
459 Warn about sign differences with format functions
461 Wformat-y2k
462 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
463 Warn about strftime formats yielding 2-digit years
465 Wformat-zero-length
466 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
467 Warn about zero-length formats
469 Wformat=
470 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
471 Warn about printf/scanf/strftime/strfmon format string anomalies
473 Wignored-qualifiers
474 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
475 Warn whenever type qualifiers are ignored.
477 Wincompatible-pointer-types
478 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
479 Warn when there is a conversion between pointers that have incompatible types
481 Winit-self
482 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
483 Warn about variables which are initialized to themselves
485 Wimplicit
486 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
487 Warn about implicit declarations
489 Wdouble-promotion
490 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
491 Warn about implicit conversions from \"float\" to \"double\"
493 Wimplicit-function-declaration
494 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
495 Warn about implicit function declarations
497 Wimplicit-int
498 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
499 Warn when a declaration does not specify a type
501 Wimport
502 C ObjC C++ ObjC++ Undocumented Ignore
504 Winherited-variadic-ctor
505 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
506 Warn about C++11 inheriting constructors when the base has a variadic constructor
508 Wint-conversion
509 C ObjC Var(warn_int_conversion) Init(1) Warning
510 Warn about incompatible integer to pointer and pointer to integer conversions
512 Wint-to-pointer-cast
513 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
514 Warn when there is a cast to a pointer from an integer of a different size
516 Winvalid-offsetof
517 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
518 Warn about invalid uses of the \"offsetof\" macro
520 Winvalid-pch
521 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
522 Warn about PCH files that are found but not used
524 Wjump-misses-init
525 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
526 Warn when a jump misses a variable initialization
528 Wliteral-suffix
529 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
530 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
532 Wlogical-op
533 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning 
534 Warn when a logical operator is suspiciously always evaluating to true or false
536 Wlogical-not-parentheses
537 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
538 Warn when logical not is used on the left hand side operand of a comparison
540 Wlong-long
541 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)
542 Do not warn about using \"long long\" when -pedantic
544 Wmain
545 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
546 Warn about suspicious declarations of \"main\"
548 Wmain
549 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
552 Wmemset-transposed-args
553 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
554 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not
556 Wmisleading-indentation
557 C C++ Common Var(warn_misleading_indentation) Warning
558 Warn when the indentation of the code does not reflect the block structure
560 Wmissing-braces
561 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
562 Warn about possibly missing braces around initializers
564 Wmissing-declarations
565 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
566 Warn about global functions without previous declarations
568 Wmissing-field-initializers
569 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
570 Warn about missing fields in struct initializers
572 Wsized-deallocation
573 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
574 Warn about missing sized deallocation functions
576 Wsizeof-pointer-memaccess
577 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
578 Warn about suspicious length parameters to certain string functions if the argument uses sizeof
580 Wsizeof-array-argument
581 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
582 Warn when sizeof is applied on a parameter declared as an array
584 Wsuggest-attribute=format
585 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
586 Warn about functions which might be candidates for format attributes
588 Wsuggest-override
589 C++ ObjC++ Var(warn_override) Warning
590 Suggest that the override keyword be used when the declaration of a virtual
591 function overrides another.
593 Wswitch
594 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
595 Warn about enumerated switches, with no default, missing a case
597 Wswitch-default
598 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
599 Warn about enumerated switches missing a \"default:\" statement
601 Wswitch-enum
602 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
603 Warn about all enumerated switches missing a specific case
605 Wswitch-bool
606 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
607 Warn about switches with boolean controlling expression
609 Wmissing-format-attribute
610 C ObjC C++ ObjC++ Alias(Wsuggest-attribute=format)
613 Wmissing-include-dirs
614 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
615 Warn about user-specified include directories that do not exist
617 Wmissing-parameter-type
618 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
619 Warn about function parameters declared without a type specifier in K&R-style functions
621 Wmissing-prototypes
622 C ObjC Var(warn_missing_prototypes) Warning
623 Warn about global functions without prototypes
625 Wmudflap
626 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
628 Wmultichar
629 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
630 Warn about use of multi-character character constants
632 Wnarrowing
633 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
634 Warn about narrowing conversions within { } that are ill-formed in C++11
636 Wnested-externs
637 C ObjC Var(warn_nested_externs) Warning
638 Warn about \"extern\" declarations not at file scope
640 Wnoexcept
641 C++ ObjC++ Var(warn_noexcept) Warning
642 Warn when a noexcept expression evaluates to false even though the expression can't actually throw
644 Wnon-template-friend
645 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
646 Warn when non-templatized friend functions are declared within a template
648 Wnon-virtual-dtor
649 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
650 Warn about non-virtual destructors
652 Wnonnull
653 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
654 Warn about NULL being passed to argument slots marked as requiring non-NULL
656 Wnonnull
657 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
660 Wnormalized
661 C ObjC C++ ObjC++ Alias(Wnormalized=,nfc,none)
664 Wnormalized=
665 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)
666 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings
668 ; Required for these enum values.
669 SourceInclude
670 cpplib.h
672 Enum
673 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
675 EnumValue
676 Enum(cpp_normalize_level) String(none) Value(normalized_none)
678 EnumValue
679 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
681 EnumValue
682 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
684 EnumValue
685 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
687 Wold-style-cast
688 C++ ObjC++ Var(warn_old_style_cast) Warning
689 Warn if a C-style cast is used in a program
691 Wold-style-declaration
692 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
693 Warn for obsolescent usage in a declaration
695 Wold-style-definition
696 C ObjC Var(warn_old_style_definition) Warning
697 Warn if an old-style parameter definition is used
699 Wopenmp-simd
700 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
701 Warn if a simd directive is overridden by the vectorizer cost model
703 Woverlength-strings
704 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
705 Warn if a string is longer than the maximum portable length specified by the standard
707 Woverloaded-virtual
708 C++ ObjC++ Var(warn_overloaded_virtual) Warning
709 Warn about overloaded virtual function names
711 Woverride-init
712 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
713 Warn about overriding initializers without side effects
715 Woverride-init-side-effects
716 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
717 Warn about overriding initializers with side effects
719 Wpacked-bitfield-compat
720 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
721 Warn about packed bit-fields whose offset changed in GCC 4.4
723 Wparentheses
724 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
725 Warn about possibly missing parentheses
727 Wpedantic
728 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
729 ; Documented in common.opt
731 Wpmf-conversions
732 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
733 Warn when converting the type of pointers to member functions
735 Wpointer-arith
736 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
737 Warn about function pointer arithmetic
739 Wpointer-sign
740 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
741 Warn when a pointer differs in signedness in an assignment
743 Wpointer-to-int-cast
744 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
745 Warn when a pointer is cast to an integer of a different size
747 Wpragmas
748 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
749 Warn about misuses of pragmas
751 Wproperty-assign-default
752 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
753 Warn if a property for an Objective-C object has no assign semantics specified
755 Wprotocol
756 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
757 Warn if inherited methods are unimplemented
759 Wredundant-decls
760 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
761 Warn about multiple declarations of the same object
763 Wreorder
764 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
765 Warn when the compiler reorders code
767 Wreturn-type
768 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
769 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
771 Wselector
772 ObjC ObjC++ Var(warn_selector) Warning
773 Warn if a selector has multiple methods
775 Wsequence-point
776 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
777 Warn about possible violations of sequence point rules
779 Wshadow-ivar
780 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
781 Warn if a local declaration hides an instance variable
783 Wshift-count-negative
784 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
785 Warn if shift count is negative
787 Wshift-count-overflow
788 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
789 Warn if shift count >= width of type
791 Wshift-negative-value
792 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
793 Warn if left shifting a negative value
795 Wsign-compare
796 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
797 Warn about signed-unsigned comparisons
799 Wsign-compare
800 C ObjC C++ ObjC++ EnabledBy(Wextra)
803 Wsign-conversion
804 C ObjC C++ ObjC++ Var(warn_sign_conversion) LangEnabledBy(C ObjC,Wconversion)
805 Warn for implicit type conversions between signed and unsigned integers
807 Wsign-promo
808 C++ ObjC++ Var(warn_sign_promo) Warning
809 Warn when overload promotes from unsigned to signed
811 Wstrict-null-sentinel
812 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
813 Warn about uncasted NULL used as sentinel
815 Wstrict-prototypes
816 C ObjC Var(warn_strict_prototypes) Warning
817 Warn about unprototyped function declarations
819 Wstrict-aliasing=
820 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
823 Wstrict-overflow=
824 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
827 Wstrict-selector-match
828 ObjC ObjC++ Var(warn_strict_selector_match) Warning
829 Warn if type signatures of candidate methods do not match exactly
831 Wsync-nand
832 C C++ Var(warn_sync_nand) Init(1) Warning
833 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used
835 Wsynth
836 C++ ObjC++ Var(warn_synth) Warning
837 Deprecated.  This switch has no effect
839 Wsystem-headers
840 C ObjC C++ ObjC++ Warning
841 ; Documented in common.opt
843 Wterminate
844 C++ ObjC++ Warning Var(warn_terminate) Init(1)
845 Warn if a throw expression will always result in a call to terminate()
847 Wtraditional
848 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
849 Warn about features not present in traditional C
851 Wtraditional-conversion
852 C ObjC Var(warn_traditional_conversion) Warning
853 Warn of prototypes causing type conversions different from what would happen in the absence of prototype
855 Wtrigraphs
856 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
857 Warn if trigraphs are encountered that might affect the meaning of the program
859 Wundeclared-selector
860 ObjC ObjC++ Var(warn_undeclared_selector) Warning
861 Warn about @selector()s without previously declared methods
863 Wundef
864 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
865 Warn if an undefined macro is used in an #if directive
867 Wuninitialized
868 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
871 Wmaybe-uninitialized
872 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
875 Wunknown-pragmas
876 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
877 Warn about unrecognized pragmas
879 Wunsuffixed-float-constants
880 C ObjC Var(warn_unsuffixed_float_constants) Warning
881 Warn about unsuffixed float constants
883 Wunused
884 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
885 ; documented in common.opt
887 Wunused-local-typedefs
888 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
889 Warn when typedefs locally defined in a function are not used
891 Wunused-macros
892 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
893 Warn about macros defined in the main file that are not used
895 Wunused-result
896 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
897 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
899 Wvariadic-macros
900 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)
901 Warn about using variadic macros
903 Wvarargs
904 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
905 Warn about questionable usage of the macros used to retrieve variable arguments
907 Wvla
908 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
909 Warn if a variable length array is used
911 Wvolatile-register-var
912 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
913 Warn when a register variable is declared volatile
915 Wvirtual-move-assign
916 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
917 Warn if a virtual base has a non-trivial move assignment operator
919 Wwrite-strings
920 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
921 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.
923 Wzero-as-null-pointer-constant
924 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
925 Warn when a literal '0' is used as null pointer
927 Wuseless-cast
928 C++ ObjC++ Var(warn_useless_cast) Warning
929 Warn about useless casts
931 ansi
932 C ObjC C++ ObjC++
933 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
936 C ObjC C++ ObjC++ Joined
937 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
939 fabi-compat-version=
940 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
941 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases
943 faccess-control
944 C++ ObjC++ Var(flag_access_control) Init(1)
945 Enforce class member access control semantics
947 fada-spec-parent=
948 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
949 -fada-spec-parent=unit  Dump Ada specs as child units of given parent
951 fall-virtual
952 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
954 fallow-parameterless-variadic-functions
955 C ObjC Var(flag_allow_parameterless_variadic_functions)
956 Allow variadic functions without named parameter
958 falt-external-templates
959 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
960 No longer supported
962 fasm
963 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
964 Recognize the \"asm\" keyword
966 ; Define extra predefined macros for use in libgcc.
967 fbuilding-libgcc
968 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
970 fbuiltin
971 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
972 Recognize built-in functions
974 fbuiltin-
975 C ObjC C++ ObjC++ Joined
977 fcanonical-system-headers
978 C ObjC C++ ObjC++
979 Where shorter, use canonicalized paths to systems headers.
981 fcheck-pointer-bounds
982 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
983 Add Pointer Bounds Checker instrumentation.  fchkp-* flags are used to
984 control instrumentation.  Currently available for C, C++ and ObjC.
986 fchkp-check-incomplete-type
987 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
988 Generate pointer bounds checks for variables with incomplete type
990 fchkp-zero-input-bounds-for-main
991 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
992 Use zero bounds for all incoming arguments in 'main' function.  It helps when
993 instrumented binaries are used with legacy libs.
995 fchkp-first-field-has-own-bounds
996 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
997 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
998 field in the structure.  By default pointer to the first field has the same
999 bounds as pointer to the whole structure.
1001 fchkp-narrow-bounds
1002 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
1003 Control how Pointer Bounds Checker handle pointers to object fields.  When
1004 narrowing is on, field bounds are used.  Otherwise full object bounds are used.
1006 fchkp-narrow-to-innermost-array
1007 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1008 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1009 nested static arryas access.  By default outermost array is used.
1011 fchkp-optimize
1012 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1013 Allow Pointer Bounds Checker optimizations.  By default allowed
1014 on optimization levels >0.
1016 fchkp-use-fast-string-functions
1017 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1018 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1020 fchkp-use-nochk-string-functions
1021 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1022 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1024 fchkp-use-static-bounds
1025 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1026 Use statically initialized variable for vars bounds instead of
1027 generating them each time it is required.
1029 fchkp-use-static-const-bounds
1030 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1031 Use statically initialized variable for constant bounds instead of
1032 generating them each time it is required.
1034 fchkp-treat-zero-dynamic-size-as-infinite
1035 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1036 With this option zero size obtained dynamically for objects with
1037 incomplete type will be treated as infinite.
1039 fchkp-check-read
1040 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1041 Generate checks for all read accesses to memory.
1043 fchkp-check-write
1044 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1045 Generate checks for all write accesses to memory.
1047 fchkp-store-bounds
1048 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1049 Generate bounds stores for pointer writes.
1051 fchkp-instrument-calls
1052 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1053 Generate bounds passing for calls.
1055 fchkp-instrument-marked-only
1056 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1057 Instrument only functions marked with bnd_instrument attribute.
1059 fchkp-use-wrappers
1060 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1061 Transform instrumented builtin calls into calls to wrappers.
1063 static-libmpx
1064 Driver
1066 static-libmpxwrappers
1067 Driver
1069 fcilkplus
1070 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1071 Enable Cilk Plus
1073 fcond-mismatch
1074 C ObjC C++ ObjC++
1075 Allow the arguments of the '?' operator to have different types
1077 fconserve-space
1078 C++ ObjC++ Var(flag_conserve_space)
1079 Does nothing.  Preserved for backward compatibility.
1081 fconstant-string-class=
1082 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1083 -fconst-string-class=<name>     Use class <name> for constant strings
1085 fconstexpr-depth=
1086 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1087 -fconstexpr-depth=<number>      Specify maximum constexpr recursion depth
1089 fdebug-cpp
1090 C ObjC C++ ObjC++
1091 Emit debug annotations during preprocessing
1093 fdeduce-init-list
1094 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1095 -fdeduce-init-list      enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
1097 fdeclone-ctor-dtor
1098 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1099 Factor complex constructors and destructors to favor space over speed
1101 fdefault-inline
1102 C++ ObjC++ Ignore
1103 Does nothing.  Preserved for backward compatibility.
1105 fdirectives-only
1106 C ObjC C++ ObjC++
1107 Preprocess directives only.
1109 fdollars-in-identifiers
1110 C ObjC C++ ObjC++
1111 Permit '$' as an identifier character
1113 fdump-ada-spec
1114 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1115 Write all declarations as Ada code transitively
1117 fdump-ada-spec-slim
1118 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1119 Write all declarations as Ada code for the given file only
1121 felide-constructors
1122 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1124 fenforce-eh-specs
1125 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1126 Generate code to check exception specifications
1128 fenum-int-equiv
1129 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1131 fexec-charset=
1132 C ObjC C++ ObjC++ Joined RejectNegative
1133 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>
1135 fextended-identifiers
1136 C ObjC C++ ObjC++
1137 Permit universal character names (\\u and \\U) in identifiers
1139 finput-charset=
1140 C ObjC C++ ObjC++ Joined RejectNegative
1141 -finput-charset=<cset>  Specify the default character set for source files
1143 fextern-tls-init
1144 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1145 Support dynamic initialization of thread-local variables in a different translation unit
1147 fexternal-templates
1148 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1150 ffor-scope
1151 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1152 Scope of for-init-statement variables is local to the loop
1154 ffreestanding
1155 C ObjC C++ ObjC++
1156 Do not assume that standard C libraries and \"main\" exist
1158 fgnu-keywords
1159 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1160 Recognize GNU-defined keywords
1162 fgnu-runtime
1163 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1164 Generate code for GNU runtime environment
1166 fgnu89-inline
1167 C ObjC Var(flag_gnu89_inline) Init(-1)
1168 Use traditional GNU semantics for inline functions
1170 fguiding-decls
1171 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1173 fhandle-exceptions
1174 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1176 fhonor-std
1177 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1179 fhosted
1180 C ObjC
1181 Assume normal C execution environment
1183 fhuge-objects
1184 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1185 No longer supported
1187 fimplement-inlines
1188 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1189 Export functions even if they can be inlined
1191 fimplicit-inline-templates
1192 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1193 Emit implicit instantiations of inline templates
1195 fimplicit-templates
1196 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1197 Emit implicit instantiations of templates
1199 ffriend-injection
1200 C++ ObjC++ Var(flag_friend_injection)
1201 Inject friend functions into enclosing namespace
1203 fkeep-inline-dllexport
1204 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1205 Don't emit dllexported inline functions unless needed
1207 flabels-ok
1208 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1210 flax-vector-conversions
1211 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1212 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1214 fms-extensions
1215 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1216 Don't warn about uses of Microsoft extensions
1218 fmudflap
1219 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1221 fmudflapth
1222 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1224 fmudflapir
1225 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1227 fname-mangling-version-
1228 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1230 fnew-abi
1231 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1233 fnext-runtime
1234 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1235 Generate code for NeXT (Apple Mac OS X) runtime environment
1237 fnil-receivers
1238 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1239 Assume that receivers of Objective-C messages may be nil
1241 flocal-ivars
1242 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1243 Allow access to instance variables as if they were local declarations within instance method implementations.
1245 fivar-visibility=
1246 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1247 -fvisibility=[private|protected|public|package] Set the default symbol visibility
1249 Enum
1250 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1252 EnumValue
1253 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1255 EnumValue
1256 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1258 EnumValue
1259 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1261 EnumValue
1262 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1264 fnonansi-builtins
1265 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1267 fnonnull-objects
1268 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1270 fnothrow-opt
1271 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1272 Treat a throw() exception specification as noexcept to improve code size
1274 fobjc-abi-version=
1275 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1276 Specify which ABI to use for Objective-C family code and meta-data generation.
1278 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1279 ; to initialize any non-POD ivars in Objective-C++ classes.
1280 fobjc-call-cxx-cdtors
1281 ObjC++ Var(flag_objc_call_cxx_cdtors)
1282 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
1284 fobjc-direct-dispatch
1285 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1286 Allow fast jumps to the message dispatcher
1288 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1289 ; @try, etc.) in source code.
1290 fobjc-exceptions
1291 ObjC ObjC++ Var(flag_objc_exceptions)
1292 Enable Objective-C exception and synchronization syntax
1294 fobjc-gc
1295 ObjC ObjC++ LTO Var(flag_objc_gc)
1296 Enable garbage collection (GC) in Objective-C/Objective-C++ programs
1298 fobjc-nilcheck
1299 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1300 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1302 ; Nonzero means that we generate NeXT setjmp based exceptions.
1303 fobjc-sjlj-exceptions
1304 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1305 Enable Objective-C setjmp exception handling runtime
1307 fobjc-std=objc1
1308 ObjC ObjC++ Var(flag_objc1_only)
1309 Conform to the Objective-C 1.0 language as implemented in GCC 4.0
1311 fopenacc
1312 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1313 Enable OpenACC
1315 fopenmp
1316 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1317 Enable OpenMP (implies -frecursive in Fortran)
1319 fopenmp-simd
1320 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1321 Enable OpenMP's SIMD directives
1323 foperator-names
1324 C++ ObjC++
1325 Recognize C++ keywords like \"compl\" and \"xor\"
1327 foptional-diags
1328 C++ ObjC++ Ignore
1329 Does nothing.  Preserved for backward compatibility.
1331 fpch-deps
1332 C ObjC C++ ObjC++
1334 fpch-preprocess
1335 C ObjC C++ ObjC++
1336 Look for and use PCH files even when preprocessing
1338 fpermissive
1339 C++ ObjC++ Var(flag_permissive)
1340 Downgrade conformance errors to warnings
1342 fplan9-extensions
1343 C ObjC Var(flag_plan9_extensions)
1344 Enable Plan 9 language extensions
1346 fpreprocessed
1347 C ObjC C++ ObjC++
1348 Treat the input file as already preprocessed
1350 ftrack-macro-expansion
1351 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1352 ; converted into ftrack-macro-expansion=
1354 ftrack-macro-expansion=
1355 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1356 -ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages
1358 fpretty-templates
1359 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1360 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
1362 freplace-objc-classes
1363 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1364 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
1366 frepo
1367 C++ ObjC++
1368 Enable automatic template instantiation
1370 frtti
1371 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1372 Generate run time type descriptor information
1374 fshort-double
1375 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
1376 Use the same size for double as for float
1378 fshort-enums
1379 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1380 Use the narrowest integer type possible for enumeration types
1382 fshort-wchar
1383 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1384 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
1386 fsigned-bitfields
1387 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1388 When \"signed\" or \"unsigned\" is not given make the bitfield signed
1390 fsigned-char
1391 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1392 Make \"char\" signed by default
1394 fsized-deallocation
1395 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1396 Enable C++14 sized deallocation support
1398 fsquangle
1399 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1401 fstats
1402 C++ ObjC++ Var(flag_detailed_statistics)
1403 Display statistics accumulated during compilation
1405 fstrict-enums
1406 C++ ObjC++ Optimization Var(flag_strict_enums)
1407 Assume that values of enumeration type are always within the minimum range of that type
1409 fstrict-prototype
1410 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1412 ftabstop=
1413 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1414 -ftabstop=<number>      Distance between tab stops for column reporting
1416 ftemplate-backtrace-limit=
1417 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1418 Set the maximum number of template instantiation notes for a single warning or error
1420 ftemplate-depth-
1421 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1423 ftemplate-depth=
1424 C++ ObjC++ Joined RejectNegative UInteger
1425 -ftemplate-depth=<number>       Specify maximum template instantiation depth
1427 fthis-is-variable
1428 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1430 fthreadsafe-statics
1431 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1432 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
1434 funsigned-bitfields
1435 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1436 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
1438 funsigned-char
1439 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1440 Make \"char\" unsigned by default
1442 fuse-cxa-atexit
1443 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1444 Use __cxa_atexit to register destructors
1446 fuse-cxa-get-exception-ptr
1447 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1448 Use __cxa_get_exception_ptr in exception handling
1450 fvisibility-inlines-hidden
1451 C++ ObjC++
1452 Marks all inlined functions and methods as having hidden visibility
1454 fvisibility-ms-compat
1455 C++ ObjC++ Var(flag_visibility_ms_compat)
1456 Changes visibility to match Microsoft Visual Studio by default
1458 fvtable-gc
1459 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1460 No longer supported
1462 fvtable-thunks
1463 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1464 No longer supported
1466 fweak
1467 C++ ObjC++ Var(flag_weak) Init(1)
1468 Emit common-like symbols as weak symbols
1470 fwide-exec-charset=
1471 C ObjC C++ ObjC++ Joined RejectNegative
1472 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>
1474 fworking-directory
1475 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1476 Generate a #line directive pointing at the current working directory
1478 fxref
1479 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1480 No longer supported
1482 fzero-link
1483 ObjC ObjC++ Var(flag_zero_link)
1484 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
1486 gen-decls
1487 ObjC ObjC++ Var(flag_gen_declaration)
1488 Dump declarations to a .decl file
1490 femit-struct-debug-baseonly
1491 C ObjC C++ ObjC++
1492 -femit-struct-debug-baseonly    Aggressive reduced debug info for structs
1494 femit-struct-debug-reduced
1495 C ObjC C++ ObjC++
1496 -femit-struct-debug-reduced     Conservative reduced debug info for structs
1498 femit-struct-debug-detailed=
1499 C ObjC C++ ObjC++ Joined
1500 -femit-struct-debug-detailed=<spec-list>        Detailed reduced debug info for structs
1502 fext-numeric-literals
1503 C++ ObjC++ 
1504 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1505 number literal rather than a user-defined number literal.
1507 idirafter
1508 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1509 -idirafter <dir>        Add <dir> to the end of the system include path
1511 imacros
1512 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1513 -imacros <file> Accept definition of macros in <file>
1515 imultilib
1516 C ObjC C++ ObjC++ Joined Separate
1517 -imultilib <dir>        Set <dir> to be the multilib include subdirectory
1519 include
1520 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1521 -include <file> Include the contents of <file> before other files
1523 iprefix
1524 C ObjC C++ ObjC++ Joined Separate
1525 -iprefix <path> Specify <path> as a prefix for next two options
1527 isysroot
1528 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1529 -isysroot <dir> Set <dir> to be the system root directory
1531 isystem
1532 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1533 -isystem <dir>  Add <dir> to the start of the system include path
1535 iquote
1536 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1537 -iquote <dir>   Add <dir> to the end of the quote include path
1539 iwithprefix
1540 C ObjC C++ ObjC++ Joined Separate
1541 -iwithprefix <dir>      Add <dir> to the end of the system include path
1543 iwithprefixbefore
1544 C ObjC C++ ObjC++ Joined Separate
1545 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path
1547 lang-asm
1548 C Undocumented RejectDriver
1550 no-integrated-cpp
1551 Driver
1553 nostdinc
1554 C ObjC C++ ObjC++
1555 Do not search standard system include directories (those specified with -isystem will still be used)
1557 nostdinc++
1558 C++ ObjC++
1559 Do not search standard system include directories for C++
1562 C ObjC C++ ObjC++ Joined Separate
1563 ; Documented in common.opt
1565 pedantic
1566 C ObjC C++ ObjC++ Alias(Wpedantic)
1567 ; Documented in common.opt
1569 print-objc-runtime-info
1570 ObjC ObjC++
1571 Generate C header of platform-specific features
1573 remap
1574 C ObjC C++ ObjC++
1575 Remap file names when including files
1577 std=c++98
1578 C++ ObjC++
1579 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1581 std=c++03
1582 C++ ObjC++ Alias(std=c++98)
1583 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1585 std=c++11
1586 C++ ObjC++
1587 Conform to the ISO 2011 C++ standard
1589 std=c++0x
1590 C++ ObjC++ Alias(std=c++11) Undocumented
1591 Deprecated in favor of -std=c++11
1593 std=c++1y
1594 C++ ObjC++ Alias(std=c++14) Undocumented
1595 Deprecated in favor of -std=c++14
1597 std=c++14
1598 C++ ObjC++
1599 Conform to the ISO 2014 C++ standard
1601 std=c++1z
1602 C++ ObjC++
1603 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support)
1605 std=c++17
1606 C++ ObjC++ Alias(std=c++1z) Undocumented
1608 std=c11
1609 C ObjC
1610 Conform to the ISO 2011 C standard (experimental and incomplete support)
1612 std=c1x
1613 C ObjC Alias(std=c11)
1614 Deprecated in favor of -std=c11
1616 std=c89
1617 C ObjC Alias(std=c90)
1618 Conform to the ISO 1990 C standard
1620 std=c90
1621 C ObjC
1622 Conform to the ISO 1990 C standard
1624 std=c99
1625 C ObjC
1626 Conform to the ISO 1999 C standard
1628 std=c9x
1629 C ObjC Alias(std=c99)
1630 Deprecated in favor of -std=c99
1632 std=gnu++98
1633 C++ ObjC++
1634 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1635 corrigendum with GNU extensions
1637 std=gnu++03
1638 C++ ObjC++ Alias(std=gnu++98)
1639 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1640 corrigendum with GNU extensions
1642 std=gnu++11
1643 C++ ObjC++
1644 Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)
1646 std=gnu++0x
1647 C++ ObjC++ Alias(std=gnu++11) Undocumented
1648 Deprecated in favor of -std=gnu++11
1650 std=gnu++1y
1651 C++ ObjC++ Alias(std=gnu++14) Undocumented
1652 Deprecated in favor of -std=gnu++14
1654 std=gnu++14
1655 C++ ObjC++
1656 Conform to the ISO 2014 C++ standard with GNU extensions (experimental and incomplete support)
1658 std=gnu++1z
1659 C++ ObjC++
1660 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support)
1662 std=gnu++17
1663 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1665 std=gnu11
1666 C ObjC
1667 Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)
1669 std=gnu1x
1670 C ObjC Alias(std=gnu11)
1671 Deprecated in favor of -std=gnu11
1673 std=gnu89
1674 C ObjC Alias(std=gnu90)
1675 Conform to the ISO 1990 C standard with GNU extensions
1677 std=gnu90
1678 C ObjC
1679 Conform to the ISO 1990 C standard with GNU extensions
1681 std=gnu99
1682 C ObjC
1683 Conform to the ISO 1999 C standard with GNU extensions
1685 std=gnu9x
1686 C ObjC Alias(std=gnu99)
1687 Deprecated in favor of -std=gnu99
1689 std=iso9899:1990
1690 C ObjC Alias(std=c90)
1691 Conform to the ISO 1990 C standard
1693 std=iso9899:199409
1694 C ObjC
1695 Conform to the ISO 1990 C standard as amended in 1994
1697 std=iso9899:1999
1698 C ObjC Alias(std=c99)
1699 Conform to the ISO 1999 C standard
1701 std=iso9899:199x
1702 C ObjC Alias(std=c99)
1703 Deprecated in favor of -std=iso9899:1999
1705 std=iso9899:2011
1706 C ObjC Alias(std=c11)
1707 Conform to the ISO 2011 C standard (experimental and incomplete support)
1709 traditional
1710 Driver
1712 traditional-cpp
1713 C ObjC C++ ObjC++
1714 Enable traditional preprocessing
1716 trigraphs
1717 C ObjC C++ ObjC++
1718 -trigraphs      Support ISO C trigraphs
1720 undef
1721 C ObjC C++ ObjC++ Var(flag_undef)
1722 Do not predefine system-specific and GCC-specific macros
1725 C ObjC C++ ObjC++
1726 ; Documented in common.opt
1729 C ObjC C++ ObjC++
1730 ; Documented in common.opt
1732 ; This comment is to ensure we retain the blank line above.