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