xref: /dflybsd-src/contrib/gcc-8.0/gcc/c-family/c.opt (revision 95059079af47f9a66a175f374f2da1a5020e3255)
138fd1498Szrj; Options for the C, ObjC, C++ and ObjC++ front ends.
238fd1498Szrj; Copyright (C) 2003-2018 Free Software Foundation, Inc.
338fd1498Szrj;
438fd1498Szrj; This file is part of GCC.
538fd1498Szrj;
638fd1498Szrj; GCC is free software; you can redistribute it and/or modify it under
738fd1498Szrj; the terms of the GNU General Public License as published by the Free
838fd1498Szrj; Software Foundation; either version 3, or (at your option) any later
938fd1498Szrj; version.
1038fd1498Szrj;
1138fd1498Szrj; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
1238fd1498Szrj; WARRANTY; without even the implied warranty of MERCHANTABILITY or
1338fd1498Szrj; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1438fd1498Szrj; for more details.
1538fd1498Szrj;
1638fd1498Szrj; You should have received a copy of the GNU General Public License
1738fd1498Szrj; along with GCC; see the file COPYING3.  If not see
1838fd1498Szrj; <http://www.gnu.org/licenses/>.
1938fd1498Szrj
2038fd1498Szrj; See the GCC internals manual for a description of this file's format.
2138fd1498Szrj
2238fd1498Szrj; Please try to keep this file in ASCII collating order.
2338fd1498Szrj
2438fd1498SzrjLanguage
2538fd1498SzrjC
2638fd1498Szrj
2738fd1498SzrjLanguage
2838fd1498SzrjObjC
2938fd1498Szrj
3038fd1498SzrjLanguage
3138fd1498SzrjC++
3238fd1498Szrj
3338fd1498SzrjLanguage
3438fd1498SzrjObjC++
3538fd1498Szrj
3638fd1498Szrj-all-warnings
3738fd1498SzrjC ObjC C++ ObjC++ Warning Alias(Wall)
3838fd1498Szrj
3938fd1498Szrj-ansi
4038fd1498SzrjC ObjC C++ ObjC++ Alias(ansi)
4138fd1498Szrj
4238fd1498Szrj-assert
4338fd1498SzrjC ObjC C++ ObjC++ Separate Alias(A) MissingArgError(assertion missing after %qs)
4438fd1498Szrj
4538fd1498Szrj-assert=
4638fd1498SzrjC ObjC C++ ObjC++ Joined Alias(A) MissingArgError(assertion missing after %qs)
4738fd1498Szrj
4838fd1498Szrj-comments
4938fd1498SzrjC ObjC C++ ObjC++ Alias(C)
5038fd1498Szrj
5138fd1498Szrj-comments-in-macros
5238fd1498SzrjC ObjC C++ ObjC++ Alias(CC)
5338fd1498Szrj
5438fd1498Szrj-define-macro
5538fd1498SzrjC ObjC C++ ObjC++ Separate Alias(D) MissingArgError(macro name missing after %qs)
5638fd1498Szrj
5738fd1498Szrj-define-macro=
5838fd1498SzrjC ObjC C++ ObjC++ Joined Alias(D) MissingArgError(macro name missing after %qs)
5938fd1498Szrj
6038fd1498Szrj-dependencies
6138fd1498SzrjC ObjC C++ ObjC++ Alias(M)
6238fd1498Szrj
6338fd1498Szrj-dump
6438fd1498SzrjC ObjC C++ ObjC++ Separate Alias(d)
6538fd1498Szrj
6638fd1498Szrj-dump=
6738fd1498SzrjC ObjC C++ ObjC++ Joined Alias(d)
6838fd1498Szrj
6938fd1498Szrj-imacros
7038fd1498SzrjC ObjC C++ ObjC++ Separate Alias(imacros) MissingArgError(missing filename after %qs)
7138fd1498Szrj
7238fd1498Szrj-imacros=
7338fd1498SzrjC ObjC C++ ObjC++ Joined Alias(imacros) MissingArgError(missing filename after %qs)
7438fd1498Szrj
7538fd1498Szrj-include
7638fd1498SzrjC ObjC C++ ObjC++ Separate Alias(include) MissingArgError(missing filename after %qs)
7738fd1498Szrj
7838fd1498Szrj-include=
7938fd1498SzrjC ObjC C++ ObjC++ Joined Alias(include) MissingArgError(missing filename after %qs)
8038fd1498Szrj
8138fd1498Szrj-include-barrier
8238fd1498SzrjC ObjC C++ ObjC++ Alias(I, -)
8338fd1498Szrj
8438fd1498Szrj-include-directory
8538fd1498SzrjC ObjC C++ ObjC++ Separate Alias(I) MissingArgError(missing path after %qs)
8638fd1498Szrj
8738fd1498Szrj-include-directory=
8838fd1498SzrjC ObjC C++ ObjC++ Joined Alias(I) MissingArgError(missing path after %qs)
8938fd1498Szrj
9038fd1498Szrj-include-directory-after
9138fd1498SzrjC ObjC C++ ObjC++ Separate Alias(idirafter) MissingArgError(missing path after %qs)
9238fd1498Szrj
9338fd1498Szrj-include-directory-after=
9438fd1498SzrjC ObjC C++ ObjC++ Joined Alias(idirafter) MissingArgError(missing path after %qs)
9538fd1498Szrj
9638fd1498Szrj-include-prefix
9738fd1498SzrjC ObjC C++ ObjC++ Separate Alias(iprefix)
9838fd1498Szrj
9938fd1498Szrj-include-prefix=
10038fd1498SzrjC ObjC C++ ObjC++ JoinedOrMissing Alias(iprefix)
10138fd1498Szrj
10238fd1498Szrj-include-with-prefix
10338fd1498SzrjC ObjC C++ ObjC++ Separate Alias(iwithprefix)
10438fd1498Szrj
10538fd1498Szrj-include-with-prefix=
10638fd1498SzrjC ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
10738fd1498Szrj
10838fd1498Szrj-include-with-prefix-after
10938fd1498SzrjC ObjC C++ ObjC++ Separate Alias(iwithprefix)
11038fd1498Szrj
11138fd1498Szrj-include-with-prefix-after=
11238fd1498SzrjC ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
11338fd1498Szrj
11438fd1498Szrj-include-with-prefix-before
11538fd1498SzrjC ObjC C++ ObjC++ Separate Alias(iwithprefixbefore)
11638fd1498Szrj
11738fd1498Szrj-include-with-prefix-before=
11838fd1498SzrjC ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefixbefore)
11938fd1498Szrj
12038fd1498Szrj-no-integrated-cpp
12138fd1498SzrjDriver Alias(no-integrated-cpp)
12238fd1498Szrj
12338fd1498Szrj-no-line-commands
12438fd1498SzrjC ObjC C++ ObjC++ Alias(P)
12538fd1498Szrj
12638fd1498Szrj-no-standard-includes
12738fd1498SzrjC ObjC C++ ObjC++ Alias(nostdinc)
12838fd1498Szrj
12938fd1498Szrj-no-warnings
13038fd1498SzrjC ObjC C++ ObjC++ Alias(w)
13138fd1498Szrj
13238fd1498Szrj-output
13338fd1498SzrjC ObjC C++ ObjC++ Separate Alias(o)
13438fd1498Szrj
13538fd1498Szrj-output=
13638fd1498SzrjC ObjC C++ ObjC++ Joined Alias(o)
13738fd1498Szrj
13838fd1498Szrj-output-pch=
13938fd1498SzrjC ObjC C++ ObjC++ Joined Separate
14038fd1498Szrj
14138fd1498Szrj-pedantic
14238fd1498SzrjC ObjC C++ ObjC++ Alias(pedantic)
14338fd1498Szrj
14438fd1498Szrj-preprocess
14538fd1498SzrjC ObjC C++ ObjC++ Undocumented Alias(E)
14638fd1498Szrj
14738fd1498Szrj-print-missing-file-dependencies
14838fd1498SzrjC ObjC C++ ObjC++ Alias(MG)
14938fd1498Szrj
15038fd1498Szrj-trace-includes
15138fd1498SzrjC ObjC C++ ObjC++ Alias(H)
15238fd1498Szrj
15338fd1498Szrj-traditional
15438fd1498SzrjDriver Alias(traditional)
15538fd1498Szrj
15638fd1498Szrj-traditional-cpp
15738fd1498SzrjC ObjC C++ ObjC++ Alias(traditional-cpp)
15838fd1498Szrj
15938fd1498Szrj-trigraphs
16038fd1498SzrjC ObjC C++ ObjC++ Alias(trigraphs)
16138fd1498Szrj
16238fd1498Szrj-undefine-macro
16338fd1498SzrjC ObjC C++ ObjC++ Separate Alias(U) MissingArgError(macro name missing after %qs)
16438fd1498Szrj
16538fd1498Szrj-undefine-macro=
16638fd1498SzrjC ObjC C++ ObjC++ Joined Alias(U) MissingArgError(macro name missing after %qs)
16738fd1498Szrj
16838fd1498Szrj-user-dependencies
16938fd1498SzrjC ObjC C++ ObjC++ Alias(MM)
17038fd1498Szrj
17138fd1498Szrj-verbose
17238fd1498SzrjCommon C ObjC C++ ObjC++ Alias(v)
17338fd1498Szrj
17438fd1498Szrj-write-dependencies
17538fd1498SzrjC ObjC C++ ObjC++ NoDriverArg Separate Alias(MD) MissingArgError(missing filename after %qs)
17638fd1498Szrj
17738fd1498Szrj-write-user-dependencies
17838fd1498SzrjC ObjC C++ ObjC++ NoDriverArg Separate Alias(MMD) MissingArgError(missing filename after %qs)
17938fd1498Szrj
18038fd1498SzrjA
18138fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(assertion missing after %qs)
18238fd1498Szrj-A<question>=<answer>	Assert the <answer> to <question>.  Putting '-' before <question> disables the <answer> to <question>.
18338fd1498Szrj
18438fd1498SzrjC
18538fd1498SzrjC ObjC C++ ObjC++
18638fd1498SzrjDo not discard comments.
18738fd1498Szrj
18838fd1498SzrjCC
18938fd1498SzrjC ObjC C++ ObjC++
19038fd1498SzrjDo not discard comments in macro expansions.
19138fd1498Szrj
19238fd1498SzrjD
19338fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
19438fd1498Szrj-D<macro>[=<val>]	Define a <macro> with <val> as its value.  If just <macro> is given, <val> is taken to be 1.
19538fd1498Szrj
19638fd1498SzrjE
19738fd1498SzrjC ObjC C++ ObjC++ Undocumented Var(flag_preprocess_only)
19838fd1498Szrj
19938fd1498SzrjF
20038fd1498SzrjDriver C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
20138fd1498Szrj-F <dir>	Add <dir> to the end of the main framework include path.
20238fd1498Szrj
20338fd1498Szrjfgimple
20438fd1498SzrjC Var(flag_gimple) Init(0)
20538fd1498SzrjEnable parsing GIMPLE.
20638fd1498Szrj
20738fd1498SzrjH
20838fd1498SzrjC ObjC C++ ObjC++
20938fd1498SzrjPrint the name of header files as they are used.
21038fd1498Szrj
21138fd1498SzrjI
21238fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
21338fd1498Szrj-I <dir>	Add <dir> to the end of the main include path.
21438fd1498Szrj
21538fd1498SzrjM
21638fd1498SzrjC ObjC C++ ObjC++
21738fd1498SzrjGenerate make dependencies.
21838fd1498Szrj
21938fd1498SzrjMD
22038fd1498SzrjC ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
22138fd1498SzrjGenerate make dependencies and compile.
22238fd1498Szrj
22338fd1498SzrjMF
22438fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
22538fd1498Szrj-MF <file>	Write dependency output to the given file.
22638fd1498Szrj
22738fd1498SzrjMG
22838fd1498SzrjC ObjC C++ ObjC++
22938fd1498SzrjTreat missing header files as generated files.
23038fd1498Szrj
23138fd1498SzrjMM
23238fd1498SzrjC ObjC C++ ObjC++
23338fd1498SzrjLike -M but ignore system header files.
23438fd1498Szrj
23538fd1498SzrjMMD
23638fd1498SzrjC ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
23738fd1498SzrjLike -MD but ignore system header files.
23838fd1498Szrj
23938fd1498SzrjMP
24038fd1498SzrjC ObjC C++ ObjC++
24138fd1498SzrjGenerate phony targets for all headers.
24238fd1498Szrj
24338fd1498SzrjMQ
24438fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
24538fd1498Szrj-MQ <target>	Add a MAKE-quoted target.
24638fd1498Szrj
24738fd1498SzrjMT
24838fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
24938fd1498Szrj-MT <target>	Add an unquoted target.
25038fd1498Szrj
25138fd1498SzrjP
25238fd1498SzrjC ObjC C++ ObjC++
25338fd1498SzrjDo not generate #line directives.
25438fd1498Szrj
25538fd1498SzrjU
25638fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
25738fd1498Szrj-U<macro>	Undefine <macro>.
25838fd1498Szrj
25938fd1498SzrjWabi
26038fd1498SzrjC ObjC C++ ObjC++ LTO Var(warn_abi) Warning
26138fd1498SzrjWarn about things that will change when compiling with an ABI-compliant compiler.
26238fd1498Szrj
26338fd1498SzrjWabi=
26438fd1498SzrjC ObjC C++ ObjC++ LTO Joined RejectNegative UInteger Warning
26538fd1498SzrjWarn about things that change between the current -fabi-version and the specified version.
26638fd1498Szrj
26738fd1498SzrjWabi-tag
26838fd1498SzrjC++ ObjC++ Var(warn_abi_tag) Warning
26938fd1498SzrjWarn if a subobject has an abi_tag attribute that the complete object type does not have.
27038fd1498Szrj
27138fd1498SzrjWpsabi
27238fd1498SzrjC ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Warning Undocumented LangEnabledBy(C ObjC C++ ObjC++,Wabi)
27338fd1498Szrj
27438fd1498SzrjWaddress
27538fd1498SzrjC ObjC C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
27638fd1498SzrjWarn about suspicious uses of memory addresses.
27738fd1498Szrj
27838fd1498SzrjEnum
27938fd1498SzrjName(warn_aligned_new_level) Type(int) UnknownError(argument %qs to %<-Waligned-new%> not recognized)
28038fd1498Szrj
28138fd1498SzrjEnumValue
28238fd1498SzrjEnum(warn_aligned_new_level) String(none) Value(0)
28338fd1498Szrj
28438fd1498SzrjEnumValue
28538fd1498SzrjEnum(warn_aligned_new_level) String(global) Value(1)
28638fd1498Szrj
28738fd1498SzrjEnumValue
28838fd1498SzrjEnum(warn_aligned_new_level) String(all) Value(2)
28938fd1498Szrj
29038fd1498SzrjWaligned-new
29138fd1498SzrjC++ ObjC++ Alias(Waligned-new=,global,none)
29238fd1498SzrjWarn about 'new' of type with extended alignment without -faligned-new.
29338fd1498Szrj
29438fd1498SzrjWaligned-new=
29538fd1498SzrjC++ ObjC++ Var(warn_aligned_new) Enum(warn_aligned_new_level) Joined RejectNegative Warning LangEnabledBy(C++ ObjC++,Wall,1,0)
29638fd1498Szrj-Waligned-new=[none|global|all]	Warn even if 'new' uses a class member allocation function.
29738fd1498Szrj
29838fd1498SzrjWall
29938fd1498SzrjC ObjC C++ ObjC++ Warning
30038fd1498SzrjEnable most warning messages.
30138fd1498Szrj
30238fd1498SzrjWalloca
30338fd1498SzrjC ObjC C++ ObjC++ Var(warn_alloca) Warning
30438fd1498SzrjWarn on any use of alloca.
30538fd1498Szrj
30638fd1498SzrjWalloc-size-larger-than=
30738fd1498SzrjC ObjC C++ LTO ObjC++ Var(warn_alloc_size_limit) Warning Joined LangEnabledBy(C ObjC C++ LTO ObjC++,Wall)
30838fd1498Szrj-Walloc-size-larger-than=<bytes> Warn for calls to allocation functions that
30938fd1498Szrjattempt to allocate objects larger than the specified number of bytes.
31038fd1498Szrj
31138fd1498SzrjWalloc-zero
31238fd1498SzrjC ObjC C++ ObjC++ Var(warn_alloc_zero) Warning
31338fd1498Szrj-Walloc-zero Warn for calls to allocation functions that specify zero bytes.
31438fd1498Szrj
31538fd1498SzrjWalloca-larger-than=
31638fd1498SzrjC ObjC C++ LTO ObjC++ Var(warn_alloca_limit) Warning Joined RejectNegative UInteger
31738fd1498Szrj-Walloca-larger-than=<number>	Warn on unbounded uses of
31838fd1498Szrjalloca, and on bounded uses of alloca whose bound can be larger than
31938fd1498Szrj<number> bytes.
32038fd1498Szrj
32138fd1498SzrjWarray-bounds
32238fd1498SzrjLangEnabledBy(C ObjC C++ LTO ObjC++,Wall)
32338fd1498Szrj; in common.opt
32438fd1498Szrj
32538fd1498SzrjWarray-bounds=
32638fd1498SzrjLangEnabledBy(C ObjC C++ LTO ObjC++,Wall,1,0)
32738fd1498Szrj; in common.opt
32838fd1498Szrj
32938fd1498SzrjWassign-intercept
33038fd1498SzrjObjC ObjC++ Var(warn_assign_intercept) Warning
33138fd1498SzrjWarn whenever an Objective-C assignment is being intercepted by the garbage collector.
33238fd1498Szrj
33338fd1498SzrjWbad-function-cast
33438fd1498SzrjC ObjC Var(warn_bad_function_cast) Warning
33538fd1498SzrjWarn about casting functions to incompatible types.
33638fd1498Szrj
33738fd1498SzrjWbool-compare
33838fd1498SzrjC ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
33938fd1498SzrjWarn about boolean expression compared with an integer value different from true/false.
34038fd1498Szrj
34138fd1498SzrjWbool-operation
34238fd1498SzrjC ObjC C++ ObjC++ Var(warn_bool_op) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
34338fd1498SzrjWarn about certain operations on boolean expressions.
34438fd1498Szrj
34538fd1498SzrjWframe-address
34638fd1498SzrjC ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
34738fd1498SzrjWarn when __builtin_frame_address or __builtin_return_address is used unsafely.
34838fd1498Szrj
34938fd1498SzrjWbuiltin-declaration-mismatch
35038fd1498SzrjC ObjC C++ ObjC++ Var(warn_builtin_declaraion_mismatch) Init(1) Warning
35138fd1498SzrjWarn when a built-in function is declared with the wrong signature.
35238fd1498Szrj
35338fd1498SzrjWbuiltin-macro-redefined
35438fd1498SzrjC ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
35538fd1498SzrjWarn when a built-in preprocessor macro is undefined or redefined.
35638fd1498Szrj
35738fd1498SzrjWc90-c99-compat
35838fd1498SzrjC ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
35938fd1498SzrjWarn about features not present in ISO C90, but present in ISO C99.
36038fd1498Szrj
36138fd1498SzrjWc99-c11-compat
36238fd1498SzrjC ObjC Var(warn_c99_c11_compat) Init(-1) Warning
36338fd1498SzrjWarn about features not present in ISO C99, but present in ISO C11.
36438fd1498Szrj
36538fd1498SzrjWc++-compat
36638fd1498SzrjC ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
36738fd1498SzrjWarn about C constructs that are not in the common subset of C and C++.
36838fd1498Szrj
36938fd1498SzrjWc++0x-compat
37038fd1498SzrjC++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
37138fd1498Szrj
37238fd1498SzrjWc++11-compat
37338fd1498SzrjC++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT)
37438fd1498SzrjWarn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011.
37538fd1498Szrj
37638fd1498SzrjWc++14-compat
37738fd1498SzrjC++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
37838fd1498SzrjWarn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014.
37938fd1498Szrj
38038fd1498SzrjWc++1z-compat
38138fd1498SzrjC++ ObjC++ Warning Alias(Wc++17-compat) Undocumented
38238fd1498Szrj
38338fd1498SzrjWc++17-compat
38438fd1498SzrjC++ ObjC++ Var(warn_cxx17_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
38538fd1498SzrjWarn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017.
38638fd1498Szrj
38738fd1498SzrjWcast-function-type
38838fd1498SzrjC ObjC C++ ObjC++ Var(warn_cast_function_type) Warning EnabledBy(Wextra)
38938fd1498SzrjWarn about casts between incompatible function types.
39038fd1498Szrj
39138fd1498SzrjWcast-qual
39238fd1498SzrjC ObjC C++ ObjC++ Var(warn_cast_qual) Warning
39338fd1498SzrjWarn about casts which discard qualifiers.
39438fd1498Szrj
39538fd1498SzrjWcatch-value
39638fd1498SzrjC++ ObjC++ Warning Alias(Wcatch-value=, 1, 0)
39738fd1498SzrjWarn about catch handlers of non-reference type.
39838fd1498Szrj
39938fd1498SzrjWcatch-value=
40038fd1498SzrjC++ ObjC++ Var(warn_catch_value) Warning Joined RejectNegative UInteger LangEnabledBy(C++ ObjC++,Wall, 1, 0) IntegerRange(0, 3)
40138fd1498SzrjWarn about catch handlers of non-reference type.
40238fd1498Szrj
40338fd1498SzrjWchar-subscripts
40438fd1498SzrjC ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
40538fd1498SzrjWarn about subscripts whose type is \"char\".
40638fd1498Szrj
40738fd1498SzrjWchkp
40838fd1498SzrjC ObjC C++ ObjC++ Var(warn_chkp) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
40938fd1498SzrjWarn about memory access errors found by Pointer Bounds Checker.
41038fd1498Szrj
41138fd1498SzrjWclobbered
41238fd1498SzrjC ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
41338fd1498SzrjWarn about variables that might be changed by \"longjmp\" or \"vfork\".
41438fd1498Szrj
41538fd1498SzrjWcomment
41638fd1498SzrjC ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
41738fd1498SzrjWarn about possibly nested block comments, and C++ comments spanning more than one physical line.
41838fd1498Szrj
41938fd1498SzrjWcomments
42038fd1498SzrjC ObjC C++ ObjC++ Warning Alias(Wcomment)
42138fd1498SzrjSynonym for -Wcomment.
42238fd1498Szrj
42338fd1498SzrjWconditionally-supported
42438fd1498SzrjC++ ObjC++ Var(warn_conditionally_supported) Warning
42538fd1498SzrjWarn for conditionally-supported constructs.
42638fd1498Szrj
42738fd1498SzrjWconversion
42838fd1498SzrjC ObjC C++ ObjC++ Var(warn_conversion) Warning
42938fd1498SzrjWarn for implicit type conversions that may change a value.
43038fd1498Szrj
43138fd1498SzrjWconversion-null
43238fd1498SzrjC++ ObjC++ Var(warn_conversion_null) Init(1) Warning
43338fd1498SzrjWarn for converting NULL from/to a non-pointer type.
43438fd1498Szrj
43538fd1498SzrjWcpp
43638fd1498SzrjC ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
43738fd1498Szrj; Documented in common.opt
43838fd1498Szrj
43938fd1498SzrjWctor-dtor-privacy
44038fd1498SzrjC++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
44138fd1498SzrjWarn when all constructors and destructors are private.
44238fd1498Szrj
44338fd1498SzrjWdangling-else
44438fd1498SzrjC ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
44538fd1498SzrjWarn about dangling else.
44638fd1498Szrj
44738fd1498SzrjWdate-time
44838fd1498SzrjC ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
44938fd1498SzrjWarn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
45038fd1498Szrj
45138fd1498SzrjWdeclaration-after-statement
45238fd1498SzrjC ObjC Var(warn_declaration_after_statement) Init(-1) Warning
45338fd1498SzrjWarn when a declaration is found after a statement.
45438fd1498Szrj
45538fd1498SzrjWdelete-incomplete
45638fd1498SzrjC++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
45738fd1498SzrjWarn when deleting a pointer to incomplete type.
45838fd1498Szrj
45938fd1498SzrjWdelete-non-virtual-dtor
46038fd1498SzrjC++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
46138fd1498SzrjWarn about deleting polymorphic objects with non-virtual destructors.
46238fd1498Szrj
46338fd1498SzrjWdeprecated
46438fd1498SzrjC C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
46538fd1498SzrjWarn if a deprecated compiler feature, class, method, or field is used.
46638fd1498Szrj
46738fd1498SzrjWdesignated-init
46838fd1498SzrjC ObjC Var(warn_designated_init) Init(1) Warning
46938fd1498SzrjWarn about positional initialization of structs requiring designated initializers.
47038fd1498Szrj
47138fd1498SzrjWdiscarded-array-qualifiers
47238fd1498SzrjC ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
47338fd1498SzrjWarn if qualifiers on arrays which are pointer targets are discarded.
47438fd1498Szrj
47538fd1498SzrjWdiscarded-qualifiers
47638fd1498SzrjC ObjC Var(warn_discarded_qualifiers) Init(1) Warning
47738fd1498SzrjWarn if type qualifiers on pointers are discarded.
47838fd1498Szrj
47938fd1498SzrjWdiv-by-zero
48038fd1498SzrjC ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
48138fd1498SzrjWarn about compile-time integer division by zero.
48238fd1498Szrj
48338fd1498SzrjWduplicated-branches
48438fd1498SzrjC ObjC C++ ObjC++ Var(warn_duplicated_branches) Init(0) Warning
48538fd1498SzrjWarn about duplicated branches in if-else statements.
48638fd1498Szrj
48738fd1498SzrjWduplicated-cond
48838fd1498SzrjC ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
48938fd1498SzrjWarn about duplicated conditions in an if-else-if chain.
49038fd1498Szrj
49138fd1498SzrjWeffc++
49238fd1498SzrjC++ ObjC++ Var(warn_ecpp) Warning
49338fd1498SzrjWarn about violations of Effective C++ style rules.
49438fd1498Szrj
49538fd1498SzrjWempty-body
49638fd1498SzrjC ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
49738fd1498SzrjWarn about an empty body in an if or else statement.
49838fd1498Szrj
49938fd1498SzrjWendif-labels
50038fd1498SzrjC 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)
50138fd1498SzrjWarn about stray tokens after #else and #endif.
50238fd1498Szrj
50338fd1498SzrjWenum-compare
50438fd1498SzrjC ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
50538fd1498SzrjWarn about comparison of different enum types.
50638fd1498Szrj
50738fd1498SzrjWerror
50838fd1498SzrjC ObjC C++ ObjC++
50938fd1498Szrj; Documented in common.opt
51038fd1498Szrj
51138fd1498SzrjWerror-implicit-function-declaration
51238fd1498SzrjC ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
51338fd1498SzrjThis switch is deprecated; use -Werror=implicit-function-declaration instead.
51438fd1498Szrj
51538fd1498SzrjWextra
51638fd1498SzrjC ObjC C++ ObjC++ Warning
51738fd1498Szrj; in common.opt
51838fd1498Szrj
51938fd1498SzrjWextra-semi
52038fd1498SzrjC++ ObjC++ Var(warn_extra_semi) Warning
52138fd1498SzrjWarn about semicolon after in-class function definition.
52238fd1498Szrj
52338fd1498SzrjWfloat-conversion
52438fd1498SzrjC ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
52538fd1498SzrjWarn for implicit type conversions that cause loss of floating point precision.
52638fd1498Szrj
52738fd1498SzrjWfloat-equal
52838fd1498SzrjC ObjC C++ ObjC++ Var(warn_float_equal) Warning
52938fd1498SzrjWarn if testing floating point numbers for equality.
53038fd1498Szrj
53138fd1498SzrjWformat
53238fd1498SzrjC ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
53338fd1498SzrjWarn about printf/scanf/strftime/strfmon format string anomalies.
53438fd1498Szrj
53538fd1498SzrjWformat-contains-nul
53638fd1498SzrjC ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
53738fd1498SzrjWarn about format strings that contain NUL bytes.
53838fd1498Szrj
53938fd1498SzrjWformat-extra-args
54038fd1498SzrjC ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
54138fd1498SzrjWarn if passing too many arguments to a function for its format string.
54238fd1498Szrj
54338fd1498SzrjWformat-nonliteral
54438fd1498SzrjC ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
54538fd1498SzrjWarn about format strings that are not literals.
54638fd1498Szrj
54738fd1498SzrjWformat-overflow
54838fd1498SzrjC ObjC C++ LTO ObjC++ Warning Alias(Wformat-overflow=, 1, 0) IntegerRange(0, 2)
54938fd1498SzrjWarn about function calls with format strings that write past the end
55038fd1498Szrjof the destination region.  Same as -Wformat-overflow=1.
55138fd1498Szrj
55238fd1498SzrjWformat-security
55338fd1498SzrjC ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
55438fd1498SzrjWarn about possible security problems with format functions.
55538fd1498Szrj
55638fd1498SzrjWformat-signedness
55738fd1498SzrjC ObjC C++ ObjC++ Var(warn_format_signedness) Warning
55838fd1498SzrjWarn about sign differences with format functions.
55938fd1498Szrj
56038fd1498SzrjWformat-truncation
56138fd1498SzrjC ObjC C++ LTO ObjC++ Warning Alias(Wformat-truncation=, 1, 0)
56238fd1498SzrjWarn about calls to snprintf and similar functions that truncate output.
56338fd1498SzrjSame as -Wformat-truncation=1.
56438fd1498Szrj
56538fd1498SzrjWformat-y2k
56638fd1498SzrjC ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
56738fd1498SzrjWarn about strftime formats yielding 2-digit years.
56838fd1498Szrj
56938fd1498SzrjWformat-zero-length
57038fd1498SzrjC ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
57138fd1498SzrjWarn about zero-length formats.
57238fd1498Szrj
57338fd1498SzrjWformat=
57438fd1498SzrjC ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
57538fd1498SzrjWarn about printf/scanf/strftime/strfmon format string anomalies.
57638fd1498Szrj
57738fd1498SzrjWformat-overflow=
57838fd1498SzrjC ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_overflow) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
57938fd1498SzrjWarn about function calls with format strings that write past the end
58038fd1498Szrjof the destination region.
58138fd1498Szrj
58238fd1498SzrjWformat-truncation=
58338fd1498SzrjC ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_trunc) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
58438fd1498SzrjWarn about calls to snprintf and similar functions that truncate output.
58538fd1498Szrj
58638fd1498SzrjWif-not-aligned
58738fd1498SzrjC ObjC C++ ObjC++ Var(warn_if_not_aligned) Init(1) Warning
58838fd1498SzrjWarn when the field in a struct is not aligned.
58938fd1498Szrj
59038fd1498SzrjWignored-qualifiers
59138fd1498SzrjC C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
59238fd1498SzrjWarn whenever type qualifiers are ignored.
59338fd1498Szrj
59438fd1498SzrjWignored-attributes
59538fd1498SzrjC C++ Var(warn_ignored_attributes) Init(1) Warning
59638fd1498SzrjWarn whenever attributes are ignored.
59738fd1498Szrj
59838fd1498SzrjWincompatible-pointer-types
59938fd1498SzrjC ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
60038fd1498SzrjWarn when there is a conversion between pointers that have incompatible types.
60138fd1498Szrj
60238fd1498SzrjWinit-self
60338fd1498SzrjC ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
60438fd1498SzrjWarn about variables which are initialized to themselves.
60538fd1498Szrj
60638fd1498SzrjWimplicit
60738fd1498SzrjC ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
60838fd1498SzrjWarn about implicit declarations.
60938fd1498Szrj
61038fd1498SzrjWimplicit-fallthrough=
61138fd1498SzrjLangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
61238fd1498Szrj; in common.opt
61338fd1498Szrj
61438fd1498SzrjWdouble-promotion
61538fd1498SzrjC ObjC C++ ObjC++ Var(warn_double_promotion) Warning
61638fd1498SzrjWarn about implicit conversions from \"float\" to \"double\".
61738fd1498Szrj
61838fd1498SzrjWexpansion-to-defined
61938fd1498SzrjC 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)
62038fd1498SzrjWarn if \"defined\" is used outside #if.
62138fd1498Szrj
62238fd1498SzrjWimplicit-function-declaration
62338fd1498SzrjC ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
62438fd1498SzrjWarn about implicit function declarations.
62538fd1498Szrj
62638fd1498SzrjWimplicit-int
62738fd1498SzrjC ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
62838fd1498SzrjWarn when a declaration does not specify a type.
62938fd1498Szrj
63038fd1498SzrjWimport
63138fd1498SzrjC ObjC C++ ObjC++ Undocumented Ignore
63238fd1498Szrj
63338fd1498SzrjWinherited-variadic-ctor
63438fd1498SzrjC++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
63538fd1498SzrjWarn about C++11 inheriting constructors when the base has a variadic constructor.
63638fd1498Szrj
63738fd1498SzrjWint-conversion
63838fd1498SzrjC ObjC Var(warn_int_conversion) Init(1) Warning
63938fd1498SzrjWarn about incompatible integer to pointer and pointer to integer conversions.
64038fd1498Szrj
64138fd1498SzrjWint-in-bool-context
64238fd1498SzrjC ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
64338fd1498SzrjWarn for suspicious integer expressions in boolean context.
64438fd1498Szrj
64538fd1498SzrjWint-to-pointer-cast
64638fd1498SzrjC ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
64738fd1498SzrjWarn when there is a cast to a pointer from an integer of a different size.
64838fd1498Szrj
64938fd1498SzrjWinvalid-offsetof
65038fd1498SzrjC++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
65138fd1498SzrjWarn about invalid uses of the \"offsetof\" macro.
65238fd1498Szrj
65338fd1498SzrjWinvalid-pch
65438fd1498SzrjC ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
65538fd1498SzrjWarn about PCH files that are found but not used.
65638fd1498Szrj
65738fd1498SzrjWjump-misses-init
65838fd1498SzrjC ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
65938fd1498SzrjWarn when a jump misses a variable initialization.
66038fd1498Szrj
66138fd1498SzrjWliteral-suffix
66238fd1498SzrjC++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
66338fd1498SzrjWarn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
66438fd1498Szrj
66538fd1498SzrjWlogical-op
66638fd1498SzrjC ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
66738fd1498SzrjWarn when a logical operator is suspiciously always evaluating to true or false.
66838fd1498Szrj
66938fd1498SzrjWlogical-not-parentheses
67038fd1498SzrjC ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
67138fd1498SzrjWarn when logical not is used on the left hand side operand of a comparison.
67238fd1498Szrj
67338fd1498SzrjWlong-long
67438fd1498SzrjC 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)
67538fd1498SzrjDo not warn about using \"long long\" when -pedantic.
67638fd1498Szrj
67738fd1498SzrjWmain
67838fd1498SzrjC ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
67938fd1498SzrjWarn about suspicious declarations of \"main\".
68038fd1498Szrj
68138fd1498SzrjWmain
68238fd1498SzrjLangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
68338fd1498Szrj;
68438fd1498Szrj
68538fd1498SzrjWmemset-transposed-args
68638fd1498SzrjC ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
68738fd1498SzrjWarn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
68838fd1498Szrj
68938fd1498SzrjWmemset-elt-size
69038fd1498SzrjC ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
69138fd1498SzrjWarn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
69238fd1498Szrj
69338fd1498SzrjWmisleading-indentation
69438fd1498SzrjC C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
69538fd1498SzrjWarn when the indentation of the code does not reflect the block structure.
69638fd1498Szrj
69738fd1498SzrjWmissing-braces
69838fd1498SzrjC ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
69938fd1498SzrjWarn about possibly missing braces around initializers.
70038fd1498Szrj
70138fd1498SzrjWmissing-declarations
70238fd1498SzrjC ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
70338fd1498SzrjWarn about global functions without previous declarations.
70438fd1498Szrj
70538fd1498SzrjWmissing-field-initializers
70638fd1498SzrjC ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
70738fd1498SzrjWarn about missing fields in struct initializers.
70838fd1498Szrj
70938fd1498SzrjWmultistatement-macros
71038fd1498SzrjC ObjC C++ ObjC++ Var(warn_multistatement_macros) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
71138fd1498SzrjWarn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
71238fd1498Szrj
71338fd1498SzrjWmultiple-inheritance
71438fd1498SzrjC++ ObjC++ Var(warn_multiple_inheritance) Warning
71538fd1498SzrjWarn on direct multiple inheritance.
71638fd1498Szrj
71738fd1498SzrjWnamespaces
71838fd1498SzrjC++ ObjC++ Var(warn_namespaces) Warning
71938fd1498SzrjWarn on namespace definition.
72038fd1498Szrj
72138fd1498SzrjWpacked-not-aligned
72238fd1498SzrjC ObjC C++ ObjC++ Var(warn_packed_not_aligned) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
72338fd1498SzrjWarn when fields in a struct with the packed attribute are misaligned.
72438fd1498Szrj
72538fd1498SzrjWsized-deallocation
72638fd1498SzrjC++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
72738fd1498SzrjWarn about missing sized deallocation functions.
72838fd1498Szrj
72938fd1498SzrjWsizeof-pointer-div
73038fd1498SzrjC ObjC C++ ObjC++ Var(warn_sizeof_pointer_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
73138fd1498SzrjWarn about suspicious divisions of two sizeof expressions that don't work correctly with pointers.
73238fd1498Szrj
73338fd1498SzrjWsizeof-pointer-memaccess
73438fd1498SzrjC ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
73538fd1498SzrjWarn about suspicious length parameters to certain string functions if the argument uses sizeof.
73638fd1498Szrj
73738fd1498SzrjWsizeof-array-argument
73838fd1498SzrjC ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
73938fd1498SzrjWarn when sizeof is applied on a parameter declared as an array.
74038fd1498Szrj
74138fd1498SzrjWstringop-overflow
74238fd1498SzrjC ObjC C++ LTO ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
74338fd1498SzrjWarn about buffer overflow in string manipulation functions like memcpy
74438fd1498Szrjand strcpy.
74538fd1498Szrj
74638fd1498SzrjWstringop-overflow=
74738fd1498SzrjC ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall, 2, 0) IntegerRange(0, 4)
74838fd1498SzrjUnder the control of Object Size type, warn about buffer overflow in string
74938fd1498Szrjmanipulation functions like memcpy and strcpy.
75038fd1498Szrj
75138fd1498SzrjWstringop-truncation
75238fd1498SzrjC ObjC C++ LTO ObjC++ Var(warn_stringop_truncation) Warning Init (1) LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
75338fd1498SzrjWarn about truncation in string manipulation functions like strncat and strncpy.
75438fd1498Szrj
75538fd1498SzrjWsuggest-attribute=format
75638fd1498SzrjC ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
75738fd1498SzrjWarn about functions which might be candidates for format attributes.
75838fd1498Szrj
75938fd1498SzrjWsuggest-override
76038fd1498SzrjC++ ObjC++ Var(warn_override) Warning
76138fd1498SzrjSuggest that the override keyword be used when the declaration of a virtual
76238fd1498Szrjfunction overrides another.
76338fd1498Szrj
76438fd1498SzrjWswitch
76538fd1498SzrjC ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
76638fd1498SzrjWarn about enumerated switches, with no default, missing a case.
76738fd1498Szrj
76838fd1498SzrjWswitch-default
76938fd1498SzrjC ObjC C++ ObjC++ Var(warn_switch_default) Warning
77038fd1498SzrjWarn about enumerated switches missing a \"default:\" statement.
77138fd1498Szrj
77238fd1498SzrjWswitch-enum
77338fd1498SzrjC ObjC C++ ObjC++ Var(warn_switch_enum) Warning
77438fd1498SzrjWarn about all enumerated switches missing a specific case.
77538fd1498Szrj
77638fd1498SzrjWswitch-bool
77738fd1498SzrjC ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
77838fd1498SzrjWarn about switches with boolean controlling expression.
77938fd1498Szrj
78038fd1498SzrjWtemplates
78138fd1498SzrjC++ ObjC++ Var(warn_templates) Warning
78238fd1498SzrjWarn on primary template declaration.
78338fd1498Szrj
78438fd1498SzrjWmissing-attributes
78538fd1498SzrjC ObjC C++ ObjC++ Var(warn_missing_attributes) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
78638fd1498SzrjWarn about declarations of entities that may be missing attributes
78738fd1498Szrjthat related entities have been declared with it.
78838fd1498Szrj
78938fd1498SzrjWmissing-format-attribute
79038fd1498SzrjC ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
79138fd1498Szrj;
79238fd1498Szrj
79338fd1498SzrjWmissing-include-dirs
79438fd1498SzrjC ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
79538fd1498SzrjWarn about user-specified include directories that do not exist.
79638fd1498Szrj
79738fd1498SzrjWmissing-parameter-type
79838fd1498SzrjC ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
79938fd1498SzrjWarn about function parameters declared without a type specifier in K&R-style functions.
80038fd1498Szrj
80138fd1498SzrjWmissing-prototypes
80238fd1498SzrjC ObjC Var(warn_missing_prototypes) Warning
80338fd1498SzrjWarn about global functions without prototypes.
80438fd1498Szrj
80538fd1498SzrjWmudflap
80638fd1498SzrjC ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
80738fd1498Szrj
80838fd1498SzrjWmultichar
80938fd1498SzrjC ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
81038fd1498SzrjWarn about use of multi-character character constants.
81138fd1498Szrj
81238fd1498SzrjWnarrowing
81338fd1498SzrjC ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
81438fd1498SzrjWarn about narrowing conversions within { } that are ill-formed in C++11.
81538fd1498Szrj
81638fd1498SzrjWnested-externs
81738fd1498SzrjC ObjC Var(warn_nested_externs) Warning
81838fd1498SzrjWarn about \"extern\" declarations not at file scope.
81938fd1498Szrj
82038fd1498SzrjWnoexcept
82138fd1498SzrjC++ ObjC++ Var(warn_noexcept) Warning
82238fd1498SzrjWarn when a noexcept expression evaluates to false even though the expression can't actually throw.
82338fd1498Szrj
82438fd1498SzrjWnoexcept-type
82538fd1498SzrjC++ ObjC++ Warning Var(warn_noexcept_type) LangEnabledBy(C++ ObjC++,Wabi || Wc++17-compat)
82638fd1498SzrjWarn if C++17 noexcept function type will change the mangled name of a symbol.
82738fd1498Szrj
82838fd1498SzrjWnon-template-friend
82938fd1498SzrjC++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
83038fd1498SzrjWarn when non-templatized friend functions are declared within a template.
83138fd1498Szrj
83238fd1498SzrjWclass-memaccess
83338fd1498SzrjC++ ObjC++ Var(warn_class_memaccess) Warning LangEnabledBy(C++ ObjC++, Wall)
83438fd1498SzrjWarn for unsafe raw memory writes to objects of class types.
83538fd1498Szrj
83638fd1498SzrjWnon-virtual-dtor
83738fd1498SzrjC++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
83838fd1498SzrjWarn about non-virtual destructors.
83938fd1498Szrj
84038fd1498SzrjWnonnull
84138fd1498SzrjC ObjC C++ LTO ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=,warn_format >= 1,0)
84238fd1498SzrjWarn about NULL being passed to argument slots marked as requiring non-NULL.
84338fd1498Szrj
84438fd1498SzrjWnonnull
84538fd1498SzrjC ObjC C++ LTO ObjC++ LangEnabledBy(C ObjC C++ LTO ObjC++,Wall)
84638fd1498Szrj;
84738fd1498Szrj
84838fd1498SzrjWnonnull-compare
84938fd1498SzrjC ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
85038fd1498Szrj;
85138fd1498Szrj
85238fd1498SzrjWnormalized
85338fd1498SzrjC ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
85438fd1498Szrj;
85538fd1498Szrj
85638fd1498SzrjWnormalized=
85738fd1498SzrjC ObjC C++ ObjC++ RejectNegative Joined Warning CPP(warn_normalize) CppReason(CPP_W_NORMALIZE) Init(normalized_C) Var(cpp_warn_normalize) Enum(cpp_normalize_level)
85838fd1498Szrj-Wnormalized=[none|id|nfc|nfkc]	Warn about non-normalized Unicode strings.
85938fd1498Szrj
86038fd1498Szrj; Required for these enum values.
86138fd1498SzrjSourceInclude
86238fd1498Szrjcpplib.h
86338fd1498Szrj
86438fd1498SzrjEnum
86538fd1498SzrjName(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
86638fd1498Szrj
86738fd1498SzrjEnumValue
86838fd1498SzrjEnum(cpp_normalize_level) String(none) Value(normalized_none)
86938fd1498Szrj
87038fd1498SzrjEnumValue
87138fd1498SzrjEnum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
87238fd1498Szrj
87338fd1498SzrjEnumValue
87438fd1498SzrjEnum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
87538fd1498Szrj
87638fd1498SzrjEnumValue
87738fd1498SzrjEnum(cpp_normalize_level) String(nfc) Value(normalized_C)
87838fd1498Szrj
87938fd1498SzrjWold-style-cast
88038fd1498SzrjC++ ObjC++ Var(warn_old_style_cast) Warning
88138fd1498SzrjWarn if a C-style cast is used in a program.
88238fd1498Szrj
88338fd1498SzrjWold-style-declaration
88438fd1498SzrjC ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
88538fd1498SzrjWarn for obsolescent usage in a declaration.
88638fd1498Szrj
88738fd1498SzrjWold-style-definition
88838fd1498SzrjC ObjC Var(warn_old_style_definition) Warning
88938fd1498SzrjWarn if an old-style parameter definition is used.
89038fd1498Szrj
89138fd1498SzrjWopenmp-simd
89238fd1498SzrjC C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
89338fd1498SzrjWarn if a simd directive is overridden by the vectorizer cost model.
89438fd1498Szrj
89538fd1498SzrjWoverlength-strings
89638fd1498SzrjC ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
89738fd1498SzrjWarn if a string is longer than the maximum portable length specified by the standard.
89838fd1498Szrj
89938fd1498SzrjWoverloaded-virtual
90038fd1498SzrjC++ ObjC++ Var(warn_overloaded_virtual) Warning
90138fd1498SzrjWarn about overloaded virtual function names.
90238fd1498Szrj
90338fd1498SzrjWoverride-init
90438fd1498SzrjC ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
90538fd1498SzrjWarn about overriding initializers without side effects.
90638fd1498Szrj
90738fd1498SzrjWoverride-init-side-effects
90838fd1498SzrjC ObjC Var(warn_override_init_side_effects) Init(1) Warning
90938fd1498SzrjWarn about overriding initializers with side effects.
91038fd1498Szrj
91138fd1498SzrjWpacked-bitfield-compat
91238fd1498SzrjC ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
91338fd1498SzrjWarn about packed bit-fields whose offset changed in GCC 4.4.
91438fd1498Szrj
91538fd1498SzrjWparentheses
91638fd1498SzrjC ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
91738fd1498SzrjWarn about possibly missing parentheses.
91838fd1498Szrj
91938fd1498SzrjWpedantic
92038fd1498SzrjC ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
92138fd1498Szrj; Documented in common.opt
92238fd1498Szrj
92338fd1498SzrjWpmf-conversions
92438fd1498SzrjC++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
92538fd1498SzrjWarn when converting the type of pointers to member functions.
92638fd1498Szrj
92738fd1498SzrjWpointer-arith
92838fd1498SzrjC ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
92938fd1498SzrjWarn about function pointer arithmetic.
93038fd1498Szrj
93138fd1498SzrjWpointer-sign
93238fd1498SzrjC ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
93338fd1498SzrjWarn when a pointer differs in signedness in an assignment.
93438fd1498Szrj
93538fd1498SzrjWpointer-compare
93638fd1498SzrjC ObjC C++ ObjC++ Var(warn_pointer_compare) Init(1) Warning
93738fd1498SzrjWarn when a pointer is compared with a zero character constant.
93838fd1498Szrj
93938fd1498SzrjWpointer-to-int-cast
94038fd1498SzrjC ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
94138fd1498SzrjWarn when a pointer is cast to an integer of a different size.
94238fd1498Szrj
94338fd1498SzrjWpragmas
94438fd1498SzrjC ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
94538fd1498SzrjWarn about misuses of pragmas.
94638fd1498Szrj
94738fd1498SzrjWproperty-assign-default
94838fd1498SzrjObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
94938fd1498SzrjWarn if a property for an Objective-C object has no assign semantics specified.
95038fd1498Szrj
95138fd1498SzrjWprotocol
95238fd1498SzrjObjC ObjC++ Var(warn_protocol) Init(1) Warning
95338fd1498SzrjWarn if inherited methods are unimplemented.
95438fd1498Szrj
95538fd1498SzrjWplacement-new
95638fd1498SzrjC++ Warning Alias(Wplacement-new=, 1, 0)
95738fd1498SzrjWarn for placement new expressions with undefined behavior.
95838fd1498Szrj
95938fd1498SzrjWplacement-new=
96038fd1498SzrjC++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2)
96138fd1498SzrjWarn for placement new expressions with undefined behavior.
96238fd1498Szrj
96338fd1498SzrjWredundant-decls
96438fd1498SzrjC ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
96538fd1498SzrjWarn about multiple declarations of the same object.
96638fd1498Szrj
96738fd1498SzrjWregister
96838fd1498SzrjC++ ObjC++ Var(warn_register) Warning
96938fd1498SzrjWarn about uses of register storage specifier.
97038fd1498Szrj
97138fd1498SzrjWreorder
97238fd1498SzrjC++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
97338fd1498SzrjWarn when the compiler reorders code.
97438fd1498Szrj
97538fd1498SzrjWreturn-type
97638fd1498SzrjC ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) Init(-1)
97738fd1498SzrjWarn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
97838fd1498Szrj
97938fd1498SzrjWscalar-storage-order
98038fd1498SzrjC ObjC C++ ObjC++ Init(1) Warning
98138fd1498SzrjWarn on suspicious constructs involving reverse scalar storage order.
98238fd1498Szrj
98338fd1498SzrjWselector
98438fd1498SzrjObjC ObjC++ Var(warn_selector) Warning
98538fd1498SzrjWarn if a selector has multiple methods.
98638fd1498Szrj
98738fd1498SzrjWsequence-point
98838fd1498SzrjC ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
98938fd1498SzrjWarn about possible violations of sequence point rules.
99038fd1498Szrj
99138fd1498SzrjWshadow-ivar
99238fd1498SzrjObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
99338fd1498SzrjWarn if a local declaration hides an instance variable.
99438fd1498Szrj
99538fd1498SzrjWshift-overflow
99638fd1498SzrjC ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
99738fd1498SzrjWarn if left shift of a signed value overflows.
99838fd1498Szrj
99938fd1498SzrjWshift-overflow=
100038fd1498SzrjC ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning IntegerRange(0, 2)
100138fd1498SzrjWarn if left shift of a signed value overflows.
100238fd1498Szrj
100338fd1498SzrjWshift-count-negative
100438fd1498SzrjC ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
100538fd1498SzrjWarn if shift count is negative.
100638fd1498Szrj
100738fd1498SzrjWshift-count-overflow
100838fd1498SzrjC ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
100938fd1498SzrjWarn if shift count >= width of type.
101038fd1498Szrj
101138fd1498SzrjWshift-negative-value
101238fd1498SzrjC ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
101338fd1498SzrjWarn if left shifting a negative value.
101438fd1498Szrj
101538fd1498SzrjWsign-compare
101638fd1498SzrjC ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
101738fd1498SzrjWarn about signed-unsigned comparisons.
101838fd1498Szrj
101938fd1498SzrjWsign-compare
102038fd1498SzrjC ObjC C++ ObjC++ EnabledBy(Wextra)
102138fd1498Szrj;
102238fd1498Szrj
102338fd1498SzrjWsign-conversion
102438fd1498SzrjC ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
102538fd1498SzrjWarn for implicit type conversions between signed and unsigned integers.
102638fd1498Szrj
102738fd1498SzrjWsign-promo
102838fd1498SzrjC++ ObjC++ Var(warn_sign_promo) Warning
102938fd1498SzrjWarn when overload promotes from unsigned to signed.
103038fd1498Szrj
103138fd1498SzrjWstrict-null-sentinel
103238fd1498SzrjC++ ObjC++ Warning Var(warn_strict_null_sentinel)
103338fd1498SzrjWarn about uncasted NULL used as sentinel.
103438fd1498Szrj
103538fd1498SzrjWstrict-prototypes
103638fd1498SzrjC ObjC Var(warn_strict_prototypes) Warning
103738fd1498SzrjWarn about unprototyped function declarations.
103838fd1498Szrj
103938fd1498SzrjWstrict-aliasing=
104038fd1498SzrjC ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0) IntegerRange(0, 3)
104138fd1498Szrj;
104238fd1498Szrj
104338fd1498SzrjWstrict-overflow=
104438fd1498SzrjC ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 5)
104538fd1498Szrj;
104638fd1498Szrj
104738fd1498SzrjWstrict-selector-match
104838fd1498SzrjObjC ObjC++ Var(warn_strict_selector_match) Warning
104938fd1498SzrjWarn if type signatures of candidate methods do not match exactly.
105038fd1498Szrj
105138fd1498SzrjWsync-nand
105238fd1498SzrjC C++ Var(warn_sync_nand) Init(1) Warning
105338fd1498SzrjWarn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
105438fd1498Szrj
105538fd1498SzrjWsynth
105638fd1498SzrjC++ ObjC++ Var(warn_synth) Warning
105738fd1498SzrjDeprecated.  This switch has no effect.
105838fd1498Szrj
105938fd1498SzrjWsystem-headers
106038fd1498SzrjC ObjC C++ ObjC++ Warning
106138fd1498Szrj; Documented in common.opt
106238fd1498Szrj
106338fd1498SzrjWtautological-compare
106438fd1498SzrjC ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
106538fd1498SzrjWarn if a comparison always evaluates to true or false.
106638fd1498Szrj
106738fd1498SzrjWterminate
106838fd1498SzrjC++ ObjC++ Warning Var(warn_terminate) Init(1)
106938fd1498SzrjWarn if a throw expression will always result in a call to terminate().
107038fd1498Szrj
107138fd1498SzrjWtraditional
107238fd1498SzrjC ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
107338fd1498SzrjWarn about features not present in traditional C.
107438fd1498Szrj
107538fd1498SzrjWtraditional-conversion
107638fd1498SzrjC ObjC Var(warn_traditional_conversion) Warning
107738fd1498SzrjWarn of prototypes causing type conversions different from what would happen in the absence of prototype.
107838fd1498Szrj
107938fd1498SzrjWtrigraphs
108038fd1498SzrjC ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
108138fd1498SzrjWarn if trigraphs are encountered that might affect the meaning of the program.
108238fd1498Szrj
108338fd1498SzrjWundeclared-selector
108438fd1498SzrjObjC ObjC++ Var(warn_undeclared_selector) Warning
108538fd1498SzrjWarn about @selector()s without previously declared methods.
108638fd1498Szrj
108738fd1498SzrjWundef
108838fd1498SzrjC ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
108938fd1498SzrjWarn if an undefined macro is used in an #if directive.
109038fd1498Szrj
109138fd1498SzrjWuninitialized
109238fd1498SzrjC ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
109338fd1498Szrj;
109438fd1498Szrj
109538fd1498SzrjWmaybe-uninitialized
109638fd1498SzrjC ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
109738fd1498Szrj;
109838fd1498Szrj
109938fd1498SzrjWunknown-pragmas
110038fd1498SzrjC ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
110138fd1498SzrjWarn about unrecognized pragmas.
110238fd1498Szrj
110338fd1498SzrjWunsuffixed-float-constants
110438fd1498SzrjC ObjC Var(warn_unsuffixed_float_constants) Warning
110538fd1498SzrjWarn about unsuffixed float constants.
110638fd1498Szrj
110738fd1498SzrjWunused
110838fd1498SzrjC ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
110938fd1498Szrj; documented in common.opt
111038fd1498Szrj
111138fd1498SzrjWunused-local-typedefs
111238fd1498SzrjC ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
111338fd1498SzrjWarn when typedefs locally defined in a function are not used.
111438fd1498Szrj
111538fd1498SzrjWunused-macros
111638fd1498SzrjC ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
111738fd1498SzrjWarn about macros defined in the main file that are not used.
111838fd1498Szrj
111938fd1498SzrjWunused-result
112038fd1498SzrjC ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
112138fd1498SzrjWarn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
112238fd1498Szrj
112338fd1498SzrjWunused-variable
112438fd1498SzrjC ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
112538fd1498Szrj; documented in common.opt
112638fd1498Szrj
112738fd1498SzrjWunused-const-variable
112838fd1498SzrjC ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
112938fd1498SzrjWarn when a const variable is unused.
113038fd1498Szrj
113138fd1498SzrjWunused-const-variable=
113238fd1498SzrjC ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0) IntegerRange(0, 2)
113338fd1498SzrjWarn when a const variable is unused.
113438fd1498Szrj
113538fd1498SzrjWvariadic-macros
113638fd1498SzrjC 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)
113738fd1498SzrjWarn about using variadic macros.
113838fd1498Szrj
113938fd1498SzrjWvarargs
114038fd1498SzrjC ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
114138fd1498SzrjWarn about questionable usage of the macros used to retrieve variable arguments.
114238fd1498Szrj
114338fd1498SzrjWvla
114438fd1498SzrjC ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
114538fd1498SzrjWarn if a variable length array is used.
114638fd1498Szrj
114738fd1498SzrjWvla-larger-than=
114838fd1498SzrjC ObjC C++ ObjC++ Var(warn_vla_limit) Warning Joined RejectNegative UInteger
114938fd1498Szrj-Wvla-larger-than=<number>	Warn on unbounded uses of variable-length arrays, and
115038fd1498Szrjon bounded uses of variable-length arrays whose bound can be
115138fd1498Szrjlarger than <number> bytes.
115238fd1498Szrj
115338fd1498SzrjWvolatile-register-var
115438fd1498SzrjC ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
115538fd1498SzrjWarn when a register variable is declared volatile.
115638fd1498Szrj
115738fd1498SzrjWvirtual-inheritance
115838fd1498SzrjC++ ObjC++ Var(warn_virtual_inheritance) Warning
115938fd1498SzrjWarn on direct virtual inheritance.
116038fd1498Szrj
116138fd1498SzrjWvirtual-move-assign
116238fd1498SzrjC++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
116338fd1498SzrjWarn if a virtual base has a non-trivial move assignment operator.
116438fd1498Szrj
116538fd1498SzrjWwrite-strings
116638fd1498SzrjC ObjC C++ ObjC++ Var(warn_write_strings) Warning
116738fd1498SzrjIn 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.
116838fd1498Szrj
116938fd1498SzrjWzero-as-null-pointer-constant
117038fd1498SzrjC++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
117138fd1498SzrjWarn when a literal '0' is used as null pointer.
117238fd1498Szrj
117338fd1498SzrjWuseless-cast
117438fd1498SzrjC++ ObjC++ Var(warn_useless_cast) Warning
117538fd1498SzrjWarn about useless casts.
117638fd1498Szrj
117738fd1498SzrjWsubobject-linkage
117838fd1498SzrjC++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
117938fd1498SzrjWarn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.
118038fd1498Szrj
118138fd1498SzrjWduplicate-decl-specifier
118238fd1498SzrjC ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
118338fd1498SzrjWarn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
118438fd1498Szrj
118538fd1498SzrjWrestrict
118638fd1498SzrjC ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall)
118738fd1498SzrjWarn when an argument passed to a restrict-qualified parameter aliases with
118838fd1498Szrjanother argument.
118938fd1498Szrj
119038fd1498Szrjansi
119138fd1498SzrjC ObjC C++ ObjC++
119238fd1498SzrjA synonym for -std=c89 (for C) or -std=c++98 (for C++).
119338fd1498Szrj
119438fd1498Szrjd
119538fd1498SzrjC ObjC C++ ObjC++ Joined
119638fd1498Szrj; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
119738fd1498Szrj
119838fd1498Szrjfabi-compat-version=
119938fd1498SzrjC++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
120038fd1498SzrjThe version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
120138fd1498Szrj
120238fd1498Szrjfaccess-control
120338fd1498SzrjC++ ObjC++ Var(flag_access_control) Init(1)
120438fd1498SzrjEnforce class member access control semantics.
120538fd1498Szrj
120638fd1498Szrjfada-spec-parent=
120738fd1498SzrjC ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
120838fd1498Szrj-fada-spec-parent=unit  Dump Ada specs as child units of given parent.
120938fd1498Szrj
121038fd1498Szrjfaligned-new
121138fd1498SzrjC++ ObjC++ Alias(faligned-new=,1,0)
121238fd1498SzrjSupport C++17 allocation of over-aligned types.
121338fd1498Szrj
121438fd1498Szrjfaligned-new=
121538fd1498SzrjC++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
121638fd1498Szrj-faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
121738fd1498Szrj
121838fd1498Szrjfall-virtual
121938fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
122038fd1498Szrj
122138fd1498Szrjfallow-parameterless-variadic-functions
122238fd1498SzrjC ObjC Var(flag_allow_parameterless_variadic_functions)
122338fd1498SzrjAllow variadic functions without named parameter.
122438fd1498Szrj
122538fd1498Szrjfalt-external-templates
122638fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
122738fd1498SzrjNo longer supported.
122838fd1498Szrj
122938fd1498Szrjfasm
123038fd1498SzrjC ObjC C++ ObjC++ Var(flag_no_asm, 0)
123138fd1498SzrjRecognize the \"asm\" keyword.
123238fd1498Szrj
123338fd1498Szrj; Define extra predefined macros for use in libgcc.
123438fd1498Szrjfbuilding-libgcc
123538fd1498SzrjC ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
123638fd1498Szrj
123738fd1498Szrjfbuiltin
123838fd1498SzrjC ObjC C++ ObjC++ Var(flag_no_builtin, 0)
123938fd1498SzrjRecognize built-in functions.
124038fd1498Szrj
124138fd1498Szrjfbuiltin-
124238fd1498SzrjC ObjC C++ ObjC++ Joined
124338fd1498Szrj
124438fd1498Szrjfcanonical-system-headers
124538fd1498SzrjC ObjC C++ ObjC++
124638fd1498SzrjWhere shorter, use canonicalized paths to systems headers.
124738fd1498Szrj
124838fd1498Szrjfcheck-pointer-bounds
124938fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
125038fd1498SzrjAdd Pointer Bounds Checker instrumentation.  fchkp-* flags are used to
125138fd1498Szrjcontrol instrumentation.  Currently available for C, C++ and ObjC.
125238fd1498Szrj
125338fd1498Szrjfchkp-check-incomplete-type
125438fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
125538fd1498SzrjGenerate pointer bounds checks for variables with incomplete type.
125638fd1498Szrj
125738fd1498Szrjfchkp-zero-input-bounds-for-main
125838fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
125938fd1498SzrjUse zero bounds for all incoming arguments in 'main' function.  It helps when
126038fd1498Szrjinstrumented binaries are used with legacy libs.
126138fd1498Szrj
126238fd1498Szrjfchkp-first-field-has-own-bounds
126338fd1498SzrjC ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
126438fd1498SzrjForces Pointer Bounds Checker to use narrowed bounds for address of the first
126538fd1498Szrjfield in the structure.  By default pointer to the first field has the same
126638fd1498Szrjbounds as pointer to the whole structure.
126738fd1498Szrj
126838fd1498Szrjfchkp-narrow-bounds
126938fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
127038fd1498SzrjControl how Pointer Bounds Checker handle pointers to object fields.  When
127138fd1498Szrjnarrowing is on, field bounds are used.  Otherwise full object bounds are used.
127238fd1498Szrj
127338fd1498Szrjfchkp-narrow-to-innermost-array
127438fd1498SzrjC ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
127538fd1498SzrjForces Pointer Bounds Checker to use bounds of the innermost arrays in case of
127638fd1498Szrjnested static arrays access.  By default outermost array is used.
127738fd1498Szrj
127838fd1498Szrjfchkp-flexible-struct-trailing-arrays
127938fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_flexible_struct_trailing_arrays)
128038fd1498SzrjForces Pointer Bounds Checker to treat all trailing arrays in structures as
128138fd1498Szrjpossibly flexible.  By default only arrays fields with zero length or that are
128238fd1498Szrjmarked with attribute bnd_variable_size are treated as flexible.
128338fd1498Szrj
128438fd1498Szrjfchkp-optimize
128538fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
128638fd1498SzrjAllow Pointer Bounds Checker optimizations.  By default allowed
128738fd1498Szrjon optimization levels >0.
128838fd1498Szrj
128938fd1498Szrjfchkp-use-fast-string-functions
129038fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
129138fd1498SzrjAllow to use *_nobnd versions of string functions by Pointer Bounds Checker.
129238fd1498Szrj
129338fd1498Szrjfchkp-use-nochk-string-functions
129438fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
129538fd1498SzrjAllow to use *_nochk versions of string functions by Pointer Bounds Checker.
129638fd1498Szrj
129738fd1498Szrjfchkp-use-static-bounds
129838fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
129938fd1498SzrjUse statically initialized variable for vars bounds instead of
130038fd1498Szrjgenerating them each time it is required.
130138fd1498Szrj
130238fd1498Szrjfchkp-use-static-const-bounds
130338fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
130438fd1498SzrjUse statically initialized variable for constant bounds instead of
130538fd1498Szrjgenerating them each time it is required.
130638fd1498Szrj
130738fd1498Szrjfchkp-treat-zero-dynamic-size-as-infinite
130838fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
130938fd1498SzrjWith this option zero size obtained dynamically for objects with
131038fd1498Szrjincomplete type will be treated as infinite.
131138fd1498Szrj
131238fd1498Szrjfchkp-check-read
131338fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
131438fd1498SzrjGenerate checks for all read accesses to memory.
131538fd1498Szrj
131638fd1498Szrjfchkp-check-write
131738fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
131838fd1498SzrjGenerate checks for all write accesses to memory.
131938fd1498Szrj
132038fd1498Szrjfchkp-store-bounds
132138fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
132238fd1498SzrjGenerate bounds stores for pointer writes.
132338fd1498Szrj
132438fd1498Szrjfchkp-instrument-calls
132538fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
132638fd1498SzrjGenerate bounds passing for calls.
132738fd1498Szrj
132838fd1498Szrjfchkp-instrument-marked-only
132938fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
133038fd1498SzrjInstrument only functions marked with bnd_instrument attribute.
133138fd1498Szrj
133238fd1498Szrjfchkp-use-wrappers
133338fd1498SzrjC ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
133438fd1498SzrjTransform instrumented builtin calls into calls to wrappers.
133538fd1498Szrj
133638fd1498Szrjstatic-libmpx
133738fd1498SzrjDriver
133838fd1498Szrj
133938fd1498Szrjstatic-libmpxwrappers
134038fd1498SzrjDriver
134138fd1498Szrj
1342*58e805e6Szrjfcilkplus
1343*58e805e6SzrjC ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0) Undocumented
134438fd1498SzrjDeprecated in GCC 8.  This switch has no effect.
134538fd1498Szrj
134638fd1498Szrjfconcepts
134738fd1498SzrjC++ ObjC++ Var(flag_concepts)
134838fd1498SzrjEnable support for C++ concepts.
134938fd1498Szrj
135038fd1498Szrjfcond-mismatch
135138fd1498SzrjC ObjC C++ ObjC++
135238fd1498SzrjAllow the arguments of the '?' operator to have different types.
135338fd1498Szrj
135438fd1498Szrjfconserve-space
135538fd1498SzrjC++ ObjC++ Var(flag_conserve_space)
135638fd1498SzrjDoes nothing.  Preserved for backward compatibility.
135738fd1498Szrj
135838fd1498Szrjfconstant-string-class=
135938fd1498SzrjObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
136038fd1498Szrj-fconst-string-class=<name>	Use class <name> for constant strings.
136138fd1498Szrj
136238fd1498Szrjfconstexpr-depth=
136338fd1498SzrjC++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
136438fd1498Szrj-fconstexpr-depth=<number>	Specify maximum constexpr recursion depth.
136538fd1498Szrj
136638fd1498Szrjfconstexpr-loop-limit=
136738fd1498SzrjC++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
136838fd1498Szrj-fconstexpr-loop-limit=<number>	Specify maximum constexpr loop iteration count.
136938fd1498Szrj
137038fd1498Szrjfdebug-cpp
137138fd1498SzrjC ObjC C++ ObjC++
137238fd1498SzrjEmit debug annotations during preprocessing.
137338fd1498Szrj
137438fd1498Szrjfdeduce-init-list
137538fd1498SzrjC++ ObjC++ Var(flag_deduce_init_list) Init(0)
137638fd1498Szrj-fdeduce-init-list	enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
137738fd1498Szrj
137838fd1498Szrjfdeclone-ctor-dtor
137938fd1498SzrjC++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
138038fd1498SzrjFactor complex constructors and destructors to favor space over speed.
138138fd1498Szrj
138238fd1498Szrjfdefault-inline
138338fd1498SzrjC++ ObjC++ Ignore
138438fd1498SzrjDoes nothing.  Preserved for backward compatibility.
138538fd1498Szrj
138638fd1498Szrjfdiagnostics-show-template-tree
138738fd1498SzrjC++ ObjC++ Var(flag_diagnostics_show_template_tree) Init(0)
138838fd1498SzrjPrint hierarchical comparisons when template types are mismatched.
138938fd1498Szrj
139038fd1498Szrjfdirectives-only
139138fd1498SzrjC ObjC C++ ObjC++
139238fd1498SzrjPreprocess directives only.
139338fd1498Szrj
139438fd1498Szrjfdollars-in-identifiers
139538fd1498SzrjC ObjC C++ ObjC++
139638fd1498SzrjPermit '$' as an identifier character.
139738fd1498Szrj
139838fd1498Szrjfmacro-prefix-map=
139938fd1498SzrjC ObjC C++ ObjC++ Joined RejectNegative
140038fd1498Szrj-fmacro-prefix-map=<old>=<new> Map one directory name to another in __FILE__, __BASE_FILE__, and __builtin_FILE().
140138fd1498Szrj
140238fd1498Szrjfdump-ada-spec
140338fd1498SzrjC ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
140438fd1498SzrjWrite all declarations as Ada code transitively.
140538fd1498Szrj
140638fd1498Szrjfdump-ada-spec-slim
140738fd1498SzrjC ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
140838fd1498SzrjWrite all declarations as Ada code for the given file only.
140938fd1498Szrj
141038fd1498Szrjfelide-constructors
141138fd1498SzrjC++ ObjC++ Var(flag_elide_constructors) Init(1)
141238fd1498Szrj
141338fd1498Szrjfelide-type
141438fd1498SzrjC++ ObjC++ Var(flag_elide_type) Init(1)
141538fd1498Szrj-fno-elide-type Do not elide common elements in template comparisons.
141638fd1498Szrj
141738fd1498Szrjfenforce-eh-specs
141838fd1498SzrjC++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
141938fd1498SzrjGenerate code to check exception specifications.
142038fd1498Szrj
142138fd1498Szrjfenum-int-equiv
142238fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
142338fd1498Szrj
142438fd1498Szrjfexec-charset=
142538fd1498SzrjC ObjC C++ ObjC++ Joined RejectNegative
142638fd1498Szrj-fexec-charset=<cset>	Convert all strings and character constants to character set <cset>.
142738fd1498Szrj
142838fd1498Szrjfextended-identifiers
142938fd1498SzrjC ObjC C++ ObjC++
143038fd1498SzrjPermit universal character names (\\u and \\U) in identifiers.
143138fd1498Szrj
143238fd1498Szrjfinput-charset=
143338fd1498SzrjC ObjC C++ ObjC++ Joined RejectNegative
143438fd1498Szrj-finput-charset=<cset>	Specify the default character set for source files.
143538fd1498Szrj
143638fd1498Szrjfextern-tls-init
143738fd1498SzrjC++ ObjC++ Var(flag_extern_tls_init) Init(-1)
143838fd1498SzrjSupport dynamic initialization of thread-local variables in a different translation unit.
143938fd1498Szrj
144038fd1498Szrjfexternal-templates
144138fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
144238fd1498Szrj
144338fd1498Szrjffor-scope
144438fd1498SzrjC++ ObjC++ Var(flag_new_for_scope) Init(1)
144538fd1498SzrjScope of for-init-statement variables is local to the loop.
144638fd1498Szrj
144738fd1498Szrjffreestanding
144838fd1498SzrjC ObjC C++ ObjC++
144938fd1498SzrjDo not assume that standard C libraries and \"main\" exist.
145038fd1498Szrj
145138fd1498Szrjfgnu-keywords
145238fd1498SzrjC++ ObjC++ Var(flag_no_gnu_keywords, 0)
145338fd1498SzrjRecognize GNU-defined keywords.
145438fd1498Szrj
145538fd1498Szrjfgnu-runtime
145638fd1498SzrjObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
145738fd1498SzrjGenerate code for GNU runtime environment.
145838fd1498Szrj
145938fd1498Szrjfgnu89-inline
146038fd1498SzrjC ObjC Var(flag_gnu89_inline) Init(-1)
146138fd1498SzrjUse traditional GNU semantics for inline functions.
146238fd1498Szrj
146338fd1498Szrjfguiding-decls
146438fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
146538fd1498Szrj
146638fd1498Szrjfhandle-exceptions
146738fd1498SzrjC++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
146838fd1498Szrj
146938fd1498Szrjfhonor-std
147038fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
147138fd1498Szrj
147238fd1498Szrjfhosted
147338fd1498SzrjC ObjC
147438fd1498SzrjAssume normal C execution environment.
147538fd1498Szrj
147638fd1498Szrjfhuge-objects
147738fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
147838fd1498SzrjNo longer supported.
147938fd1498Szrj
148038fd1498Szrjfimplement-inlines
148138fd1498SzrjC++ ObjC++ Var(flag_implement_inlines) Init(1)
148238fd1498SzrjExport functions even if they can be inlined.
148338fd1498Szrj
148438fd1498Szrjfimplicit-inline-templates
148538fd1498SzrjC++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
148638fd1498SzrjEmit implicit instantiations of inline templates.
148738fd1498Szrj
148838fd1498Szrjfimplicit-templates
148938fd1498SzrjC++ ObjC++ Var(flag_implicit_templates) Init(1)
149038fd1498SzrjEmit implicit instantiations of templates.
149138fd1498Szrj
149238fd1498Szrjfnew-inheriting-ctors
149338fd1498SzrjC++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
149438fd1498SzrjImplement C++17 inheriting constructor semantics.
149538fd1498Szrj
149638fd1498Szrjffriend-injection
149738fd1498SzrjC++ ObjC++ Var(flag_friend_injection)
149838fd1498SzrjInject friend functions into enclosing namespace.
149938fd1498Szrj
150038fd1498Szrjfkeep-inline-dllexport
150138fd1498SzrjC C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
150238fd1498SzrjDon't emit dllexported inline functions unless needed.
150338fd1498Szrj
150438fd1498Szrjflabels-ok
150538fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
150638fd1498Szrj
150738fd1498Szrjflax-vector-conversions
150838fd1498SzrjC ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
150938fd1498SzrjAllow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
151038fd1498Szrj
151138fd1498Szrjfms-extensions
151238fd1498SzrjC ObjC C++ ObjC++ Var(flag_ms_extensions)
151338fd1498SzrjDon't warn about uses of Microsoft extensions.
151438fd1498Szrj
151538fd1498Szrjfmudflap
151638fd1498SzrjC ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
151738fd1498Szrj
151838fd1498Szrjfmudflapth
151938fd1498SzrjC ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
152038fd1498Szrj
152138fd1498Szrjfmudflapir
152238fd1498SzrjC ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
152338fd1498Szrj
152438fd1498Szrjfname-mangling-version-
152538fd1498SzrjC++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
152638fd1498Szrj
152738fd1498Szrjfnew-abi
152838fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
152938fd1498Szrj
153038fd1498Szrjfnew-ttp-matching
153138fd1498SzrjC++ ObjC++ Var(flag_new_ttp)
153238fd1498SzrjImplement resolution of DR 150 for matching of template template arguments.
153338fd1498Szrj
153438fd1498Szrjfnext-runtime
153538fd1498SzrjObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
153638fd1498SzrjGenerate code for NeXT (Apple Mac OS X) runtime environment.
153738fd1498Szrj
153838fd1498Szrjfnil-receivers
153938fd1498SzrjObjC ObjC++ Var(flag_nil_receivers) Init(1)
154038fd1498SzrjAssume that receivers of Objective-C messages may be nil.
154138fd1498Szrj
154238fd1498Szrjflocal-ivars
154338fd1498SzrjObjC ObjC++ Var(flag_local_ivars) Init(1)
154438fd1498SzrjAllow access to instance variables as if they were local declarations within instance method implementations.
154538fd1498Szrj
154638fd1498Szrjfivar-visibility=
154738fd1498SzrjObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
154838fd1498Szrj-fvisibility=[private|protected|public|package]	Set the default symbol visibility.
154938fd1498Szrj
155038fd1498SzrjEnum
155138fd1498SzrjName(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
155238fd1498Szrj
155338fd1498SzrjEnumValue
155438fd1498SzrjEnum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
155538fd1498Szrj
155638fd1498SzrjEnumValue
155738fd1498SzrjEnum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
155838fd1498Szrj
155938fd1498SzrjEnumValue
156038fd1498SzrjEnum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
156138fd1498Szrj
156238fd1498SzrjEnumValue
156338fd1498SzrjEnum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
156438fd1498Szrj
156538fd1498Szrjfnonansi-builtins
156638fd1498SzrjC++ ObjC++ Var(flag_no_nonansi_builtin, 0)
156738fd1498Szrj
156838fd1498Szrjfnonnull-objects
156938fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
157038fd1498Szrj
157138fd1498Szrjfnothrow-opt
157238fd1498SzrjC++ ObjC++ Optimization Var(flag_nothrow_opt)
157338fd1498SzrjTreat a throw() exception specification as noexcept to improve code size.
157438fd1498Szrj
157538fd1498Szrjfobjc-abi-version=
157638fd1498SzrjObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
157738fd1498SzrjSpecify which ABI to use for Objective-C family code and meta-data generation.
157838fd1498Szrj
157938fd1498Szrj; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
158038fd1498Szrj; to initialize any non-POD ivars in Objective-C++ classes.
158138fd1498Szrjfobjc-call-cxx-cdtors
158238fd1498SzrjObjC++ Var(flag_objc_call_cxx_cdtors)
158338fd1498SzrjGenerate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
158438fd1498Szrj
158538fd1498Szrjfobjc-direct-dispatch
158638fd1498SzrjObjC ObjC++ Var(flag_objc_direct_dispatch)
158738fd1498SzrjAllow fast jumps to the message dispatcher.
158838fd1498Szrj
158938fd1498Szrj; Nonzero means that we will allow new ObjC exception syntax (@throw,
159038fd1498Szrj; @try, etc.) in source code.
159138fd1498Szrjfobjc-exceptions
159238fd1498SzrjObjC ObjC++ Var(flag_objc_exceptions)
159338fd1498SzrjEnable Objective-C exception and synchronization syntax.
159438fd1498Szrj
159538fd1498Szrjfobjc-gc
159638fd1498SzrjObjC ObjC++ LTO Var(flag_objc_gc)
159738fd1498SzrjEnable garbage collection (GC) in Objective-C/Objective-C++ programs.
159838fd1498Szrj
159938fd1498Szrjfobjc-nilcheck
160038fd1498SzrjObjC ObjC++ Var(flag_objc_nilcheck,1)
160138fd1498SzrjEnable inline checks for nil receivers with the NeXT runtime and ABI version 2.
160238fd1498Szrj
160338fd1498Szrj; Nonzero means that we generate NeXT setjmp based exceptions.
160438fd1498Szrjfobjc-sjlj-exceptions
160538fd1498SzrjObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
160638fd1498SzrjEnable Objective-C setjmp exception handling runtime.
160738fd1498Szrj
160838fd1498Szrjfobjc-std=objc1
160938fd1498SzrjObjC ObjC++ Var(flag_objc1_only)
161038fd1498SzrjConform to the Objective-C 1.0 language as implemented in GCC 4.0.
161138fd1498Szrj
161238fd1498Szrjfopenacc
161338fd1498SzrjC ObjC C++ ObjC++ LTO Var(flag_openacc)
161438fd1498SzrjEnable OpenACC.
161538fd1498Szrj
161638fd1498Szrjfopenacc-dim=
161738fd1498SzrjC ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
161838fd1498SzrjSpecify default OpenACC compute dimensions.
161938fd1498Szrj
162038fd1498Szrjfopenmp
162138fd1498SzrjC ObjC C++ ObjC++ LTO Var(flag_openmp)
162238fd1498SzrjEnable OpenMP (implies -frecursive in Fortran).
162338fd1498Szrj
162438fd1498Szrjfopenmp-simd
162538fd1498SzrjC ObjC C++ ObjC++ Var(flag_openmp_simd)
162638fd1498SzrjEnable OpenMP's SIMD directives.
162738fd1498Szrj
162838fd1498Szrjfoperator-names
162938fd1498SzrjC++ ObjC++
163038fd1498SzrjRecognize C++ keywords like \"compl\" and \"xor\".
163138fd1498Szrj
163238fd1498Szrjfoptional-diags
163338fd1498SzrjC++ ObjC++ Ignore
163438fd1498SzrjDoes nothing.  Preserved for backward compatibility.
163538fd1498Szrj
163638fd1498Szrjfpch-deps
163738fd1498SzrjC ObjC C++ ObjC++
163838fd1498Szrj
163938fd1498Szrjfpch-preprocess
164038fd1498SzrjC ObjC C++ ObjC++
164138fd1498SzrjLook for and use PCH files even when preprocessing.
164238fd1498Szrj
164338fd1498Szrjfpermissive
164438fd1498SzrjC++ ObjC++ Var(flag_permissive)
164538fd1498SzrjDowngrade conformance errors to warnings.
164638fd1498Szrj
164738fd1498Szrjfplan9-extensions
164838fd1498SzrjC ObjC Var(flag_plan9_extensions)
164938fd1498SzrjEnable Plan 9 language extensions.
165038fd1498Szrj
165138fd1498Szrjfpreprocessed
165238fd1498SzrjC ObjC C++ ObjC++
165338fd1498SzrjTreat the input file as already preprocessed.
165438fd1498Szrj
165538fd1498Szrjftrack-macro-expansion
165638fd1498SzrjC ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
165738fd1498Szrj; converted into ftrack-macro-expansion=
165838fd1498Szrj
165938fd1498Szrjftrack-macro-expansion=
166038fd1498SzrjC ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
166138fd1498Szrj-ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages.
166238fd1498Szrj
166338fd1498Szrjfpretty-templates
166438fd1498SzrjC++ ObjC++ Var(flag_pretty_templates) Init(1)
166538fd1498Szrj-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
166638fd1498Szrj
166738fd1498Szrjfprintf-return-value
166838fd1498SzrjC ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
166938fd1498SzrjTreat known sprintf return values as constants.
167038fd1498Szrj
167138fd1498Szrjfreplace-objc-classes
167238fd1498SzrjObjC ObjC++ LTO Var(flag_replace_objc_classes)
167338fd1498SzrjUsed in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
167438fd1498Szrj
167538fd1498Szrjfrepo
167638fd1498SzrjC++ ObjC++
167738fd1498SzrjEnable automatic template instantiation.
167838fd1498Szrj
167938fd1498Szrjfrtti
168038fd1498SzrjC++ ObjC++ Optimization Var(flag_rtti) Init(1)
168138fd1498SzrjGenerate run time type descriptor information.
168238fd1498Szrj
168338fd1498Szrjfshort-enums
168438fd1498SzrjC ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
168538fd1498SzrjUse the narrowest integer type possible for enumeration types.
168638fd1498Szrj
168738fd1498Szrjfshort-wchar
168838fd1498SzrjC ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
168938fd1498SzrjForce the underlying type for \"wchar_t\" to be \"unsigned short\".
169038fd1498Szrj
169138fd1498Szrjfsigned-bitfields
169238fd1498SzrjC ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
169338fd1498SzrjWhen \"signed\" or \"unsigned\" is not given make the bitfield signed.
169438fd1498Szrj
169538fd1498Szrjfsigned-char
169638fd1498SzrjC ObjC C++ ObjC++ LTO Var(flag_signed_char)
169738fd1498SzrjMake \"char\" signed by default.
169838fd1498Szrj
169938fd1498Szrjfsized-deallocation
170038fd1498SzrjC++ ObjC++ Var(flag_sized_deallocation) Init(-1)
170138fd1498SzrjEnable C++14 sized deallocation support.
170238fd1498Szrj
170338fd1498Szrjfsquangle
170438fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
170538fd1498Szrj
170638fd1498Szrjfsso-struct=
170738fd1498SzrjC ObjC Joined RejectNegative Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
170838fd1498Szrj-fsso-struct=[big-endian|little-endian|native]	Set the default scalar storage order.
170938fd1498Szrj
171038fd1498SzrjEnum
171138fd1498SzrjName(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
171238fd1498Szrj
171338fd1498SzrjEnumValue
171438fd1498SzrjEnum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
171538fd1498Szrj
171638fd1498SzrjEnumValue
171738fd1498SzrjEnum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
171838fd1498Szrj
171938fd1498SzrjEnumValue
172038fd1498SzrjEnum(sso_struct) String(native) Value(SSO_NATIVE)
172138fd1498Szrj
172238fd1498Szrjfstats
172338fd1498SzrjC++ ObjC++ Var(flag_detailed_statistics)
172438fd1498SzrjDisplay statistics accumulated during compilation.
172538fd1498Szrj
172638fd1498Szrjfstrict-enums
172738fd1498SzrjC++ ObjC++ Optimization Var(flag_strict_enums)
172838fd1498SzrjAssume that values of enumeration type are always within the minimum range of that type.
172938fd1498Szrj
173038fd1498Szrjfstrict-prototype
173138fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
173238fd1498Szrj
173338fd1498Szrjfstrong-eval-order
173438fd1498SzrjC++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
173538fd1498SzrjFollow the C++17 evaluation order requirements for assignment expressions,
173638fd1498Szrjshift, member function calls, etc.
173738fd1498Szrj
173838fd1498Szrjfstrong-eval-order=
173938fd1498SzrjC++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) RejectNegative Init(-1)
174038fd1498SzrjFollow the C++17 evaluation order requirements for assignment expressions,
174138fd1498Szrjshift, member function calls, etc.
174238fd1498Szrj
174338fd1498SzrjEnum
174438fd1498SzrjName(strong_eval_order) Type(int)
174538fd1498Szrj
174638fd1498SzrjEnumValue
174738fd1498SzrjEnum(strong_eval_order) String(none) Value(0)
174838fd1498Szrj
174938fd1498SzrjEnumValue
175038fd1498SzrjEnum(strong_eval_order) String(some) Value(1)
175138fd1498Szrj
175238fd1498SzrjEnumValue
175338fd1498SzrjEnum(strong_eval_order) String(all) Value(2)
175438fd1498Szrj
175538fd1498Szrjftabstop=
175638fd1498SzrjC ObjC C++ ObjC++ Joined RejectNegative UInteger
175738fd1498Szrj-ftabstop=<number>	Distance between tab stops for column reporting.
175838fd1498Szrj
175938fd1498Szrjftemplate-backtrace-limit=
176038fd1498SzrjC++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
176138fd1498SzrjSet the maximum number of template instantiation notes for a single warning or error.
176238fd1498Szrj
176338fd1498Szrjftemplate-depth-
176438fd1498SzrjC++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
176538fd1498Szrj
176638fd1498Szrjftemplate-depth=
176738fd1498SzrjC++ ObjC++ Joined RejectNegative UInteger
176838fd1498Szrj-ftemplate-depth=<number>	Specify maximum template instantiation depth.
176938fd1498Szrj
177038fd1498Szrjfthis-is-variable
177138fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
177238fd1498Szrj
177338fd1498Szrjfthreadsafe-statics
177438fd1498SzrjC++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
177538fd1498Szrj-fno-threadsafe-statics	Do not generate thread-safe code for initializing local statics.
177638fd1498Szrj
177738fd1498Szrjfunsigned-bitfields
177838fd1498SzrjC ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
177938fd1498SzrjWhen \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
178038fd1498Szrj
178138fd1498Szrjfunsigned-char
178238fd1498SzrjC ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
178338fd1498SzrjMake \"char\" unsigned by default.
178438fd1498Szrj
178538fd1498Szrjfuse-cxa-atexit
178638fd1498SzrjC++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
178738fd1498SzrjUse __cxa_atexit to register destructors.
178838fd1498Szrj
178938fd1498Szrjfuse-cxa-get-exception-ptr
179038fd1498SzrjC++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
179138fd1498SzrjUse __cxa_get_exception_ptr in exception handling.
179238fd1498Szrj
179338fd1498Szrjfvisibility-inlines-hidden
179438fd1498SzrjC++ ObjC++
179538fd1498SzrjMarks all inlined functions and methods as having hidden visibility.
179638fd1498Szrj
179738fd1498Szrjfvisibility-ms-compat
179838fd1498SzrjC++ ObjC++ Var(flag_visibility_ms_compat)
179938fd1498SzrjChanges visibility to match Microsoft Visual Studio by default.
180038fd1498Szrj
180138fd1498Szrjfvtable-gc
180238fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
180338fd1498SzrjNo longer supported.
180438fd1498Szrj
180538fd1498Szrjfvtable-thunks
180638fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
180738fd1498SzrjNo longer supported.
180838fd1498Szrj
180938fd1498Szrjfweak
181038fd1498SzrjC++ ObjC++ Var(flag_weak) Init(1)
181138fd1498SzrjEmit common-like symbols as weak symbols.
181238fd1498Szrj
181338fd1498Szrjfwide-exec-charset=
181438fd1498SzrjC ObjC C++ ObjC++ Joined RejectNegative
181538fd1498Szrj-fwide-exec-charset=<cset>	Convert all wide strings and character constants to character set <cset>.
181638fd1498Szrj
181738fd1498Szrjfworking-directory
181838fd1498SzrjC ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
181938fd1498SzrjGenerate a #line directive pointing at the current working directory.
182038fd1498Szrj
182138fd1498Szrjfxref
182238fd1498SzrjC++ ObjC++ Ignore Warn(switch %qs is no longer supported)
182338fd1498SzrjNo longer supported.
182438fd1498Szrj
182538fd1498Szrjfzero-link
182638fd1498SzrjObjC ObjC++ Var(flag_zero_link)
182738fd1498SzrjGenerate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
182838fd1498Szrj
182938fd1498Szrjgen-decls
183038fd1498SzrjObjC ObjC++ Driver Var(flag_gen_declaration) RejectNegative
183138fd1498SzrjDump declarations to a .decl file.
183238fd1498Szrj
183338fd1498Szrjfemit-struct-debug-baseonly
183438fd1498SzrjC ObjC C++ ObjC++
183538fd1498Szrj-femit-struct-debug-baseonly	Aggressive reduced debug info for structs.
183638fd1498Szrj
183738fd1498Szrjfemit-struct-debug-reduced
183838fd1498SzrjC ObjC C++ ObjC++
183938fd1498Szrj-femit-struct-debug-reduced	Conservative reduced debug info for structs.
184038fd1498Szrj
184138fd1498Szrjfemit-struct-debug-detailed=
184238fd1498SzrjC ObjC C++ ObjC++ Joined
184338fd1498Szrj-femit-struct-debug-detailed=<spec-list>	Detailed reduced debug info for structs.
184438fd1498Szrj
184538fd1498Szrjfext-numeric-literals
184638fd1498SzrjC++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
184738fd1498SzrjInterpret imaginary, fixed-point, or other gnu number suffix as the corresponding
184838fd1498Szrjnumber literal rather than a user-defined number literal.
184938fd1498Szrj
185038fd1498Szrjidirafter
185138fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
185238fd1498Szrj-idirafter <dir>	Add <dir> to the end of the system include path.
185338fd1498Szrj
185438fd1498Szrjimacros
185538fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
185638fd1498Szrj-imacros <file>	Accept definition of macros in <file>.
185738fd1498Szrj
185838fd1498Szrjimultilib
185938fd1498SzrjC ObjC C++ ObjC++ Joined Separate
186038fd1498Szrj-imultilib <dir>	Set <dir> to be the multilib include subdirectory.
186138fd1498Szrj
186238fd1498Szrjinclude
186338fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
186438fd1498Szrj-include <file>	Include the contents of <file> before other files.
186538fd1498Szrj
186638fd1498Szrjiprefix
186738fd1498SzrjC ObjC C++ ObjC++ Joined Separate
186838fd1498Szrj-iprefix <path>	Specify <path> as a prefix for next two options.
186938fd1498Szrj
187038fd1498Szrjisysroot
187138fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
187238fd1498Szrj-isysroot <dir>	Set <dir> to be the system root directory.
187338fd1498Szrj
187438fd1498Szrjisystem
187538fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
187638fd1498Szrj-isystem <dir>	Add <dir> to the start of the system include path.
187738fd1498Szrj
187838fd1498Szrjiquote
187938fd1498SzrjC ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
188038fd1498Szrj-iquote <dir>	Add <dir> to the end of the quote include path.
188138fd1498Szrj
188238fd1498Szrjiwithprefix
188338fd1498SzrjC ObjC C++ ObjC++ Joined Separate
188438fd1498Szrj-iwithprefix <dir>	Add <dir> to the end of the system include path.
188538fd1498Szrj
188638fd1498Szrjiwithprefixbefore
188738fd1498SzrjC ObjC C++ ObjC++ Joined Separate
188838fd1498Szrj-iwithprefixbefore <dir>	Add <dir> to the end of the main include path.
188938fd1498Szrj
189038fd1498Szrjlang-asm
189138fd1498SzrjC Undocumented RejectDriver
189238fd1498Szrj
189338fd1498Szrjno-integrated-cpp
189438fd1498SzrjDriver
189538fd1498Szrj
189638fd1498Szrjnostdinc
189738fd1498SzrjC ObjC C++ ObjC++
189838fd1498SzrjDo not search standard system include directories (those specified with -isystem will still be used).
189938fd1498Szrj
190038fd1498Szrjnostdinc++
190138fd1498SzrjC++ ObjC++
190238fd1498SzrjDo not search standard system include directories for C++.
190338fd1498Szrj
190438fd1498Szrjo
190538fd1498SzrjC ObjC C++ ObjC++ Joined Separate
190638fd1498Szrj; Documented in common.opt
190738fd1498Szrj
190838fd1498Szrjpedantic
190938fd1498SzrjC ObjC C++ ObjC++ Alias(Wpedantic)
191038fd1498Szrj; Documented in common.opt
191138fd1498Szrj
191238fd1498Szrjprint-objc-runtime-info
191338fd1498SzrjObjC ObjC++
191438fd1498SzrjGenerate C header of platform-specific features.
191538fd1498Szrj
191638fd1498Szrjremap
191738fd1498SzrjC ObjC C++ ObjC++
191838fd1498SzrjRemap file names when including files.
191938fd1498Szrj
192038fd1498Szrjstd=c++98
192138fd1498SzrjC++ ObjC++
192238fd1498SzrjConform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
192338fd1498Szrj
192438fd1498Szrjstd=c++03
192538fd1498SzrjC++ ObjC++ Alias(std=c++98)
192638fd1498SzrjConform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
192738fd1498Szrj
192838fd1498Szrjstd=c++11
192938fd1498SzrjC++ ObjC++
193038fd1498SzrjConform to the ISO 2011 C++ standard.
193138fd1498Szrj
193238fd1498Szrjstd=c++0x
193338fd1498SzrjC++ ObjC++ Alias(std=c++11) Undocumented
193438fd1498SzrjDeprecated in favor of -std=c++11.
193538fd1498Szrj
193638fd1498Szrjstd=c++1y
193738fd1498SzrjC++ ObjC++ Alias(std=c++14) Undocumented
193838fd1498SzrjDeprecated in favor of -std=c++14.
193938fd1498Szrj
194038fd1498Szrjstd=c++14
194138fd1498SzrjC++ ObjC++
194238fd1498SzrjConform to the ISO 2014 C++ standard.
194338fd1498Szrj
194438fd1498Szrjstd=c++1z
194538fd1498SzrjC++ ObjC++ Alias(std=c++17) Undocumented
194638fd1498SzrjDeprecated in favor of -std=c++17.
194738fd1498Szrj
194838fd1498Szrjstd=c++17
194938fd1498SzrjC++ ObjC++
195038fd1498SzrjConform to the ISO 2017 C++ standard.
195138fd1498Szrj
195238fd1498Szrjstd=c++2a
195338fd1498SzrjC++ ObjC++
195438fd1498SzrjConform to the ISO 2020(?) C++ draft standard (experimental and incomplete support).
195538fd1498Szrj
195638fd1498Szrjstd=c11
195738fd1498SzrjC ObjC
195838fd1498SzrjConform to the ISO 2011 C standard.
195938fd1498Szrj
196038fd1498Szrjstd=c1x
196138fd1498SzrjC ObjC Alias(std=c11)
196238fd1498SzrjDeprecated in favor of -std=c11.
196338fd1498Szrj
196438fd1498Szrjstd=c17
196538fd1498SzrjC ObjC
196638fd1498SzrjConform to the ISO 2017 C standard (expected to be published in 2018).
196738fd1498Szrj
196838fd1498Szrjstd=c18
196938fd1498SzrjC ObjC Alias(std=c17)
197038fd1498SzrjConform to the ISO 2017 C standard (expected to be published in 2018).
197138fd1498Szrj
197238fd1498Szrjstd=c89
197338fd1498SzrjC ObjC Alias(std=c90)
197438fd1498SzrjConform to the ISO 1990 C standard.
197538fd1498Szrj
197638fd1498Szrjstd=c90
197738fd1498SzrjC ObjC
197838fd1498SzrjConform to the ISO 1990 C standard.
197938fd1498Szrj
198038fd1498Szrjstd=c99
198138fd1498SzrjC ObjC
198238fd1498SzrjConform to the ISO 1999 C standard.
198338fd1498Szrj
198438fd1498Szrjstd=c9x
198538fd1498SzrjC ObjC Alias(std=c99)
198638fd1498SzrjDeprecated in favor of -std=c99.
198738fd1498Szrj
198838fd1498Szrjstd=gnu++98
198938fd1498SzrjC++ ObjC++
199038fd1498SzrjConform to the ISO 1998 C++ standard revised by the 2003 technical
199138fd1498Szrjcorrigendum with GNU extensions.
199238fd1498Szrj
199338fd1498Szrjstd=gnu++03
199438fd1498SzrjC++ ObjC++ Alias(std=gnu++98)
199538fd1498SzrjConform to the ISO 1998 C++ standard revised by the 2003 technical
199638fd1498Szrjcorrigendum with GNU extensions.
199738fd1498Szrj
199838fd1498Szrjstd=gnu++11
199938fd1498SzrjC++ ObjC++
200038fd1498SzrjConform to the ISO 2011 C++ standard with GNU extensions.
200138fd1498Szrj
200238fd1498Szrjstd=gnu++0x
200338fd1498SzrjC++ ObjC++ Alias(std=gnu++11) Undocumented
200438fd1498SzrjDeprecated in favor of -std=gnu++11.
200538fd1498Szrj
200638fd1498Szrjstd=gnu++1y
200738fd1498SzrjC++ ObjC++ Alias(std=gnu++14) Undocumented
200838fd1498SzrjDeprecated in favor of -std=gnu++14.
200938fd1498Szrj
201038fd1498Szrjstd=gnu++14
201138fd1498SzrjC++ ObjC++
201238fd1498SzrjConform to the ISO 2014 C++ standard with GNU extensions.
201338fd1498Szrj
201438fd1498Szrjstd=gnu++1z
201538fd1498SzrjC++ ObjC++ Alias(std=gnu++17) Undocumented
201638fd1498SzrjDeprecated in favor of -std=gnu++17.
201738fd1498Szrj
201838fd1498Szrjstd=gnu++17
201938fd1498SzrjC++ ObjC++
202038fd1498SzrjConform to the ISO 2017 C++ standard with GNU extensions.
202138fd1498Szrj
202238fd1498Szrjstd=gnu++2a
202338fd1498SzrjC++ ObjC++
202438fd1498SzrjConform to the ISO 2020(?) C++ draft standard with GNU extensions (experimental and incomplete support).
202538fd1498Szrj
202638fd1498Szrjstd=gnu11
202738fd1498SzrjC ObjC
202838fd1498SzrjConform to the ISO 2011 C standard with GNU extensions.
202938fd1498Szrj
203038fd1498Szrjstd=gnu1x
203138fd1498SzrjC ObjC Alias(std=gnu11)
203238fd1498SzrjDeprecated in favor of -std=gnu11.
203338fd1498Szrj
203438fd1498Szrjstd=gnu17
203538fd1498SzrjC ObjC
203638fd1498SzrjConform to the ISO 2017 C standard (expected to be published in 2018) with GNU extensions.
203738fd1498Szrj
203838fd1498Szrjstd=gnu18
203938fd1498SzrjC ObjC Alias(std=gnu17)
204038fd1498SzrjConform to the ISO 2017 C standard (expected to be published in 2018) with GNU extensions.
204138fd1498Szrj
204238fd1498Szrjstd=gnu89
204338fd1498SzrjC ObjC Alias(std=gnu90)
204438fd1498SzrjConform to the ISO 1990 C standard with GNU extensions.
204538fd1498Szrj
204638fd1498Szrjstd=gnu90
204738fd1498SzrjC ObjC
204838fd1498SzrjConform to the ISO 1990 C standard with GNU extensions.
204938fd1498Szrj
205038fd1498Szrjstd=gnu99
205138fd1498SzrjC ObjC
205238fd1498SzrjConform to the ISO 1999 C standard with GNU extensions.
205338fd1498Szrj
205438fd1498Szrjstd=gnu9x
205538fd1498SzrjC ObjC Alias(std=gnu99)
205638fd1498SzrjDeprecated in favor of -std=gnu99.
205738fd1498Szrj
205838fd1498Szrjstd=iso9899:1990
205938fd1498SzrjC ObjC Alias(std=c90)
206038fd1498SzrjConform to the ISO 1990 C standard.
206138fd1498Szrj
206238fd1498Szrjstd=iso9899:199409
206338fd1498SzrjC ObjC
206438fd1498SzrjConform to the ISO 1990 C standard as amended in 1994.
206538fd1498Szrj
206638fd1498Szrjstd=iso9899:1999
206738fd1498SzrjC ObjC Alias(std=c99)
206838fd1498SzrjConform to the ISO 1999 C standard.
206938fd1498Szrj
207038fd1498Szrjstd=iso9899:199x
207138fd1498SzrjC ObjC Alias(std=c99)
207238fd1498SzrjDeprecated in favor of -std=iso9899:1999.
207338fd1498Szrj
207438fd1498Szrjstd=iso9899:2011
207538fd1498SzrjC ObjC Alias(std=c11)
207638fd1498SzrjConform to the ISO 2011 C standard.
207738fd1498Szrj
207838fd1498Szrjstd=iso9899:2017
207938fd1498SzrjC ObjC Alias(std=c17)
208038fd1498SzrjConform to the ISO 2017 C standard (expected to be published in 2018).
208138fd1498Szrj
208238fd1498Szrjstd=iso9899:2018
208338fd1498SzrjC ObjC Alias(std=c17)
208438fd1498SzrjConform to the ISO 2017 C standard (expected to be published in 2018).
208538fd1498Szrj
208638fd1498Szrjtraditional
208738fd1498SzrjDriver
208838fd1498Szrj
208938fd1498Szrjtraditional-cpp
209038fd1498SzrjC ObjC C++ ObjC++
209138fd1498SzrjEnable traditional preprocessing.
209238fd1498Szrj
209338fd1498Szrjtrigraphs
209438fd1498SzrjC ObjC C++ ObjC++
209538fd1498Szrj-trigraphs	Support ISO C trigraphs.
209638fd1498Szrj
209738fd1498Szrjundef
209838fd1498SzrjC ObjC C++ ObjC++ Var(flag_undef)
209938fd1498SzrjDo not predefine system-specific and GCC-specific macros.
210038fd1498Szrj
210138fd1498Szrjv
210238fd1498SzrjC ObjC C++ ObjC++
210338fd1498Szrj; Documented in common.opt
210438fd1498Szrj
210538fd1498Szrjw
210638fd1498SzrjC ObjC C++ ObjC++
210738fd1498Szrj; Documented in common.opt
210838fd1498Szrj
210938fd1498Szrj; This comment is to ensure we retain the blank line above.
2110