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