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