* g++.dg/debug/dwarf2/ref-3.C: XFAIL AIX.
[official-gcc.git] / gcc / c-family / c.opt
blob7d8a7265752b04be4ad4b40d3637f2d394212bc9
1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2016 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) Warning 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 Enum
275 Name(warn_aligned_new_level) Type(int) UnknownError(argument %qs to %<-Waligned-new%> not recognized)
277 EnumValue
278 Enum(warn_aligned_new_level) String(none) Value(0)
280 EnumValue
281 Enum(warn_aligned_new_level) String(global) Value(1)
283 EnumValue
284 Enum(warn_aligned_new_level) String(all) Value(2)
286 Waligned-new
287 C++ ObjC++ Alias(Waligned-new=,global,none)
288 Warn about 'new' of type with extended alignment without -faligned-new.
290 Waligned-new=
291 C++ ObjC++ Var(warn_aligned_new) Enum(warn_aligned_new_level) Joined RejectNegative Warning LangEnabledBy(C++ ObjC++,Wall,1,0)
292 -Waligned-new=all Warn even if 'new' uses a class member allocation function.
294 Wall
295 C ObjC C++ ObjC++ Warning
296 Enable most warning messages.
298 Walloca
299 C ObjC C++ ObjC++ Var(warn_alloca) Warning
300 Warn on any use of alloca.
302 Walloca-larger-than=
303 C ObjC C++ ObjC++ Var(warn_alloca_limit) Warning Joined RejectNegative UInteger
304 -Walloca-larger-than=<number> Warn on unbounded uses of
305 alloca, and on bounded uses of alloca whose bound can be larger than
306 <number> bytes.
308 Warray-bounds
309 LangEnabledBy(C ObjC C++ ObjC++,Wall)
310 ; in common.opt
312 Warray-bounds=
313 LangEnabledBy(C ObjC C++ ObjC++,Wall,1,0)
314 ; in common.opt
316 Wassign-intercept
317 ObjC ObjC++ Var(warn_assign_intercept) Warning
318 Warn whenever an Objective-C assignment is being intercepted by the garbage collector.
320 Wbad-function-cast
321 C ObjC Var(warn_bad_function_cast) Warning
322 Warn about casting functions to incompatible types.
324 Wbool-compare
325 C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
326 Warn about boolean expression compared with an integer value different from true/false.
328 Wbool-operation
329 C ObjC C++ ObjC++ Var(warn_bool_op) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
330 Warn about certain operations on boolean expressions.
332 Wframe-address
333 C ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
334 Warn when __builtin_frame_address or __builtin_return_address is used unsafely.
336 Wbuiltin-macro-redefined
337 C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
338 Warn when a built-in preprocessor macro is undefined or redefined.
340 Wc90-c99-compat
341 C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
342 Warn about features not present in ISO C90, but present in ISO C99.
344 Wc99-c11-compat
345 C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
346 Warn about features not present in ISO C99, but present in ISO C11.
348 Wc++-compat
349 C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
350 Warn about C constructs that are not in the common subset of C and C++.
352 Wc++0x-compat
353 C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
355 Wc++11-compat
356 C++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT)
357 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011.
359 Wc++14-compat
360 C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
361 Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014.
363 Wcast-qual
364 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
365 Warn about casts which discard qualifiers.
367 Wchar-subscripts
368 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
369 Warn about subscripts whose type is \"char\".
371 Wchkp
372 C ObjC C++ ObjC++ Var(warn_chkp) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
373 Warn about memory access errors found by Pointer Bounds Checker.
375 Wclobbered
376 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
377 Warn about variables that might be changed by \"longjmp\" or \"vfork\".
379 Wcomment
380 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
381 Warn about possibly nested block comments, and C++ comments spanning more than one physical line.
383 Wcomments
384 C ObjC C++ ObjC++ Warning Alias(Wcomment)
385 Synonym for -Wcomment.
387 Wconditionally-supported
388 C++ ObjC++ Var(warn_conditionally_supported) Warning
389 Warn for conditionally-supported constructs.
391 Wconversion
392 C ObjC C++ ObjC++ Var(warn_conversion) Warning
393 Warn for implicit type conversions that may change a value.
395 Wconversion-null
396 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
397 Warn for converting NULL from/to a non-pointer type.
399 Wcpp
400 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
401 ; Documented in common.opt
403 Wctor-dtor-privacy
404 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
405 Warn when all constructors and destructors are private.
407 Wdangling-else
408 C ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
409 Warn about dangling else.
411 Wdate-time
412 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
413 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
415 Wdeclaration-after-statement
416 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
417 Warn when a declaration is found after a statement.
419 Wdelete-incomplete
420 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
421 Warn when deleting a pointer to incomplete type.
423 Wdelete-non-virtual-dtor
424 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
425 Warn about deleting polymorphic objects with non-virtual destructors.
427 Wdeprecated
428 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
429 Warn if a deprecated compiler feature, class, method, or field is used.
431 Wdesignated-init
432 C ObjC Var(warn_designated_init) Init(1) Warning
433 Warn about positional initialization of structs requiring designated initializers.
435 Wdiscarded-array-qualifiers
436 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
437 Warn if qualifiers on arrays which are pointer targets are discarded.
439 Wdiscarded-qualifiers
440 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
441 Warn if type qualifiers on pointers are discarded.
443 Wdiv-by-zero
444 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
445 Warn about compile-time integer division by zero.
447 Wduplicated-cond
448 C ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
449 Warn about duplicated conditions in an if-else-if chain.
451 Weffc++
452 C++ ObjC++ Var(warn_ecpp) Warning
453 Warn about violations of Effective C++ style rules.
455 Wempty-body
456 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
457 Warn about an empty body in an if or else statement.
459 Wendif-labels
460 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)
461 Warn about stray tokens after #elif and #endif.
463 Wenum-compare
464 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
465 Warn about comparison of different enum types.
467 Werror
468 C ObjC C++ ObjC++
469 ; Documented in common.opt
471 Werror-implicit-function-declaration
472 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
473 This switch is deprecated; use -Werror=implicit-function-declaration instead.
475 Wextra
476 C ObjC C++ ObjC++ Warning
477 ; in common.opt
479 Wfloat-conversion
480 C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
481 Warn for implicit type conversions that cause loss of floating point precision.
483 Wfloat-equal
484 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
485 Warn if testing floating point numbers for equality.
487 Wformat
488 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
489 Warn about printf/scanf/strftime/strfmon format string anomalies.
491 Wformat-contains-nul
492 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
493 Warn about format strings that contain NUL bytes.
495 Wformat-extra-args
496 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
497 Warn if passing too many arguments to a function for its format string.
499 Wformat-length
500 C ObjC C++ ObjC++ Warning Alias(Wformat-length=, 1, 0)
501 Warn about function calls with format strings that write past the end
502 of the destination region.  Same as -Wformat-length=1.
504 Wformat-nonliteral
505 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
506 Warn about format strings that are not literals.
508 Wformat-security
509 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
510 Warn about possible security problems with format functions.
512 Wformat-signedness
513 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
514 Warn about sign differences with format functions.
516 Wformat-y2k
517 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
518 Warn about strftime formats yielding 2-digit years.
520 Wformat-zero-length
521 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
522 Warn about zero-length formats.
524 Wformat=
525 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
526 Warn about printf/scanf/strftime/strfmon format string anomalies.
528 Wformat-length=
529 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
530 Warn about function calls with format strings that write past the end
531 of the destination region.
533 Wignored-qualifiers
534 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
535 Warn whenever type qualifiers are ignored.
537 Wignored-attributes
538 C C++ Var(warn_ignored_attributes) Init(1) Warning
539 Warn whenever attributes are ignored.
541 Wincompatible-pointer-types
542 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
543 Warn when there is a conversion between pointers that have incompatible types.
545 Winit-self
546 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
547 Warn about variables which are initialized to themselves.
549 Wimplicit
550 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
551 Warn about implicit declarations.
553 Wimplicit-fallthrough=
554 LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
555 ; in common.opt
557 Wdouble-promotion
558 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
559 Warn about implicit conversions from \"float\" to \"double\".
561 Wimplicit-function-declaration
562 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
563 Warn about implicit function declarations.
565 Wimplicit-int
566 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
567 Warn when a declaration does not specify a type.
569 Wimport
570 C ObjC C++ ObjC++ Undocumented Ignore
572 Winherited-variadic-ctor
573 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
574 Warn about C++11 inheriting constructors when the base has a variadic constructor.
576 Wint-conversion
577 C ObjC Var(warn_int_conversion) Init(1) Warning
578 Warn about incompatible integer to pointer and pointer to integer conversions.
580 Wint-in-bool-context
581 C ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
582 Warn for suspicious integer expressions in boolean context.
584 Wint-to-pointer-cast
585 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
586 Warn when there is a cast to a pointer from an integer of a different size.
588 Winvalid-offsetof
589 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
590 Warn about invalid uses of the \"offsetof\" macro.
592 Winvalid-pch
593 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
594 Warn about PCH files that are found but not used.
596 Wjump-misses-init
597 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
598 Warn when a jump misses a variable initialization.
600 Wliteral-suffix
601 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
602 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
604 Wlogical-op
605 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
606 Warn when a logical operator is suspiciously always evaluating to true or false.
608 Wlogical-not-parentheses
609 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
610 Warn when logical not is used on the left hand side operand of a comparison.
612 Wlong-long
613 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)
614 Do not warn about using \"long long\" when -pedantic.
616 Wmain
617 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
618 Warn about suspicious declarations of \"main\".
620 Wmain
621 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
624 Wmemset-transposed-args
625 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
626 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
628 Wmemset-elt-size
629 C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
630 Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
632 Wmisleading-indentation
633 C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
634 Warn when the indentation of the code does not reflect the block structure.
636 Wmissing-braces
637 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
638 Warn about possibly missing braces around initializers.
640 Wmissing-declarations
641 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
642 Warn about global functions without previous declarations.
644 Wmissing-field-initializers
645 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
646 Warn about missing fields in struct initializers.
648 Wmultiple-inheritance
649 C++ ObjC++ Var(warn_multiple_inheritance) Warning
650 Warn on direct multiple inheritance.
652 Wnamespaces
653 C++ ObjC++ Var(warn_namespaces) Warning
654 Warn on namespace definition.
656 Wsized-deallocation
657 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
658 Warn about missing sized deallocation functions.
660 Wsizeof-pointer-memaccess
661 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
662 Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
664 Wsizeof-array-argument
665 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
666 Warn when sizeof is applied on a parameter declared as an array.
668 Wsuggest-attribute=format
669 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
670 Warn about functions which might be candidates for format attributes.
672 Wsuggest-override
673 C++ ObjC++ Var(warn_override) Warning
674 Suggest that the override keyword be used when the declaration of a virtual
675 function overrides another.
677 Wswitch
678 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
679 Warn about enumerated switches, with no default, missing a case.
681 Wswitch-default
682 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
683 Warn about enumerated switches missing a \"default:\" statement.
685 Wswitch-enum
686 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
687 Warn about all enumerated switches missing a specific case.
689 Wswitch-bool
690 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
691 Warn about switches with boolean controlling expression.
693 Wtemplates
694 C++ ObjC++ Var(warn_templates) Warning
695 Warn on primary template declaration.
697 Wmissing-format-attribute
698 C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
701 Wmissing-include-dirs
702 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
703 Warn about user-specified include directories that do not exist.
705 Wmissing-parameter-type
706 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
707 Warn about function parameters declared without a type specifier in K&R-style functions.
709 Wmissing-prototypes
710 C ObjC Var(warn_missing_prototypes) Warning
711 Warn about global functions without prototypes.
713 Wmudflap
714 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
716 Wmultichar
717 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
718 Warn about use of multi-character character constants.
720 Wnarrowing
721 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
722 Warn about narrowing conversions within { } that are ill-formed in C++11.
724 Wnested-externs
725 C ObjC Var(warn_nested_externs) Warning
726 Warn about \"extern\" declarations not at file scope.
728 Wnoexcept
729 C++ ObjC++ Var(warn_noexcept) Warning
730 Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
732 Wnon-template-friend
733 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
734 Warn when non-templatized friend functions are declared within a template.
736 Wnon-virtual-dtor
737 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
738 Warn about non-virtual destructors.
740 Wnonnull
741 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
742 Warn about NULL being passed to argument slots marked as requiring non-NULL.
744 Wnonnull
745 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
748 Wnonnull-compare
749 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
752 Wnormalized
753 C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
756 Wnormalized=
757 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)
758 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings.
760 ; Required for these enum values.
761 SourceInclude
762 cpplib.h
764 Enum
765 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
767 EnumValue
768 Enum(cpp_normalize_level) String(none) Value(normalized_none)
770 EnumValue
771 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
773 EnumValue
774 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
776 EnumValue
777 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
779 Wold-style-cast
780 C++ ObjC++ Var(warn_old_style_cast) Warning
781 Warn if a C-style cast is used in a program.
783 Wold-style-declaration
784 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
785 Warn for obsolescent usage in a declaration.
787 Wold-style-definition
788 C ObjC Var(warn_old_style_definition) Warning
789 Warn if an old-style parameter definition is used.
791 Wopenmp-simd
792 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
793 Warn if a simd directive is overridden by the vectorizer cost model.
795 Woverlength-strings
796 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
797 Warn if a string is longer than the maximum portable length specified by the standard.
799 Woverloaded-virtual
800 C++ ObjC++ Var(warn_overloaded_virtual) Warning
801 Warn about overloaded virtual function names.
803 Woverride-init
804 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
805 Warn about overriding initializers without side effects.
807 Woverride-init-side-effects
808 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
809 Warn about overriding initializers with side effects.
811 Wpacked-bitfield-compat
812 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
813 Warn about packed bit-fields whose offset changed in GCC 4.4.
815 Wparentheses
816 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
817 Warn about possibly missing parentheses.
819 Wpedantic
820 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
821 ; Documented in common.opt
823 Wpmf-conversions
824 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
825 Warn when converting the type of pointers to member functions.
827 Wpointer-arith
828 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
829 Warn about function pointer arithmetic.
831 Wpointer-sign
832 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
833 Warn when a pointer differs in signedness in an assignment.
835 Wpointer-to-int-cast
836 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
837 Warn when a pointer is cast to an integer of a different size.
839 Wpragmas
840 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
841 Warn about misuses of pragmas.
843 Wproperty-assign-default
844 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
845 Warn if a property for an Objective-C object has no assign semantics specified.
847 Wprotocol
848 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
849 Warn if inherited methods are unimplemented.
851 Wplacement-new
852 C++ Warning Alias(Wplacement-new=, 1, 0)
853 Warn for placement new expressions with undefined behavior.
855 Wplacement-new=
856 C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning
857 Warn for placement new expressions with undefined behavior.
859 Wredundant-decls
860 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
861 Warn about multiple declarations of the same object.
863 Wregister
864 C++ ObjC++ Var(warn_register) Warning
865 Warn about uses of register storage specifier.
867 Wreorder
868 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
869 Warn when the compiler reorders code.
871 Wreturn-type
872 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
873 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
875 Wscalar-storage-order
876 C ObjC C++ ObjC++ Init(1) Warning
877 Warn on suspicious constructs involving reverse scalar storage order.
879 Wselector
880 ObjC ObjC++ Var(warn_selector) Warning
881 Warn if a selector has multiple methods.
883 Wsequence-point
884 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
885 Warn about possible violations of sequence point rules.
887 Wshadow-ivar
888 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
889 Warn if a local declaration hides an instance variable.
891 Wshift-overflow
892 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
893 Warn if left shift of a signed value overflows.
895 Wshift-overflow=
896 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning
897 Warn if left shift of a signed value overflows.
899 Wshift-count-negative
900 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
901 Warn if shift count is negative.
903 Wshift-count-overflow
904 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
905 Warn if shift count >= width of type.
907 Wshift-negative-value
908 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
909 Warn if left shifting a negative value.
911 Wsign-compare
912 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
913 Warn about signed-unsigned comparisons.
915 Wsign-compare
916 C ObjC C++ ObjC++ EnabledBy(Wextra)
919 Wsign-conversion
920 C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
921 Warn for implicit type conversions between signed and unsigned integers.
923 Wsign-promo
924 C++ ObjC++ Var(warn_sign_promo) Warning
925 Warn when overload promotes from unsigned to signed.
927 Wstrict-null-sentinel
928 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
929 Warn about uncasted NULL used as sentinel.
931 Wstrict-prototypes
932 C ObjC Var(warn_strict_prototypes) Warning
933 Warn about unprototyped function declarations.
935 Wstrict-aliasing=
936 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
939 Wstrict-overflow=
940 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
943 Wstrict-selector-match
944 ObjC ObjC++ Var(warn_strict_selector_match) Warning
945 Warn if type signatures of candidate methods do not match exactly.
947 Wsync-nand
948 C C++ Var(warn_sync_nand) Init(1) Warning
949 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
951 Wsynth
952 C++ ObjC++ Var(warn_synth) Warning
953 Deprecated.  This switch has no effect.
955 Wsystem-headers
956 C ObjC C++ ObjC++ Warning
957 ; Documented in common.opt
959 Wtautological-compare
960 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
961 Warn if a comparison always evaluates to true or false.
963 Wterminate
964 C++ ObjC++ Warning Var(warn_terminate) Init(1)
965 Warn if a throw expression will always result in a call to terminate().
967 Wtraditional
968 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
969 Warn about features not present in traditional C.
971 Wtraditional-conversion
972 C ObjC Var(warn_traditional_conversion) Warning
973 Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
975 Wtrigraphs
976 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
977 Warn if trigraphs are encountered that might affect the meaning of the program.
979 Wundeclared-selector
980 ObjC ObjC++ Var(warn_undeclared_selector) Warning
981 Warn about @selector()s without previously declared methods.
983 Wundef
984 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
985 Warn if an undefined macro is used in an #if directive.
987 Wuninitialized
988 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
991 Wmaybe-uninitialized
992 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
995 Wunknown-pragmas
996 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
997 Warn about unrecognized pragmas.
999 Wunsuffixed-float-constants
1000 C ObjC Var(warn_unsuffixed_float_constants) Warning
1001 Warn about unsuffixed float constants.
1003 Wunused
1004 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1005 ; documented in common.opt
1007 Wunused-local-typedefs
1008 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
1009 Warn when typedefs locally defined in a function are not used.
1011 Wunused-macros
1012 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
1013 Warn about macros defined in the main file that are not used.
1015 Wunused-result
1016 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
1017 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
1019 Wunused-variable
1020 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
1021 ; documented in common.opt
1023 Wunused-const-variable
1024 C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
1025 Warn when a const variable is unused.
1027 Wunused-const-variable=
1028 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0)
1029 Warn when a const variable is unused.
1031 Wvariadic-macros
1032 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)
1033 Warn about using variadic macros.
1035 Wvarargs
1036 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
1037 Warn about questionable usage of the macros used to retrieve variable arguments.
1039 Wvla
1040 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
1041 Warn if a variable length array is used.
1043 Wvla-larger-than=
1044 C ObjC C++ ObjC++ Var(warn_vla_limit) Warning Joined RejectNegative UInteger
1045 -Wvla-larger-than=<number> Warn on unbounded uses of variable-length arrays, and
1046 on bounded uses of variable-length arrays whose bound can be
1047 larger than <number> bytes.
1049 Wvolatile-register-var
1050 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1051 Warn when a register variable is declared volatile.
1053 Wvirtual-inheritance
1054 C++ ObjC++ Var(warn_virtual_inheritance) Warning
1055 Warn on direct virtual inheritance.
1057 Wvirtual-move-assign
1058 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
1059 Warn if a virtual base has a non-trivial move assignment operator.
1061 Wwrite-strings
1062 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
1063 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.
1065 Wzero-as-null-pointer-constant
1066 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
1067 Warn when a literal '0' is used as null pointer.
1069 Wuseless-cast
1070 C++ ObjC++ Var(warn_useless_cast) Warning
1071 Warn about useless casts.
1073 Wsubobject-linkage
1074 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
1075 Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.
1077 Wduplicate-decl-specifier
1078 C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1079 Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1081 ansi
1082 C ObjC C++ ObjC++
1083 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
1086 C ObjC C++ ObjC++ Joined
1087 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
1089 fabi-compat-version=
1090 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
1091 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
1093 faccess-control
1094 C++ ObjC++ Var(flag_access_control) Init(1)
1095 Enforce class member access control semantics.
1097 fada-spec-parent=
1098 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
1099 -fada-spec-parent=unit  Dump Ada specs as child units of given parent.
1101 faligned-new
1102 C++ ObjC++ Alias(faligned-new=,1,0)
1103 Support C++17 allocation of over-aligned types.
1105 faligned-new=
1106 C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
1107 -faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
1109 fall-virtual
1110 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1112 fallow-parameterless-variadic-functions
1113 C ObjC Var(flag_allow_parameterless_variadic_functions)
1114 Allow variadic functions without named parameter.
1116 falt-external-templates
1117 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1118 No longer supported.
1120 fasm
1121 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1122 Recognize the \"asm\" keyword.
1124 ; Define extra predefined macros for use in libgcc.
1125 fbuilding-libgcc
1126 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1128 fbuiltin
1129 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1130 Recognize built-in functions.
1132 fbuiltin-
1133 C ObjC C++ ObjC++ Joined
1135 fcanonical-system-headers
1136 C ObjC C++ ObjC++
1137 Where shorter, use canonicalized paths to systems headers.
1139 fcheck-pointer-bounds
1140 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
1141 Add Pointer Bounds Checker instrumentation.  fchkp-* flags are used to
1142 control instrumentation.  Currently available for C, C++ and ObjC.
1144 fchkp-check-incomplete-type
1145 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
1146 Generate pointer bounds checks for variables with incomplete type.
1148 fchkp-zero-input-bounds-for-main
1149 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
1150 Use zero bounds for all incoming arguments in 'main' function.  It helps when
1151 instrumented binaries are used with legacy libs.
1153 fchkp-first-field-has-own-bounds
1154 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
1155 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1156 field in the structure.  By default pointer to the first field has the same
1157 bounds as pointer to the whole structure.
1159 fchkp-narrow-bounds
1160 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
1161 Control how Pointer Bounds Checker handle pointers to object fields.  When
1162 narrowing is on, field bounds are used.  Otherwise full object bounds are used.
1164 fchkp-narrow-to-innermost-array
1165 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1166 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1167 nested static arryas access.  By default outermost array is used.
1169 fchkp-optimize
1170 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1171 Allow Pointer Bounds Checker optimizations.  By default allowed
1172 on optimization levels >0.
1174 fchkp-use-fast-string-functions
1175 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1176 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1178 fchkp-use-nochk-string-functions
1179 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1180 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1182 fchkp-use-static-bounds
1183 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1184 Use statically initialized variable for vars bounds instead of
1185 generating them each time it is required.
1187 fchkp-use-static-const-bounds
1188 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1189 Use statically initialized variable for constant bounds instead of
1190 generating them each time it is required.
1192 fchkp-treat-zero-dynamic-size-as-infinite
1193 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1194 With this option zero size obtained dynamically for objects with
1195 incomplete type will be treated as infinite.
1197 fchkp-check-read
1198 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1199 Generate checks for all read accesses to memory.
1201 fchkp-check-write
1202 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1203 Generate checks for all write accesses to memory.
1205 fchkp-store-bounds
1206 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1207 Generate bounds stores for pointer writes.
1209 fchkp-instrument-calls
1210 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1211 Generate bounds passing for calls.
1213 fchkp-instrument-marked-only
1214 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1215 Instrument only functions marked with bnd_instrument attribute.
1217 fchkp-use-wrappers
1218 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1219 Transform instrumented builtin calls into calls to wrappers.
1221 static-libmpx
1222 Driver
1224 static-libmpxwrappers
1225 Driver
1227 fcilkplus
1228 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1229 Enable Cilk Plus.
1231 fconcepts
1232 C++ ObjC++ Var(flag_concepts)
1233 Enable support for C++ concepts.
1235 fcond-mismatch
1236 C ObjC C++ ObjC++
1237 Allow the arguments of the '?' operator to have different types.
1239 fconserve-space
1240 C++ ObjC++ Var(flag_conserve_space)
1241 Does nothing.  Preserved for backward compatibility.
1243 fconstant-string-class=
1244 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1245 -fconst-string-class=<name>     Use class <name> for constant strings.
1247 fconstexpr-depth=
1248 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1249 -fconstexpr-depth=<number>      Specify maximum constexpr recursion depth.
1251 fconstexpr-loop-limit=
1252 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1253 -fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1255 fdebug-cpp
1256 C ObjC C++ ObjC++
1257 Emit debug annotations during preprocessing.
1259 fdeduce-init-list
1260 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1261 -fdeduce-init-list      enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
1263 fdeclone-ctor-dtor
1264 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1265 Factor complex constructors and destructors to favor space over speed.
1267 fdefault-inline
1268 C++ ObjC++ Ignore
1269 Does nothing.  Preserved for backward compatibility.
1271 fdirectives-only
1272 C ObjC C++ ObjC++
1273 Preprocess directives only.
1275 fdollars-in-identifiers
1276 C ObjC C++ ObjC++
1277 Permit '$' as an identifier character.
1279 fdump-ada-spec
1280 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1281 Write all declarations as Ada code transitively.
1283 fdump-ada-spec-slim
1284 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1285 Write all declarations as Ada code for the given file only.
1287 felide-constructors
1288 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1290 fenforce-eh-specs
1291 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1292 Generate code to check exception specifications.
1294 fenum-int-equiv
1295 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1297 fexec-charset=
1298 C ObjC C++ ObjC++ Joined RejectNegative
1299 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>.
1301 fextended-identifiers
1302 C ObjC C++ ObjC++
1303 Permit universal character names (\\u and \\U) in identifiers.
1305 finput-charset=
1306 C ObjC C++ ObjC++ Joined RejectNegative
1307 -finput-charset=<cset>  Specify the default character set for source files.
1309 fextern-tls-init
1310 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1311 Support dynamic initialization of thread-local variables in a different translation unit.
1313 fexternal-templates
1314 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1316 ffor-scope
1317 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1318 Scope of for-init-statement variables is local to the loop.
1320 ffreestanding
1321 C ObjC C++ ObjC++
1322 Do not assume that standard C libraries and \"main\" exist.
1324 fgnu-keywords
1325 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1326 Recognize GNU-defined keywords.
1328 fgnu-runtime
1329 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1330 Generate code for GNU runtime environment.
1332 fgnu89-inline
1333 C ObjC Var(flag_gnu89_inline) Init(-1)
1334 Use traditional GNU semantics for inline functions.
1336 fguiding-decls
1337 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1339 fhandle-exceptions
1340 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1342 fhonor-std
1343 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1345 fhosted
1346 C ObjC
1347 Assume normal C execution environment.
1349 fhuge-objects
1350 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1351 No longer supported.
1353 fimplement-inlines
1354 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1355 Export functions even if they can be inlined.
1357 fimplicit-inline-templates
1358 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1359 Emit implicit instantiations of inline templates.
1361 fimplicit-templates
1362 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1363 Emit implicit instantiations of templates.
1365 fnew-inheriting-ctors
1366 C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
1367 Implement C++17 inheriting constructor semantics.
1369 ffriend-injection
1370 C++ ObjC++ Var(flag_friend_injection)
1371 Inject friend functions into enclosing namespace.
1373 fkeep-inline-dllexport
1374 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1375 Don't emit dllexported inline functions unless needed.
1377 flabels-ok
1378 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1380 flax-vector-conversions
1381 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1382 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1384 fms-extensions
1385 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1386 Don't warn about uses of Microsoft extensions.
1388 fmudflap
1389 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1391 fmudflapth
1392 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1394 fmudflapir
1395 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1397 fname-mangling-version-
1398 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1400 fnew-abi
1401 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1403 fnext-runtime
1404 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1405 Generate code for NeXT (Apple Mac OS X) runtime environment.
1407 fnil-receivers
1408 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1409 Assume that receivers of Objective-C messages may be nil.
1411 flocal-ivars
1412 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1413 Allow access to instance variables as if they were local declarations within instance method implementations.
1415 fivar-visibility=
1416 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1417 -fvisibility=[private|protected|public|package] Set the default symbol visibility.
1419 Enum
1420 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1422 EnumValue
1423 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1425 EnumValue
1426 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1428 EnumValue
1429 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1431 EnumValue
1432 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1434 fnonansi-builtins
1435 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1437 fnonnull-objects
1438 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1440 fnothrow-opt
1441 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1442 Treat a throw() exception specification as noexcept to improve code size.
1444 fobjc-abi-version=
1445 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1446 Specify which ABI to use for Objective-C family code and meta-data generation.
1448 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1449 ; to initialize any non-POD ivars in Objective-C++ classes.
1450 fobjc-call-cxx-cdtors
1451 ObjC++ Var(flag_objc_call_cxx_cdtors)
1452 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
1454 fobjc-direct-dispatch
1455 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1456 Allow fast jumps to the message dispatcher.
1458 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1459 ; @try, etc.) in source code.
1460 fobjc-exceptions
1461 ObjC ObjC++ Var(flag_objc_exceptions)
1462 Enable Objective-C exception and synchronization syntax.
1464 fobjc-gc
1465 ObjC ObjC++ LTO Var(flag_objc_gc)
1466 Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
1468 fobjc-nilcheck
1469 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1470 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1472 ; Nonzero means that we generate NeXT setjmp based exceptions.
1473 fobjc-sjlj-exceptions
1474 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1475 Enable Objective-C setjmp exception handling runtime.
1477 fobjc-std=objc1
1478 ObjC ObjC++ Var(flag_objc1_only)
1479 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
1481 fopenacc
1482 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1483 Enable OpenACC.
1485 fopenacc-dim=
1486 C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1487 Specify default OpenACC compute dimensions.
1489 fopenmp
1490 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1491 Enable OpenMP (implies -frecursive in Fortran).
1493 fopenmp-simd
1494 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1495 Enable OpenMP's SIMD directives.
1497 foperator-names
1498 C++ ObjC++
1499 Recognize C++ keywords like \"compl\" and \"xor\".
1501 foptional-diags
1502 C++ ObjC++ Ignore
1503 Does nothing.  Preserved for backward compatibility.
1505 fpch-deps
1506 C ObjC C++ ObjC++
1508 fpch-preprocess
1509 C ObjC C++ ObjC++
1510 Look for and use PCH files even when preprocessing.
1512 fpermissive
1513 C++ ObjC++ Var(flag_permissive)
1514 Downgrade conformance errors to warnings.
1516 fplan9-extensions
1517 C ObjC Var(flag_plan9_extensions)
1518 Enable Plan 9 language extensions.
1520 fpreprocessed
1521 C ObjC C++ ObjC++
1522 Treat the input file as already preprocessed.
1524 ftrack-macro-expansion
1525 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1526 ; converted into ftrack-macro-expansion=
1528 ftrack-macro-expansion=
1529 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1530 -ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages.
1532 fpretty-templates
1533 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1534 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
1536 fprintf-return-value
1537 C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(0)
1538 Treat known sprintf return values as constants.
1540 freplace-objc-classes
1541 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1542 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
1544 frepo
1545 C++ ObjC++
1546 Enable automatic template instantiation.
1548 frtti
1549 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1550 Generate run time type descriptor information.
1552 fshort-enums
1553 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1554 Use the narrowest integer type possible for enumeration types.
1556 fshort-wchar
1557 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1558 Force the underlying type for \"wchar_t\" to be \"unsigned short\".
1560 fsigned-bitfields
1561 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1562 When \"signed\" or \"unsigned\" is not given make the bitfield signed.
1564 fsigned-char
1565 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1566 Make \"char\" signed by default.
1568 fsized-deallocation
1569 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1570 Enable C++14 sized deallocation support.
1572 fsquangle
1573 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1575 fsso-struct=
1576 C ObjC Joined Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1577 -fsso-struct=[big-endian|little-endian] Set the default scalar storage order.
1579 Enum
1580 Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1582 EnumValue
1583 Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1585 EnumValue
1586 Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1588 fstats
1589 C++ ObjC++ Var(flag_detailed_statistics)
1590 Display statistics accumulated during compilation.
1592 fstrict-enums
1593 C++ ObjC++ Optimization Var(flag_strict_enums)
1594 Assume that values of enumeration type are always within the minimum range of that type.
1596 fstrict-prototype
1597 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1599 fstrong-eval-order
1600 C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
1601 Follow the C++17 evaluation order requirements for assignment expressions,
1602 shift, member function calls, etc.
1604 fstrong-eval-order=
1605 C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) Init(-1)
1606 Follow the C++17 evaluation order requirements for assignment expressions,
1607 shift, member function calls, etc.
1609 Enum
1610 Name(strong_eval_order) Type(int)
1612 EnumValue
1613 Enum(strong_eval_order) String(none) Value(0)
1615 EnumValue
1616 Enum(strong_eval_order) String(some) Value(1)
1618 EnumValue
1619 Enum(strong_eval_order) String(all) Value(2)
1621 ftabstop=
1622 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1623 -ftabstop=<number>      Distance between tab stops for column reporting.
1625 ftemplate-backtrace-limit=
1626 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1627 Set the maximum number of template instantiation notes for a single warning or error.
1629 ftemplate-depth-
1630 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1632 ftemplate-depth=
1633 C++ ObjC++ Joined RejectNegative UInteger
1634 -ftemplate-depth=<number>       Specify maximum template instantiation depth.
1636 fthis-is-variable
1637 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1639 fthreadsafe-statics
1640 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1641 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
1643 funsigned-bitfields
1644 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1645 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
1647 funsigned-char
1648 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1649 Make \"char\" unsigned by default.
1651 fuse-cxa-atexit
1652 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1653 Use __cxa_atexit to register destructors.
1655 fuse-cxa-get-exception-ptr
1656 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1657 Use __cxa_get_exception_ptr in exception handling.
1659 fvisibility-inlines-hidden
1660 C++ ObjC++
1661 Marks all inlined functions and methods as having hidden visibility.
1663 fvisibility-ms-compat
1664 C++ ObjC++ Var(flag_visibility_ms_compat)
1665 Changes visibility to match Microsoft Visual Studio by default.
1667 fvtable-gc
1668 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1669 No longer supported.
1671 fvtable-thunks
1672 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1673 No longer supported.
1675 fweak
1676 C++ ObjC++ Var(flag_weak) Init(1)
1677 Emit common-like symbols as weak symbols.
1679 fwide-exec-charset=
1680 C ObjC C++ ObjC++ Joined RejectNegative
1681 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>.
1683 fworking-directory
1684 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1685 Generate a #line directive pointing at the current working directory.
1687 fxref
1688 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1689 No longer supported.
1691 fzero-link
1692 ObjC ObjC++ Var(flag_zero_link)
1693 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
1695 gen-decls
1696 ObjC ObjC++ Var(flag_gen_declaration)
1697 Dump declarations to a .decl file.
1699 femit-struct-debug-baseonly
1700 C ObjC C++ ObjC++
1701 -femit-struct-debug-baseonly    Aggressive reduced debug info for structs.
1703 femit-struct-debug-reduced
1704 C ObjC C++ ObjC++
1705 -femit-struct-debug-reduced     Conservative reduced debug info for structs.
1707 femit-struct-debug-detailed=
1708 C ObjC C++ ObjC++ Joined
1709 -femit-struct-debug-detailed=<spec-list>        Detailed reduced debug info for structs.
1711 fext-numeric-literals
1712 C++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
1713 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1714 number literal rather than a user-defined number literal.
1716 idirafter
1717 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1718 -idirafter <dir>        Add <dir> to the end of the system include path.
1720 imacros
1721 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1722 -imacros <file> Accept definition of macros in <file>.
1724 imultilib
1725 C ObjC C++ ObjC++ Joined Separate
1726 -imultilib <dir>        Set <dir> to be the multilib include subdirectory.
1728 include
1729 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1730 -include <file> Include the contents of <file> before other files.
1732 iprefix
1733 C ObjC C++ ObjC++ Joined Separate
1734 -iprefix <path> Specify <path> as a prefix for next two options.
1736 isysroot
1737 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1738 -isysroot <dir> Set <dir> to be the system root directory.
1740 isystem
1741 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1742 -isystem <dir>  Add <dir> to the start of the system include path.
1744 iquote
1745 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1746 -iquote <dir>   Add <dir> to the end of the quote include path.
1748 iwithprefix
1749 C ObjC C++ ObjC++ Joined Separate
1750 -iwithprefix <dir>      Add <dir> to the end of the system include path.
1752 iwithprefixbefore
1753 C ObjC C++ ObjC++ Joined Separate
1754 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path.
1756 lang-asm
1757 C Undocumented RejectDriver
1759 no-integrated-cpp
1760 Driver
1762 nostdinc
1763 C ObjC C++ ObjC++
1764 Do not search standard system include directories (those specified with -isystem will still be used).
1766 nostdinc++
1767 C++ ObjC++
1768 Do not search standard system include directories for C++.
1771 C ObjC C++ ObjC++ Joined Separate
1772 ; Documented in common.opt
1774 pedantic
1775 C ObjC C++ ObjC++ Alias(Wpedantic)
1776 ; Documented in common.opt
1778 print-objc-runtime-info
1779 ObjC ObjC++
1780 Generate C header of platform-specific features.
1782 remap
1783 C ObjC C++ ObjC++
1784 Remap file names when including files.
1786 std=c++98
1787 C++ ObjC++
1788 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1790 std=c++03
1791 C++ ObjC++ Alias(std=c++98)
1792 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1794 std=c++11
1795 C++ ObjC++
1796 Conform to the ISO 2011 C++ standard.
1798 std=c++0x
1799 C++ ObjC++ Alias(std=c++11) Undocumented
1800 Deprecated in favor of -std=c++11.
1802 std=c++1y
1803 C++ ObjC++ Alias(std=c++14) Undocumented
1804 Deprecated in favor of -std=c++14.
1806 std=c++14
1807 C++ ObjC++
1808 Conform to the ISO 2014 C++ standard.
1810 std=c++1z
1811 C++ ObjC++
1812 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support).
1814 std=c++17
1815 C++ ObjC++ Alias(std=c++1z) Undocumented
1817 std=c11
1818 C ObjC
1819 Conform to the ISO 2011 C standard.
1821 std=c1x
1822 C ObjC Alias(std=c11)
1823 Deprecated in favor of -std=c11.
1825 std=c89
1826 C ObjC Alias(std=c90)
1827 Conform to the ISO 1990 C standard.
1829 std=c90
1830 C ObjC
1831 Conform to the ISO 1990 C standard.
1833 std=c99
1834 C ObjC
1835 Conform to the ISO 1999 C standard.
1837 std=c9x
1838 C ObjC Alias(std=c99)
1839 Deprecated in favor of -std=c99.
1841 std=gnu++98
1842 C++ ObjC++
1843 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1844 corrigendum with GNU extensions.
1846 std=gnu++03
1847 C++ ObjC++ Alias(std=gnu++98)
1848 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1849 corrigendum with GNU extensions.
1851 std=gnu++11
1852 C++ ObjC++
1853 Conform to the ISO 2011 C++ standard with GNU extensions.
1855 std=gnu++0x
1856 C++ ObjC++ Alias(std=gnu++11) Undocumented
1857 Deprecated in favor of -std=gnu++11.
1859 std=gnu++1y
1860 C++ ObjC++ Alias(std=gnu++14) Undocumented
1861 Deprecated in favor of -std=gnu++14.
1863 std=gnu++14
1864 C++ ObjC++
1865 Conform to the ISO 2014 C++ standard with GNU extensions.
1867 std=gnu++1z
1868 C++ ObjC++
1869 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support).
1871 std=gnu++17
1872 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1874 std=gnu11
1875 C ObjC
1876 Conform to the ISO 2011 C standard with GNU extensions.
1878 std=gnu1x
1879 C ObjC Alias(std=gnu11)
1880 Deprecated in favor of -std=gnu11.
1882 std=gnu89
1883 C ObjC Alias(std=gnu90)
1884 Conform to the ISO 1990 C standard with GNU extensions.
1886 std=gnu90
1887 C ObjC
1888 Conform to the ISO 1990 C standard with GNU extensions.
1890 std=gnu99
1891 C ObjC
1892 Conform to the ISO 1999 C standard with GNU extensions.
1894 std=gnu9x
1895 C ObjC Alias(std=gnu99)
1896 Deprecated in favor of -std=gnu99.
1898 std=iso9899:1990
1899 C ObjC Alias(std=c90)
1900 Conform to the ISO 1990 C standard.
1902 std=iso9899:199409
1903 C ObjC
1904 Conform to the ISO 1990 C standard as amended in 1994.
1906 std=iso9899:1999
1907 C ObjC Alias(std=c99)
1908 Conform to the ISO 1999 C standard.
1910 std=iso9899:199x
1911 C ObjC Alias(std=c99)
1912 Deprecated in favor of -std=iso9899:1999.
1914 std=iso9899:2011
1915 C ObjC Alias(std=c11)
1916 Conform to the ISO 2011 C standard.
1918 traditional
1919 Driver
1921 traditional-cpp
1922 C ObjC C++ ObjC++
1923 Enable traditional preprocessing.
1925 trigraphs
1926 C ObjC C++ ObjC++
1927 -trigraphs      Support ISO C trigraphs.
1929 undef
1930 C ObjC C++ ObjC++ Var(flag_undef)
1931 Do not predefine system-specific and GCC-specific macros.
1934 C ObjC C++ ObjC++
1935 ; Documented in common.opt
1938 C ObjC C++ ObjC++
1939 ; Documented in common.opt
1941 ; This comment is to ensure we retain the blank line above.