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$
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
283261178Spfg; APPLE LOCAL begin warn missing prototype 6261539
284132718SkanWmissing-prototypes
285261178SpfgC ObjC C++ ObjC++ Var(warn_missing_prototypes)
286132718SkanWarn about global functions without prototypes
287261178Spfg; APPLE LOCAL end warn missing prototype 6261539
288132718Skan
289259920Spfg; APPLE LOCAL begin -Wmost
290259920SpfgWmost
291259920SpfgC ObjC C++ ObjC++ 
292259920SpfgLike -Wall but without -Wparentheses
293259920Spfg; APPLE LOCAL end -Wmost
294259920Spfg
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
303259555Spfg; APPLE LOCAL begin -Wnewline-eof
304259555SpfgWnewline-eof
305259555SpfgC ObjC C++ ObjC++
306259555SpfgWarn about files missing a newline at the end of the file
307259555Spfg; APPLE LOCAL end -Wnewline-eof
308259555Spfg
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
449258204SpfgWvla
450258204SpfgC ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
451258204SpfgWarn if a variable length array is used
452258204Spfg
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
511258501Spfgfdirectives-only
512258501SpfgC ObjC C++ ObjC++
513258501SpfgPreprocess directives only.
514258501Spfg
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
601259005Spfgflax-vector-conversions
602259005SpfgC ObjC C++ ObjC++
603259005SpfgAllow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
604259005Spfg
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
615260311Spfg; APPLE LOCAL begin nested functions 4258406 4357979
616260311Spfgfnested-functions
617260311SpfgC ObjC Var(flag_nested_functions)
618260311SpfgAllow nested functions.
619260311Spfg; APPLE LOCAL end nested functions 4258406 4357979
620260311Spfg
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
655260311Spfg; APPLE LOCAL begin radar 5811887 - blocks
656260311Spfgfblocks
657260311SpfgC ObjC C++ ObjC++ Var(flag_blocks) Init(-1)
658260311SpfgProgram supports c/objc extension blocks
659260311Spfg; APPLE LOCAL end radar 5811887 - blocks
660260311Spfg
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
770259092Spfgfvisibility-ms-compat
771259092SpfgC++ ObjC++ Var(flag_visibility_ms_compat)
772259092SpfgChanges visibility to match Microsoft Visual Studio by default
773259092Spfg
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
806258206Spfgfemit-struct-debug-baseonly
807258206SpfgC ObjC C++ ObjC++
808258206Spfg-femit-struct-debug-baseonly	Aggressive reduced debug info for structs
809258206Spfg
810258206Spfgfemit-struct-debug-reduced
811258206SpfgC ObjC C++ ObjC++
812258206Spfg-femit-struct-debug-reduced	Conservative reduced debug info for structs
813258206Spfg
814258206Spfgfemit-struct-debug-detailed=
815258206SpfgC ObjC C++ ObjC++ Joined
816258206Spfg-femit-struct-debug-detailed=<spec-list>	Detailed reduced debug info for structs
817258206Spfg
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