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