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