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