1132718Skan; Options for the C, ObjC, C++ and ObjC++ front ends. 2169699Skan; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. 3132718Skan; 4132718Skan; This file is part of GCC. 5132718Skan; 6132718Skan; GCC is free software; you can redistribute it and/or modify it under 7132718Skan; the terms of the GNU General Public License as published by the Free 8132718Skan; Software Foundation; either version 2, or (at your option) any later 9132718Skan; version. 10169699Skan; 11132718Skan; GCC is distributed in the hope that it will be useful, but WITHOUT ANY 12132718Skan; WARRANTY; without even the implied warranty of MERCHANTABILITY or 13132718Skan; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14132718Skan; for more details. 15169699Skan; 16132718Skan; You should have received a copy of the GNU General Public License 17132718Skan; along with GCC; see the file COPYING. If not, write to the Free 18169699Skan; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 19169699Skan; 02110-1301, USA. 20132718Skan 21169699Skan; See the GCC internals manual for a description of this file's format. 22132718Skan 23169699Skan; $FreeBSD: releng/10.3/contrib/gcc/c.opt 261306 2014-01-31 03:30:09Z pfg $ 24132718Skan; Please try to keep this file in ASCII collating order. 25132718Skan 26132718SkanLanguage 27132718SkanC 28132718Skan 29132718SkanLanguage 30132718SkanObjC 31132718Skan 32132718SkanLanguage 33132718SkanC++ 34132718Skan 35132718SkanLanguage 36132718SkanObjC++ 37132718Skan 38132718Skan-output-pch= 39132718SkanC ObjC C++ ObjC++ Joined Separate 40132718Skan 41132718SkanA 42132718SkanC ObjC C++ ObjC++ Joined Separate 43132718Skan-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question> 44132718Skan 45132718SkanC 46132718SkanC ObjC C++ ObjC++ 47132718SkanDo not discard comments 48132718Skan 49132718SkanCC 50132718SkanC ObjC C++ ObjC++ 51132718SkanDo not discard comments in macro expansions 52132718Skan 53132718SkanD 54132718SkanC ObjC C++ ObjC++ Joined Separate 55132718Skan-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1 56132718Skan 57132718SkanE 58132718SkanC ObjC C++ ObjC++ Undocumented 59132718Skan 60169699SkanF 61169699SkanC ObjC C++ ObjC++ Joined Separate 62169699Skan-F <dir> Add <dir> to the end of the main framework include path 63169699Skan 64132718SkanH 65132718SkanC ObjC C++ ObjC++ 66132718SkanPrint the name of header files as they are used 67132718Skan 68132718SkanI 69132718SkanC ObjC C++ ObjC++ Joined Separate 70169699Skan-I <dir> Add <dir> to the end of the main include path 71132718Skan 72132718SkanM 73132718SkanC ObjC C++ ObjC++ 74132718SkanGenerate make dependencies 75132718Skan 76132718SkanMD 77132718SkanC ObjC C++ ObjC++ Separate 78132718SkanGenerate make dependencies and compile 79132718Skan 80132718SkanMF 81132718SkanC ObjC C++ ObjC++ Joined Separate 82132718Skan-MF <file> Write dependency output to the given file 83132718Skan 84132718SkanMG 85132718SkanC ObjC C++ ObjC++ 86132718SkanTreat missing header files as generated files 87132718Skan 88132718SkanMM 89132718SkanC ObjC C++ ObjC++ 90132718SkanLike -M but ignore system header files 91132718Skan 92132718SkanMMD 93132718SkanC ObjC C++ ObjC++ Separate 94132718SkanLike -MD but ignore system header files 95132718Skan 96132718SkanMP 97132718SkanC ObjC C++ ObjC++ 98132718SkanGenerate phony targets for all headers 99132718Skan 100132718SkanMQ 101132718SkanC ObjC C++ ObjC++ Joined Separate 102132718Skan-MQ <target> Add a MAKE-quoted target 103132718Skan 104132718SkanMT 105132718SkanC ObjC C++ ObjC++ Joined Separate 106132718Skan-MT <target> Add an unquoted target 107132718Skan 108132718SkanP 109132718SkanC ObjC C++ ObjC++ 110132718SkanDo not generate #line directives 111132718Skan 112132718SkanU 113132718SkanC ObjC C++ ObjC++ Joined Separate 114132718Skan-U<macro> Undefine <macro> 115132718Skan 116132718SkanWabi 117169699SkanC++ ObjC++ Var(warn_abi) 118169699SkanWarn about things that will change when compiling with an ABI-compliant compiler 119132718Skan 120169699SkanWaddress 121169699SkanC ObjC C++ ObjC++ Var(warn_address) 122169699SkanWarn about suspicious uses of memory addresses 123169699Skan 124132718SkanWall 125132718SkanC ObjC C++ ObjC++ 126132718SkanEnable most warning messages 127132718Skan 128169699SkanWassign-intercept 129169699SkanObjC ObjC++ Var(warn_assign_intercept) 130169699SkanWarn whenever an Objective-C assignment is being intercepted by the garbage collector 131169699Skan 132132718SkanWbad-function-cast 133169699SkanC ObjC Var(warn_bad_function_cast) 134132718SkanWarn about casting functions to incompatible types 135132718Skan 136169699SkanWc++-compat 137169699SkanC ObjC Var(warn_cxx_compat) 138169699SkanWarn about C constructs that are not in the common subset of C and C++ 139169699Skan 140169699Skan 141132718SkanWcast-qual 142169699SkanC ObjC C++ ObjC++ Var(warn_cast_qual) 143132718SkanWarn about casts which discard qualifiers 144132718Skan 145132718SkanWchar-subscripts 146169699SkanC ObjC C++ ObjC++ Var(warn_char_subscripts) 147132718SkanWarn about subscripts whose type is \"char\" 148132718Skan 149132718SkanWcomment 150132718SkanC ObjC C++ ObjC++ 151132718SkanWarn about possibly nested block comments, and C++ comments spanning more than one physical line 152132718Skan 153132718SkanWcomments 154132718SkanC ObjC C++ ObjC++ 155132718SkanSynonym for -Wcomment 156132718Skan 157132718SkanWconversion 158169699SkanC ObjC C++ ObjC++ Var(warn_conversion) 159132718SkanWarn about possibly confusing type conversions 160132718Skan 161132718SkanWctor-dtor-privacy 162169699SkanC++ ObjC++ Var(warn_ctor_dtor_privacy) 163132718SkanWarn when all constructors and destructors are private 164132718Skan 165132718SkanWdeclaration-after-statement 166169699SkanC ObjC Var(warn_declaration_after_statement) 167132718SkanWarn when a declaration is found after a statement 168132718Skan 169132718SkanWdeprecated 170169699SkanC++ ObjC++ Var(warn_deprecated) Init(1) 171132718SkanWarn about deprecated compiler features 172132718Skan 173132718SkanWdiv-by-zero 174169699SkanC ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) 175132718SkanWarn about compile-time integer division by zero 176132718Skan 177132718SkanWeffc++ 178169699SkanC++ ObjC++ Var(warn_ecpp) 179132718SkanWarn about violations of Effective C++ style rules 180132718Skan 181132718SkanWendif-labels 182132718SkanC ObjC C++ ObjC++ 183132718SkanWarn about stray tokens after #elif and #endif 184132718Skan 185132718SkanWerror 186132718SkanC ObjC C++ ObjC++ 187132718Skan; Documented in common.opt 188132718Skan 189132718SkanWerror-implicit-function-declaration 190132718SkanC ObjC RejectNegative 191132718SkanMake implicit function declarations an error 192132718Skan 193132718SkanWfloat-equal 194169699SkanC ObjC C++ ObjC++ Var(warn_float_equal) 195132718SkanWarn if testing floating point numbers for equality 196132718Skan 197132718SkanWformat 198132718SkanC ObjC C++ ObjC++ 199132718SkanWarn about printf/scanf/strftime/strfmon format string anomalies 200132718Skan 201132718SkanWformat-extra-args 202169699SkanC ObjC C++ ObjC++ Var(warn_format_extra_args) 203132718SkanWarn if passing too many arguments to a function for its format string 204132718Skan 205132718SkanWformat-nonliteral 206169699SkanC ObjC C++ ObjC++ Var(warn_format_nonliteral) 207132718SkanWarn about format strings that are not literals 208132718Skan 209132718SkanWformat-security 210169699SkanC ObjC C++ ObjC++ Var(warn_format_security) 211132718SkanWarn about possible security problems with format functions 212132718Skan 213132718SkanWformat-y2k 214169699SkanC ObjC C++ ObjC++ Var(warn_format_y2k) 215132718SkanWarn about strftime formats yielding 2-digit years 216132718Skan 217132718SkanWformat-zero-length 218169699SkanC ObjC Var(warn_format_zero_length) 219169699SkanWarn about zero-length formats 220132718Skan 221132718SkanWformat= 222132718SkanC ObjC C++ ObjC++ Joined 223132718Skan 224132718SkanWinit-self 225169699SkanC ObjC C++ ObjC++ Var(warn_init_self) 226169699SkanWarn about variables which are initialized to themselves 227132718Skan 228132718SkanWimplicit 229132718SkanC ObjC C++ ObjC++ 230132718Skan 231132718SkanWimplicit-function-declaration 232169699SkanC ObjC Var(mesg_implicit_function_declaration) Init(-1) 233132718SkanWarn about implicit function declarations 234132718Skan 235132718SkanWimplicit-int 236169699SkanC ObjC Var(warn_implicit_int) 237132718SkanWarn when a declaration does not specify a type 238132718Skan 239132718SkanWimport 240132718SkanC ObjC C++ ObjC++ 241169699SkanDeprecated. This switch has no effect 242132718Skan 243169699SkanWint-to-pointer-cast 244169699SkanC ObjC Var(warn_int_to_pointer_cast) Init(1) 245169699SkanWarn when there is a cast to a pointer from an integer of a different size 246169699Skan 247132718SkanWinvalid-offsetof 248169699SkanC++ ObjC++ Var(warn_invalid_offsetof) Init(1) 249132718SkanWarn about invalid uses of the \"offsetof\" macro 250132718Skan 251132718SkanWinvalid-pch 252132718SkanC ObjC C++ ObjC++ 253132718SkanWarn about PCH files that are found but not used 254132718Skan 255132718SkanWlong-long 256169699SkanC ObjC C++ ObjC++ Var(warn_long_long) Init(1) 257132718SkanDo not warn about using \"long long\" when -pedantic 258132718Skan 259132718SkanWmain 260132718SkanC ObjC 261132718SkanWarn about suspicious declarations of \"main\" 262132718Skan 263132718SkanWmissing-braces 264169699SkanC ObjC C++ ObjC++ Var(warn_missing_braces) 265132718SkanWarn about possibly missing braces around initializers 266132718Skan 267132718SkanWmissing-declarations 268169699SkanC ObjC Var(warn_missing_declarations) 269132718SkanWarn about global functions without previous declarations 270132718Skan 271169699SkanWmissing-field-initializers 272169699SkanC ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1) 273169699SkanWarn about missing fields in struct initializers 274169699Skan 275132718SkanWmissing-format-attribute 276169699SkanC ObjC C++ ObjC++ Var(warn_missing_format_attribute) 277132718SkanWarn about functions which might be candidates for format attributes 278132718Skan 279169699SkanWmissing-include-dirs 280169699SkanC ObjC C++ ObjC++ 281169699SkanWarn about user-specified include directories that do not exist 282169699Skan 283261306Spfg; APPLE LOCAL begin warn missing prototype 6261539 284132718SkanWmissing-prototypes 285261306SpfgC ObjC C++ ObjC++ Var(warn_missing_prototypes) 286132718SkanWarn about global functions without prototypes 287261306Spfg; APPLE LOCAL end warn missing prototype 6261539 288132718Skan 289260568Spfg; APPLE LOCAL begin -Wmost 290260568SpfgWmost 291260568SpfgC ObjC C++ ObjC++ 292260568SpfgLike -Wall but without -Wparentheses 293260568Spfg; APPLE LOCAL end -Wmost 294260568Spfg 295132718SkanWmultichar 296132718SkanC ObjC C++ ObjC++ 297132718SkanWarn about use of multi-character character constants 298132718Skan 299132718SkanWnested-externs 300169699SkanC ObjC Var(warn_nested_externs) 301132718SkanWarn about \"extern\" declarations not at file scope 302132718Skan 303259890Spfg; APPLE LOCAL begin -Wnewline-eof 304259890SpfgWnewline-eof 305259890SpfgC ObjC C++ ObjC++ 306259890SpfgWarn about files missing a newline at the end of the file 307259890Spfg; APPLE LOCAL end -Wnewline-eof 308259890Spfg 309132718SkanWnon-template-friend 310169699SkanC++ ObjC++ Var(warn_nontemplate_friend) Init(1) 311132718SkanWarn when non-templatized friend functions are declared within a template 312132718Skan 313132718SkanWnon-virtual-dtor 314169699SkanC++ ObjC++ Var(warn_nonvdtor) 315132718SkanWarn about non-virtual destructors 316132718Skan 317132718SkanWnonnull 318169699SkanC ObjC Var(warn_nonnull) 319169699SkanWarn about NULL being passed to argument slots marked as requiring non-NULL 320132718Skan 321169699SkanWnormalized= 322169699SkanC ObjC C++ ObjC++ Joined 323169699Skan-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode strings 324169699Skan 325132718SkanWold-style-cast 326169699SkanC++ ObjC++ Var(warn_old_style_cast) 327132718SkanWarn if a C-style cast is used in a program 328132718Skan 329132718SkanWold-style-definition 330169699SkanC ObjC Var(warn_old_style_definition) 331132718SkanWarn if an old-style parameter definition is used 332132718Skan 333169699SkanWoverlength-strings 334169699SkanC ObjC C++ ObjC++ Var(warn_overlength_strings) Init(-1) 335169699SkanWarn if a string is longer than the maximum portable length specified by the standard 336169699Skan 337132718SkanWoverloaded-virtual 338169699SkanC++ ObjC++ Var(warn_overloaded_virtual) 339132718SkanWarn about overloaded virtual function names 340132718Skan 341169699SkanWoverride-init 342169699SkanC ObjC Var(warn_override_init) Init(-1) 343169699SkanWarn about overriding initializers without side effects 344169699Skan 345132718SkanWparentheses 346169699SkanC ObjC C++ ObjC++ Var(warn_parentheses) 347132718SkanWarn about possibly missing parentheses 348132718Skan 349132718SkanWpmf-conversions 350169699SkanC++ ObjC++ Var(warn_pmf2ptr) Init(1) 351132718SkanWarn when converting the type of pointers to member functions 352132718Skan 353132718SkanWpointer-arith 354169699SkanC ObjC C++ ObjC++ Var(warn_pointer_arith) 355132718SkanWarn about function pointer arithmetic 356132718Skan 357169699SkanWpointer-to-int-cast 358169699SkanC ObjC Var(warn_pointer_to_int_cast) Init(1) 359169699SkanWarn when a pointer is cast to an integer of a different size 360169699Skan 361169699SkanWpragmas 362169699SkanC ObjC C++ ObjC++ Var(warn_pragmas) Init(1) 363169699SkanWarn about misuses of pragmas 364169699Skan 365132718SkanWprotocol 366169699SkanObjC ObjC++ Var(warn_protocol) Init(1) 367132718SkanWarn if inherited methods are unimplemented 368132718Skan 369132718SkanWredundant-decls 370169699SkanC ObjC C++ ObjC++ Var(warn_redundant_decls) 371132718SkanWarn about multiple declarations of the same object 372132718Skan 373132718SkanWreorder 374169699SkanC++ ObjC++ Var(warn_reorder) 375132718SkanWarn when the compiler reorders code 376132718Skan 377132718SkanWreturn-type 378169699SkanC ObjC C++ ObjC++ Var(warn_return_type) 379132718SkanWarn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++) 380132718Skan 381132718SkanWselector 382169699SkanObjC ObjC++ Var(warn_selector) 383132718SkanWarn if a selector has multiple methods 384132718Skan 385132718SkanWsequence-point 386169699SkanC ObjC C++ ObjC++ Var(warn_sequence_point) 387132718SkanWarn about possible violations of sequence point rules 388132718Skan 389132718SkanWsign-compare 390169699SkanC ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1) 391132718SkanWarn about signed-unsigned comparisons 392132718Skan 393132718SkanWsign-promo 394169699SkanC++ ObjC++ Var(warn_sign_promo) 395132718SkanWarn when overload promotes from unsigned to signed 396132718Skan 397169699SkanWstrict-null-sentinel 398169699SkanC++ ObjC++ 399169699SkanWarn about uncasted NULL used as sentinel 400169699Skan 401132718SkanWstrict-prototypes 402169699SkanC ObjC Var(warn_strict_prototypes) 403132718SkanWarn about unprototyped function declarations 404132718Skan 405169699SkanWstrict-selector-match 406169699SkanObjC ObjC++ Var(warn_strict_selector_match) 407169699SkanWarn if type signatures of candidate methods do not match exactly 408169699Skan 409132718SkanWsynth 410169699SkanC++ ObjC++ Var(warn_synth) 411132718SkanWarn when synthesis behavior differs from Cfront 412132718Skan 413132718SkanWsystem-headers 414132718SkanC ObjC C++ ObjC++ 415132718SkanDo not suppress warnings from system headers 416132718Skan 417132718SkanWtraditional 418169699SkanC ObjC Var(warn_traditional) 419132718SkanWarn about features not present in traditional C 420132718Skan 421223715SuqsWtrampolines 422223715SuqsCommon Var(warn_trampolines) 423223715SuqsWarn when trampolines are emitted 424223715Suqs 425132718SkanWtrigraphs 426132718SkanC ObjC C++ ObjC++ 427132718SkanWarn if trigraphs are encountered that might affect the meaning of the program 428132718Skan 429132718SkanWundeclared-selector 430169699SkanObjC ObjC++ Var(warn_undeclared_selector) 431169699SkanWarn about @selector()s without previously declared methods 432132718Skan 433132718SkanWundef 434132718SkanC ObjC C++ ObjC++ 435132718SkanWarn if an undefined macro is used in an #if directive 436132718Skan 437132718SkanWunknown-pragmas 438132718SkanC ObjC C++ ObjC++ 439132718SkanWarn about unrecognized pragmas 440132718Skan 441132718SkanWunused-macros 442132718SkanC ObjC C++ ObjC++ 443132718SkanWarn about macros defined in the main file that are not used 444132718Skan 445169699SkanWvariadic-macros 446132718SkanC ObjC C++ ObjC++ 447169699SkanDo not warn about using variadic macros when -pedantic 448132718Skan 449259268SpfgWvla 450259268SpfgC ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning 451259268SpfgWarn if a variable length array is used 452259268Spfg 453169699SkanWwrite-strings 454169699SkanC ObjC C++ ObjC++ Var(warn_write_strings) 455169699SkanIn 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. 456169699Skan 457169699SkanWpointer-sign 458169699SkanC ObjC Var(warn_pointer_sign) Init(-1) 459169699SkanWarn when a pointer differs in signedness in an assignment 460169699Skan 461132718Skanansi 462132718SkanC ObjC C++ ObjC++ 463169699SkanA synonym for -std=c89 (for C) or -std=c++98 (for C++) 464132718Skan 465132718Skand 466132718SkanC ObjC C++ ObjC++ Joined 467132718Skan; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD? 468132718Skan 469132718Skanfaccess-control 470132718SkanC++ ObjC++ 471132718SkanEnforce class member access control semantics 472132718Skan 473132718Skanfall-virtual 474132718SkanC++ ObjC++ 475132718Skan 476132718Skanfalt-external-templates 477132718SkanC++ ObjC++ 478132718SkanChange when template instances are emitted 479132718Skan 480132718Skanfasm 481132718SkanC ObjC C++ ObjC++ 482132718SkanRecognize the \"asm\" keyword 483132718Skan 484132718Skanfbuiltin 485132718SkanC ObjC C++ ObjC++ 486132718SkanRecognize built-in functions 487132718Skan 488132718Skanfbuiltin- 489132718SkanC ObjC C++ ObjC++ Joined 490132718Skan 491132718Skanfcheck-new 492132718SkanC++ ObjC++ 493132718SkanCheck the return value of new 494132718Skan 495132718Skanfcond-mismatch 496132718SkanC ObjC C++ ObjC++ 497132718SkanAllow the arguments of the '?' operator to have different types 498132718Skan 499132718Skanfconserve-space 500132718SkanC++ ObjC++ 501132718SkanReduce the size of object files 502132718Skan 503132718Skanfconstant-string-class= 504132718SkanObjC ObjC++ Joined 505132718Skan-fconst-string-class=<name> Use class <name> for constant strings 506132718Skan 507132718Skanfdefault-inline 508132718SkanC++ ObjC++ 509132718SkanInline member functions by default 510132718Skan 511259405Spfgfdirectives-only 512259405SpfgC ObjC C++ ObjC++ 513259405SpfgPreprocess directives only. 514259405Spfg 515132718Skanfdollars-in-identifiers 516132718SkanC ObjC C++ ObjC++ 517132718SkanPermit '$' as an identifier character 518132718Skan 519132718Skanfelide-constructors 520132718SkanC++ ObjC++ 521132718Skan 522132718Skanfenforce-eh-specs 523132718SkanC++ ObjC++ 524132718SkanGenerate code to check exception specifications 525132718Skan 526132718Skanfenum-int-equiv 527132718SkanC++ ObjC++ 528132718Skan 529132718Skanfexec-charset= 530132718SkanC ObjC C++ ObjC++ Joined RejectNegative 531132718Skan-fexec-charset=<cset> Convert all strings and character constants to character set <cset> 532132718Skan 533169699Skanfextended-identifiers 534169699SkanC ObjC C++ ObjC++ 535169699SkanPermit universal character names (\\u and \\U) in identifiers 536169699Skan 537132718Skanfinput-charset= 538132718SkanC ObjC C++ ObjC++ Joined RejectNegative 539169699Skan-finput-charset=<cset> Specify the default character set for source files 540132718Skan 541132718Skan 542132718Skanfexternal-templates 543132718SkanC++ ObjC++ 544132718Skan 545132718Skanffor-scope 546132718SkanC++ ObjC++ 547132718SkanScope of for-init-statement variables is local to the loop 548132718Skan 549132718Skanffreestanding 550132718SkanC ObjC 551132718SkanDo not assume that standard C libraries and \"main\" exist 552132718Skan 553132718Skanfgnu-keywords 554132718SkanC++ ObjC++ 555132718SkanRecognize GNU-defined keywords 556132718Skan 557132718Skanfgnu-runtime 558132718SkanObjC ObjC++ 559132718SkanGenerate code for GNU runtime environment 560132718Skan 561169699Skanfgnu89-inline 562169699SkanC ObjC Var(flag_gnu89_inline) Init(-1) 563169699SkanUse traditional GNU semantics for inline functions 564169699Skan 565132718Skanfguiding-decls 566132718SkanC++ ObjC++ 567132718Skan 568132718Skanfhandle-exceptions 569132718SkanC++ ObjC++ 570132718Skan 571132718Skanfhonor-std 572132718SkanC++ ObjC++ 573132718Skan 574132718Skanfhosted 575132718SkanC ObjC 576132718SkanAssume normal C execution environment 577132718Skan 578132718Skanfhuge-objects 579132718SkanC++ ObjC++ 580132718SkanEnable support for huge objects 581132718Skan 582132718Skanfimplement-inlines 583132718SkanC++ ObjC++ 584132718SkanExport functions even if they can be inlined 585132718Skan 586132718Skanfimplicit-inline-templates 587132718SkanC++ ObjC++ 588132718SkanEmit implicit instantiations of inline templates 589132718Skan 590132718Skanfimplicit-templates 591132718SkanC++ ObjC++ 592132718SkanEmit implicit instantiations of templates 593132718Skan 594169699Skanffriend-injection 595169699SkanC++ ObjC++ Var(flag_friend_injection) 596169699SkanInject friend functions into enclosing namespace 597169699Skan 598132718Skanflabels-ok 599132718SkanC++ ObjC++ 600132718Skan 601260074Spfgflax-vector-conversions 602260074SpfgC ObjC C++ ObjC++ 603260074SpfgAllow implicit conversions between vectors with differing numbers of subparts and/or differing element types. 604260074Spfg 605132718Skanfms-extensions 606132718SkanC ObjC C++ ObjC++ 607132718SkanDon't warn about uses of Microsoft extensions 608132718Skan 609132718Skanfname-mangling-version- 610132718SkanC++ ObjC++ Joined 611132718Skan 612132718Skanfnew-abi 613132718SkanC++ ObjC++ 614132718Skan 615261188Spfg; APPLE LOCAL begin nested functions 4258406 4357979 616261188Spfgfnested-functions 617261188SpfgC ObjC Var(flag_nested_functions) 618261188SpfgAllow nested functions. 619261188Spfg; APPLE LOCAL end nested functions 4258406 4357979 620261188Spfg 621132718Skanfnext-runtime 622132718SkanObjC ObjC++ 623132718SkanGenerate code for NeXT (Apple Mac OS X) runtime environment 624132718Skan 625132718Skanfnil-receivers 626132718SkanObjC ObjC++ 627132718SkanAssume that receivers of Objective-C messages may be nil 628132718Skan 629132718Skanfnonansi-builtins 630132718SkanC++ ObjC++ 631132718Skan 632132718Skanfnonnull-objects 633132718SkanC++ ObjC++ 634132718Skan 635169699Skan; Generate special '- .cxx_construct' and '- .cxx_destruct' methods 636169699Skan; to initialize any non-POD ivars in Objective-C++ classes. 637169699Skanfobjc-call-cxx-cdtors 638169699SkanObjC++ Var(flag_objc_call_cxx_cdtors) 639169699SkanGenerate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed 640169699Skan 641169699Skanfobjc-direct-dispatch 642169699SkanObjC ObjC++ Var(flag_objc_direct_dispatch) 643169699SkanAllow fast jumps to the message dispatcher 644169699Skan 645169699Skan; Nonzero means that we will allow new ObjC exception syntax (@throw, 646169699Skan; @try, etc.) in source code. 647132718Skanfobjc-exceptions 648169699SkanObjC ObjC++ Var(flag_objc_exceptions) 649132718SkanEnable Objective-C exception and synchronization syntax 650132718Skan 651169699Skanfobjc-gc 652169699SkanObjC ObjC++ Var(flag_objc_gc) 653169699SkanEnable garbage collection (GC) in Objective-C/Objective-C++ programs 654169699Skan 655261188Spfg; APPLE LOCAL begin radar 5811887 - blocks 656261188Spfgfblocks 657261188SpfgC ObjC C++ ObjC++ Var(flag_blocks) Init(-1) 658261188SpfgProgram supports c/objc extension blocks 659261188Spfg; APPLE LOCAL end radar 5811887 - blocks 660261188Spfg 661169699Skan; Nonzero means that we generate NeXT setjmp based exceptions. 662169699Skanfobjc-sjlj-exceptions 663169699SkanObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1) 664169699SkanEnable Objective-C setjmp exception handling runtime 665169699Skan 666169699Skanfopenmp 667169699SkanC ObjC C++ ObjC++ Var(flag_openmp) 668169699SkanEnable OpenMP 669169699Skan 670132718Skanfoperator-names 671132718SkanC++ ObjC++ 672132718SkanRecognize C++ kewords like \"compl\" and \"xor\" 673132718Skan 674132718Skanfoptional-diags 675132718SkanC++ ObjC++ 676132718SkanEnable optional diagnostics 677132718Skan 678132718Skanfpch-deps 679132718SkanC ObjC C++ ObjC++ 680132718Skan 681169699Skanfpch-preprocess 682169699SkanC ObjC C++ ObjC++ 683169699SkanLook for and use PCH files even when preprocessing 684169699Skan 685132718Skanfpermissive 686132718SkanC++ ObjC++ 687132718SkanDowngrade conformance errors to warnings 688132718Skan 689132718Skanfpreprocessed 690132718SkanC ObjC C++ ObjC++ 691132718SkanTreat the input file as already preprocessed 692132718Skan 693132718Skanfreplace-objc-classes 694132718SkanObjC ObjC++ 695132718SkanUsed in Fix-and-Continue mode to indicate that object files may be swapped in at runtime 696132718Skan 697132718Skanfrepo 698132718SkanC++ ObjC++ 699132718SkanEnable automatic template instantiation 700132718Skan 701132718Skanfrtti 702132718SkanC++ ObjC++ 703132718SkanGenerate run time type descriptor information 704132718Skan 705132718Skanfshort-double 706132718SkanC ObjC C++ ObjC++ 707132718SkanUse the same size for double as for float 708132718Skan 709132718Skanfshort-enums 710132718SkanC ObjC C++ ObjC++ 711132718SkanUse the narrowest integer type possible for enumeration types 712132718Skan 713132718Skanfshort-wchar 714132718SkanC ObjC C++ ObjC++ 715132718SkanForce the underlying type for \"wchar_t\" to be \"unsigned short\" 716132718Skan 717132718Skanfsigned-bitfields 718132718SkanC ObjC C++ ObjC++ 719132718SkanWhen \"signed\" or \"unsigned\" is not given make the bitfield signed 720132718Skan 721132718Skanfsigned-char 722132718SkanC ObjC C++ ObjC++ 723132718SkanMake \"char\" signed by default 724132718Skan 725132718Skanfsquangle 726132718SkanC++ ObjC++ 727132718Skan 728132718Skanfstats 729132718SkanC++ ObjC++ 730132718SkanDisplay statistics accumulated during compilation 731132718Skan 732132718Skanfstrict-prototype 733132718SkanC++ ObjC++ 734132718Skan 735132718Skanftabstop= 736132718SkanC ObjC C++ ObjC++ Joined RejectNegative UInteger 737132718Skan-ftabstop=<number> Distance between tab stops for column reporting 738132718Skan 739132718Skanftemplate-depth- 740169699SkanC++ ObjC++ Joined RejectNegative UInteger 741132718Skan-ftemplate-depth-<number> Specify maximum template instantiation depth 742132718Skan 743132718Skanfthis-is-variable 744132718SkanC++ ObjC++ 745132718Skan 746169699Skanfthreadsafe-statics 747169699SkanC++ ObjC++ 748169699Skan-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics 749169699Skan 750132718Skanfunsigned-bitfields 751132718SkanC ObjC C++ ObjC++ 752132718SkanWhen \"signed\" or \"unsigned\" is not given make the bitfield unsigned 753132718Skan 754132718Skanfunsigned-char 755132718SkanC ObjC C++ ObjC++ 756132718SkanMake \"char\" unsigned by default 757132718Skan 758132718Skanfuse-cxa-atexit 759132718SkanC++ ObjC++ 760132718SkanUse __cxa_atexit to register destructors 761132718Skan 762169699Skanfuse-cxa-get-exception-ptr 763169699SkanC++ ObjC++ 764169699SkanUse __cxa_get_exception_ptr in exception handling 765169699Skan 766169699Skanfvisibility-inlines-hidden 767169699SkanC++ ObjC++ 768169699SkanMarks all inlined methods as having hidden visibility 769169699Skan 770260074Spfgfvisibility-ms-compat 771260074SpfgC++ ObjC++ Var(flag_visibility_ms_compat) 772260074SpfgChanges visibility to match Microsoft Visual Studio by default 773260074Spfg 774132718Skanfvtable-gc 775132718SkanC++ ObjC++ 776132718SkanDiscard unused virtual functions 777132718Skan 778132718Skanfvtable-thunks 779132718SkanC++ ObjC++ 780132718SkanImplement vtables using thunks 781132718Skan 782132718Skanfweak 783132718SkanC++ ObjC++ 784132718SkanEmit common-like symbols as weak symbols 785132718Skan 786132718Skanfwide-exec-charset= 787132718SkanC ObjC C++ ObjC++ Joined RejectNegative 788132718Skan-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset> 789132718Skan 790132718Skanfworking-directory 791132718SkanC ObjC C++ ObjC++ 792132718SkanGenerate a #line directive pointing at the current working directory 793132718Skan 794132718Skanfxref 795132718SkanC++ ObjC++ 796132718SkanEmit cross referencing information 797132718Skan 798132718Skanfzero-link 799132718SkanObjC ObjC++ 800132718SkanGenerate lazy class lookup (via objc_getClass()) for use in Zero-Link mode 801132718Skan 802132718Skangen-decls 803132718SkanObjC ObjC++ 804132718SkanDump declarations to a .decl file 805132718Skan 806259268Spfgfemit-struct-debug-baseonly 807259268SpfgC ObjC C++ ObjC++ 808259268Spfg-femit-struct-debug-baseonly Aggressive reduced debug info for structs 809259268Spfg 810259268Spfgfemit-struct-debug-reduced 811259268SpfgC ObjC C++ ObjC++ 812259268Spfg-femit-struct-debug-reduced Conservative reduced debug info for structs 813259268Spfg 814259268Spfgfemit-struct-debug-detailed= 815259268SpfgC ObjC C++ ObjC++ Joined 816259268Spfg-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs 817259268Spfg 818132718Skanidirafter 819132718SkanC ObjC C++ ObjC++ Joined Separate 820132718Skan-idirafter <dir> Add <dir> to the end of the system include path 821132718Skan 822132718Skanimacros 823132718SkanC ObjC C++ ObjC++ Joined Separate 824132718Skan-imacros <file> Accept definition of macros in <file> 825132718Skan 826169699Skanimultilib 827169699SkanC ObjC C++ ObjC++ Joined Separate 828169699Skan-imultilib <dir> Set <dir> to be the multilib include subdirectory 829169699Skan 830132718Skaninclude 831132718SkanC ObjC C++ ObjC++ Joined Separate 832132718Skan-include <file> Include the contents of <file> before other files 833132718Skan 834132718Skaniprefix 835132718SkanC ObjC C++ ObjC++ Joined Separate 836132718Skan-iprefix <path> Specify <path> as a prefix for next two options 837132718Skan 838132718Skanisysroot 839132718SkanC ObjC C++ ObjC++ Joined Separate 840132718Skan-isysroot <dir> Set <dir> to be the system root directory 841132718Skan 842132718Skanisystem 843132718SkanC ObjC C++ ObjC++ Joined Separate 844132718Skan-isystem <dir> Add <dir> to the start of the system include path 845132718Skan 846169699Skaniquote 847169699SkanC ObjC C++ ObjC++ Joined Separate 848169699Skan-iquote <dir> Add <dir> to the end of the quote include path 849169699Skan 850132718Skaniwithprefix 851132718SkanC ObjC C++ ObjC++ Joined Separate 852132718Skan-iwithprefix <dir> Add <dir> to the end of the system include path 853132718Skan 854132718Skaniwithprefixbefore 855132718SkanC ObjC C++ ObjC++ Joined Separate 856132718Skan-iwithprefixbefore <dir> Add <dir> to the end of the main include path 857132718Skan 858132718Skanlang-asm 859132718SkanC Undocumented 860132718Skan 861169699Skanlang-fortran 862169699SkanC Undocumented 863169699Skan 864132718Skanlang-objc 865132718SkanC ObjC C++ ObjC++ Undocumented 866132718Skan 867132718Skannostdinc 868132718SkanC ObjC C++ ObjC++ 869132718SkanDo not search standard system include directories (those specified with -isystem will still be used) 870132718Skan 871132718Skannostdinc++ 872132718SkanC++ ObjC++ 873132718SkanDo not search standard system include directories for C++ 874132718Skan 875132718Skano 876132718SkanC ObjC C++ ObjC++ Joined Separate 877132718Skan; Documented in common.opt 878132718Skan 879132718Skanpedantic 880132718SkanC ObjC C++ ObjC++ 881132718Skan; Documented in common.opt 882132718Skan 883132718Skanpedantic-errors 884132718SkanC ObjC C++ ObjC++ 885132718Skan; Documented in common.opt 886132718Skan 887132718Skanprint-objc-runtime-info 888132718SkanObjC ObjC++ 889132718SkanGenerate C header of platform-specific features 890132718Skan 891169699Skanprint-pch-checksum 892169699SkanC ObjC C++ ObjC++ 893169699SkanPrint a checksum of the executable for PCH validity checking, and stop 894169699Skan 895132718Skanremap 896132718SkanC ObjC C++ ObjC++ 897132718SkanRemap file names when including files 898132718Skan 899132718Skanstd=c++98 900132718SkanC++ ObjC++ 901132718SkanConform to the ISO 1998 C++ standard 902132718Skan 903132718Skanstd=c89 904132718SkanC ObjC 905132718SkanConform to the ISO 1990 C standard 906132718Skan 907132718Skanstd=c99 908132718SkanC ObjC 909132718SkanConform to the ISO 1999 C standard 910132718Skan 911132718Skanstd=c9x 912132718SkanC ObjC 913132718SkanDeprecated in favor of -std=c99 914132718Skan 915132718Skanstd=gnu++98 916132718SkanC++ ObjC++ 917132718SkanConform to the ISO 1998 C++ standard with GNU extensions 918132718Skan 919132718Skanstd=gnu89 920132718SkanC ObjC 921132718SkanConform to the ISO 1990 C standard with GNU extensions 922132718Skan 923132718Skanstd=gnu99 924132718SkanC ObjC 925132718SkanConform to the ISO 1999 C standard with GNU extensions 926132718Skan 927132718Skanstd=gnu9x 928132718SkanC ObjC 929132718SkanDeprecated in favor of -std=gnu99 930132718Skan 931132718Skanstd=iso9899:1990 932132718SkanC ObjC 933146908SkanConform to the ISO 1990 C standard 934132718Skan 935132718Skanstd=iso9899:199409 936132718SkanC ObjC 937132718SkanConform to the ISO 1990 C standard as amended in 1994 938132718Skan 939132718Skanstd=iso9899:1999 940132718SkanC ObjC 941146908SkanConform to the ISO 1999 C standard 942132718Skan 943132718Skanstd=iso9899:199x 944132718SkanC ObjC 945146908SkanDeprecated in favor of -std=iso9899:1999 946132718Skan 947132718Skantraditional-cpp 948132718SkanC ObjC C++ ObjC++ 949132718SkanEnable traditional preprocessing 950132718Skan 951132718Skantrigraphs 952132718SkanC ObjC C++ ObjC++ 953132718Skan-trigraphs Support ISO C trigraphs 954132718Skan 955132718Skanundef 956132718SkanC ObjC C++ ObjC++ 957132718SkanDo not predefine system-specific and GCC-specific macros 958132718Skan 959132718Skanv 960132718SkanC ObjC C++ ObjC++ 961132718SkanEnable verbose output 962132718Skan 963132718Skanw 964132718SkanC ObjC C++ ObjC++ 965132718Skan; Documented in common.opt 966132718Skan 967132718Skan; This comment is to ensure we retain the blank line above. 968