c.opt revision 260074
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: stable/10/contrib/gcc/c.opt 260074 2013-12-30 03:39:46Z 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
283132718SkanWmissing-prototypes
284169699SkanC ObjC Var(warn_missing_prototypes)
285132718SkanWarn about global functions without prototypes
286132718Skan
287132718SkanWmultichar
288132718SkanC ObjC C++ ObjC++
289132718SkanWarn about use of multi-character character constants
290132718Skan
291132718SkanWnested-externs
292169699SkanC ObjC Var(warn_nested_externs)
293132718SkanWarn about \"extern\" declarations not at file scope
294132718Skan
295259890Spfg; APPLE LOCAL begin -Wnewline-eof
296259890SpfgWnewline-eof
297259890SpfgC ObjC C++ ObjC++
298259890SpfgWarn about files missing a newline at the end of the file
299259890Spfg; APPLE LOCAL end -Wnewline-eof
300259890Spfg
301132718SkanWnon-template-friend
302169699SkanC++ ObjC++ Var(warn_nontemplate_friend) Init(1)
303132718SkanWarn when non-templatized friend functions are declared within a template
304132718Skan
305132718SkanWnon-virtual-dtor
306169699SkanC++ ObjC++ Var(warn_nonvdtor)
307132718SkanWarn about non-virtual destructors
308132718Skan
309132718SkanWnonnull
310169699SkanC ObjC Var(warn_nonnull)
311169699SkanWarn about NULL being passed to argument slots marked as requiring non-NULL
312132718Skan
313169699SkanWnormalized=
314169699SkanC ObjC C++ ObjC++ Joined
315169699Skan-Wnormalized=<id|nfc|nfkc>	Warn about non-normalised Unicode strings
316169699Skan
317132718SkanWold-style-cast
318169699SkanC++ ObjC++ Var(warn_old_style_cast)
319132718SkanWarn if a C-style cast is used in a program
320132718Skan
321132718SkanWold-style-definition
322169699SkanC ObjC Var(warn_old_style_definition)
323132718SkanWarn if an old-style parameter definition is used
324132718Skan
325169699SkanWoverlength-strings
326169699SkanC ObjC C++ ObjC++ Var(warn_overlength_strings) Init(-1)
327169699SkanWarn if a string is longer than the maximum portable length specified by the standard
328169699Skan
329132718SkanWoverloaded-virtual
330169699SkanC++ ObjC++ Var(warn_overloaded_virtual)
331132718SkanWarn about overloaded virtual function names
332132718Skan
333169699SkanWoverride-init
334169699SkanC ObjC Var(warn_override_init) Init(-1)
335169699SkanWarn about overriding initializers without side effects
336169699Skan
337132718SkanWparentheses
338169699SkanC ObjC C++ ObjC++ Var(warn_parentheses)
339132718SkanWarn about possibly missing parentheses
340132718Skan
341132718SkanWpmf-conversions
342169699SkanC++ ObjC++ Var(warn_pmf2ptr) Init(1)
343132718SkanWarn when converting the type of pointers to member functions
344132718Skan
345132718SkanWpointer-arith
346169699SkanC ObjC C++ ObjC++ Var(warn_pointer_arith)
347132718SkanWarn about function pointer arithmetic
348132718Skan
349169699SkanWpointer-to-int-cast
350169699SkanC ObjC Var(warn_pointer_to_int_cast) Init(1)
351169699SkanWarn when a pointer is cast to an integer of a different size
352169699Skan
353169699SkanWpragmas
354169699SkanC ObjC C++ ObjC++ Var(warn_pragmas) Init(1)
355169699SkanWarn about misuses of pragmas
356169699Skan
357132718SkanWprotocol
358169699SkanObjC ObjC++ Var(warn_protocol) Init(1)
359132718SkanWarn if inherited methods are unimplemented
360132718Skan
361132718SkanWredundant-decls
362169699SkanC ObjC C++ ObjC++ Var(warn_redundant_decls)
363132718SkanWarn about multiple declarations of the same object
364132718Skan
365132718SkanWreorder
366169699SkanC++ ObjC++ Var(warn_reorder)
367132718SkanWarn when the compiler reorders code
368132718Skan
369132718SkanWreturn-type
370169699SkanC ObjC C++ ObjC++ Var(warn_return_type)
371132718SkanWarn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
372132718Skan
373132718SkanWselector
374169699SkanObjC ObjC++ Var(warn_selector)
375132718SkanWarn if a selector has multiple methods
376132718Skan
377132718SkanWsequence-point
378169699SkanC ObjC C++ ObjC++ Var(warn_sequence_point)
379132718SkanWarn about possible violations of sequence point rules
380132718Skan
381132718SkanWsign-compare
382169699SkanC ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1)
383132718SkanWarn about signed-unsigned comparisons
384132718Skan
385132718SkanWsign-promo
386169699SkanC++ ObjC++ Var(warn_sign_promo)
387132718SkanWarn when overload promotes from unsigned to signed
388132718Skan
389169699SkanWstrict-null-sentinel
390169699SkanC++ ObjC++
391169699SkanWarn about uncasted NULL used as sentinel
392169699Skan
393132718SkanWstrict-prototypes
394169699SkanC ObjC Var(warn_strict_prototypes)
395132718SkanWarn about unprototyped function declarations
396132718Skan
397169699SkanWstrict-selector-match
398169699SkanObjC ObjC++ Var(warn_strict_selector_match)
399169699SkanWarn if type signatures of candidate methods do not match exactly
400169699Skan
401132718SkanWsynth
402169699SkanC++ ObjC++ Var(warn_synth)
403132718SkanWarn when synthesis behavior differs from Cfront
404132718Skan
405132718SkanWsystem-headers
406132718SkanC ObjC C++ ObjC++
407132718SkanDo not suppress warnings from system headers
408132718Skan
409132718SkanWtraditional
410169699SkanC ObjC Var(warn_traditional)
411132718SkanWarn about features not present in traditional C
412132718Skan
413223715SuqsWtrampolines
414223715SuqsCommon Var(warn_trampolines)
415223715SuqsWarn when trampolines are emitted
416223715Suqs
417132718SkanWtrigraphs
418132718SkanC ObjC C++ ObjC++
419132718SkanWarn if trigraphs are encountered that might affect the meaning of the program
420132718Skan
421132718SkanWundeclared-selector
422169699SkanObjC ObjC++ Var(warn_undeclared_selector)
423169699SkanWarn about @selector()s without previously declared methods
424132718Skan
425132718SkanWundef
426132718SkanC ObjC C++ ObjC++
427132718SkanWarn if an undefined macro is used in an #if directive
428132718Skan
429132718SkanWunknown-pragmas
430132718SkanC ObjC C++ ObjC++
431132718SkanWarn about unrecognized pragmas
432132718Skan
433132718SkanWunused-macros
434132718SkanC ObjC C++ ObjC++
435132718SkanWarn about macros defined in the main file that are not used
436132718Skan
437169699SkanWvariadic-macros
438132718SkanC ObjC C++ ObjC++
439169699SkanDo not warn about using variadic macros when -pedantic
440132718Skan
441259268SpfgWvla
442259268SpfgC ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
443259268SpfgWarn if a variable length array is used
444259268Spfg
445169699SkanWwrite-strings
446169699SkanC ObjC C++ ObjC++ Var(warn_write_strings)
447169699SkanIn 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.
448169699Skan
449169699SkanWpointer-sign
450169699SkanC ObjC Var(warn_pointer_sign) Init(-1)
451169699SkanWarn when a pointer differs in signedness in an assignment
452169699Skan
453132718Skanansi
454132718SkanC ObjC C++ ObjC++
455169699SkanA synonym for -std=c89 (for C) or -std=c++98 (for C++)
456132718Skan
457132718Skand
458132718SkanC ObjC C++ ObjC++ Joined
459132718Skan; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
460132718Skan
461132718Skanfaccess-control
462132718SkanC++ ObjC++
463132718SkanEnforce class member access control semantics
464132718Skan
465132718Skanfall-virtual
466132718SkanC++ ObjC++
467132718Skan
468132718Skanfalt-external-templates
469132718SkanC++ ObjC++
470132718SkanChange when template instances are emitted
471132718Skan
472132718Skanfasm
473132718SkanC ObjC C++ ObjC++
474132718SkanRecognize the \"asm\" keyword
475132718Skan
476132718Skanfbuiltin
477132718SkanC ObjC C++ ObjC++
478132718SkanRecognize built-in functions
479132718Skan
480132718Skanfbuiltin-
481132718SkanC ObjC C++ ObjC++ Joined
482132718Skan
483132718Skanfcheck-new
484132718SkanC++ ObjC++
485132718SkanCheck the return value of new
486132718Skan
487132718Skanfcond-mismatch
488132718SkanC ObjC C++ ObjC++
489132718SkanAllow the arguments of the '?' operator to have different types
490132718Skan
491132718Skanfconserve-space
492132718SkanC++ ObjC++
493132718SkanReduce the size of object files
494132718Skan
495132718Skanfconstant-string-class=
496132718SkanObjC ObjC++ Joined
497132718Skan-fconst-string-class=<name>	Use class <name> for constant strings
498132718Skan
499132718Skanfdefault-inline
500132718SkanC++ ObjC++
501132718SkanInline member functions by default
502132718Skan
503259405Spfgfdirectives-only
504259405SpfgC ObjC C++ ObjC++
505259405SpfgPreprocess directives only.
506259405Spfg
507132718Skanfdollars-in-identifiers
508132718SkanC ObjC C++ ObjC++
509132718SkanPermit '$' as an identifier character
510132718Skan
511132718Skanfelide-constructors
512132718SkanC++ ObjC++
513132718Skan
514132718Skanfenforce-eh-specs
515132718SkanC++ ObjC++
516132718SkanGenerate code to check exception specifications
517132718Skan
518132718Skanfenum-int-equiv
519132718SkanC++ ObjC++
520132718Skan
521132718Skanfexec-charset=
522132718SkanC ObjC C++ ObjC++ Joined RejectNegative
523132718Skan-fexec-charset=<cset>	Convert all strings and character constants to character set <cset>
524132718Skan
525169699Skanfextended-identifiers
526169699SkanC ObjC C++ ObjC++
527169699SkanPermit universal character names (\\u and \\U) in identifiers
528169699Skan
529132718Skanfinput-charset=
530132718SkanC ObjC C++ ObjC++ Joined RejectNegative
531169699Skan-finput-charset=<cset>	Specify the default character set for source files
532132718Skan
533132718Skan
534132718Skanfexternal-templates
535132718SkanC++ ObjC++
536132718Skan
537132718Skanffor-scope
538132718SkanC++ ObjC++
539132718SkanScope of for-init-statement variables is local to the loop
540132718Skan
541132718Skanffreestanding
542132718SkanC ObjC
543132718SkanDo not assume that standard C libraries and \"main\" exist
544132718Skan
545132718Skanfgnu-keywords
546132718SkanC++ ObjC++
547132718SkanRecognize GNU-defined keywords
548132718Skan
549132718Skanfgnu-runtime
550132718SkanObjC ObjC++
551132718SkanGenerate code for GNU runtime environment
552132718Skan
553169699Skanfgnu89-inline
554169699SkanC ObjC Var(flag_gnu89_inline) Init(-1)
555169699SkanUse traditional GNU semantics for inline functions
556169699Skan
557132718Skanfguiding-decls
558132718SkanC++ ObjC++
559132718Skan
560132718Skanfhandle-exceptions
561132718SkanC++ ObjC++
562132718Skan
563132718Skanfhonor-std
564132718SkanC++ ObjC++
565132718Skan
566132718Skanfhosted
567132718SkanC ObjC
568132718SkanAssume normal C execution environment
569132718Skan
570132718Skanfhuge-objects
571132718SkanC++ ObjC++
572132718SkanEnable support for huge objects
573132718Skan
574132718Skanfimplement-inlines
575132718SkanC++ ObjC++
576132718SkanExport functions even if they can be inlined
577132718Skan
578132718Skanfimplicit-inline-templates
579132718SkanC++ ObjC++
580132718SkanEmit implicit instantiations of inline templates
581132718Skan
582132718Skanfimplicit-templates
583132718SkanC++ ObjC++
584132718SkanEmit implicit instantiations of templates
585132718Skan
586169699Skanffriend-injection
587169699SkanC++ ObjC++ Var(flag_friend_injection)
588169699SkanInject friend functions into enclosing namespace
589169699Skan
590132718Skanflabels-ok
591132718SkanC++ ObjC++
592132718Skan
593260074Spfgflax-vector-conversions
594260074SpfgC ObjC C++ ObjC++
595260074SpfgAllow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
596260074Spfg
597132718Skanfms-extensions
598132718SkanC ObjC C++ ObjC++
599132718SkanDon't warn about uses of Microsoft extensions
600132718Skan
601132718Skanfname-mangling-version-
602132718SkanC++ ObjC++ Joined
603132718Skan
604132718Skanfnew-abi
605132718SkanC++ ObjC++
606132718Skan
607132718Skanfnext-runtime
608132718SkanObjC ObjC++
609132718SkanGenerate code for NeXT (Apple Mac OS X) runtime environment
610132718Skan
611132718Skanfnil-receivers
612132718SkanObjC ObjC++
613132718SkanAssume that receivers of Objective-C messages may be nil
614132718Skan
615132718Skanfnonansi-builtins
616132718SkanC++ ObjC++
617132718Skan
618132718Skanfnonnull-objects
619132718SkanC++ ObjC++
620132718Skan
621169699Skan; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
622169699Skan; to initialize any non-POD ivars in Objective-C++ classes.
623169699Skanfobjc-call-cxx-cdtors
624169699SkanObjC++ Var(flag_objc_call_cxx_cdtors)
625169699SkanGenerate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
626169699Skan
627169699Skanfobjc-direct-dispatch
628169699SkanObjC ObjC++ Var(flag_objc_direct_dispatch)
629169699SkanAllow fast jumps to the message dispatcher
630169699Skan
631169699Skan; Nonzero means that we will allow new ObjC exception syntax (@throw,
632169699Skan; @try, etc.) in source code.
633132718Skanfobjc-exceptions
634169699SkanObjC ObjC++ Var(flag_objc_exceptions)
635132718SkanEnable Objective-C exception and synchronization syntax
636132718Skan
637169699Skanfobjc-gc
638169699SkanObjC ObjC++ Var(flag_objc_gc)
639169699SkanEnable garbage collection (GC) in Objective-C/Objective-C++ programs
640169699Skan
641169699Skan; Nonzero means that we generate NeXT setjmp based exceptions.
642169699Skanfobjc-sjlj-exceptions
643169699SkanObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
644169699SkanEnable Objective-C setjmp exception handling runtime
645169699Skan
646169699Skanfopenmp
647169699SkanC ObjC C++ ObjC++ Var(flag_openmp)
648169699SkanEnable OpenMP
649169699Skan
650132718Skanfoperator-names
651132718SkanC++ ObjC++
652132718SkanRecognize C++ kewords like \"compl\" and \"xor\"
653132718Skan
654132718Skanfoptional-diags
655132718SkanC++ ObjC++
656132718SkanEnable optional diagnostics
657132718Skan
658132718Skanfpch-deps
659132718SkanC ObjC C++ ObjC++
660132718Skan
661169699Skanfpch-preprocess
662169699SkanC ObjC C++ ObjC++
663169699SkanLook for and use PCH files even when preprocessing
664169699Skan
665132718Skanfpermissive
666132718SkanC++ ObjC++
667132718SkanDowngrade conformance errors to warnings
668132718Skan
669132718Skanfpreprocessed
670132718SkanC ObjC C++ ObjC++
671132718SkanTreat the input file as already preprocessed
672132718Skan
673132718Skanfreplace-objc-classes
674132718SkanObjC ObjC++
675132718SkanUsed in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
676132718Skan
677132718Skanfrepo
678132718SkanC++ ObjC++
679132718SkanEnable automatic template instantiation
680132718Skan
681132718Skanfrtti
682132718SkanC++ ObjC++
683132718SkanGenerate run time type descriptor information
684132718Skan
685132718Skanfshort-double
686132718SkanC ObjC C++ ObjC++
687132718SkanUse the same size for double as for float
688132718Skan
689132718Skanfshort-enums
690132718SkanC ObjC C++ ObjC++
691132718SkanUse the narrowest integer type possible for enumeration types
692132718Skan
693132718Skanfshort-wchar
694132718SkanC ObjC C++ ObjC++
695132718SkanForce the underlying type for \"wchar_t\" to be \"unsigned short\"
696132718Skan
697132718Skanfsigned-bitfields
698132718SkanC ObjC C++ ObjC++
699132718SkanWhen \"signed\" or \"unsigned\" is not given make the bitfield signed
700132718Skan
701132718Skanfsigned-char
702132718SkanC ObjC C++ ObjC++
703132718SkanMake \"char\" signed by default
704132718Skan
705132718Skanfsquangle
706132718SkanC++ ObjC++
707132718Skan
708132718Skanfstats
709132718SkanC++ ObjC++
710132718SkanDisplay statistics accumulated during compilation
711132718Skan
712132718Skanfstrict-prototype
713132718SkanC++ ObjC++
714132718Skan
715132718Skanftabstop=
716132718SkanC ObjC C++ ObjC++ Joined RejectNegative UInteger
717132718Skan-ftabstop=<number>	Distance between tab stops for column reporting
718132718Skan
719132718Skanftemplate-depth-
720169699SkanC++ ObjC++ Joined RejectNegative UInteger
721132718Skan-ftemplate-depth-<number>	Specify maximum template instantiation depth
722132718Skan
723132718Skanfthis-is-variable
724132718SkanC++ ObjC++
725132718Skan
726169699Skanfthreadsafe-statics
727169699SkanC++ ObjC++
728169699Skan-fno-threadsafe-statics	Do not generate thread-safe code for initializing local statics
729169699Skan
730132718Skanfunsigned-bitfields
731132718SkanC ObjC C++ ObjC++
732132718SkanWhen \"signed\" or \"unsigned\" is not given make the bitfield unsigned
733132718Skan
734132718Skanfunsigned-char
735132718SkanC ObjC C++ ObjC++
736132718SkanMake \"char\" unsigned by default
737132718Skan
738132718Skanfuse-cxa-atexit
739132718SkanC++ ObjC++
740132718SkanUse __cxa_atexit to register destructors
741132718Skan
742169699Skanfuse-cxa-get-exception-ptr
743169699SkanC++ ObjC++
744169699SkanUse __cxa_get_exception_ptr in exception handling
745169699Skan
746169699Skanfvisibility-inlines-hidden
747169699SkanC++ ObjC++
748169699SkanMarks all inlined methods as having hidden visibility
749169699Skan
750260074Spfgfvisibility-ms-compat
751260074SpfgC++ ObjC++ Var(flag_visibility_ms_compat)
752260074SpfgChanges visibility to match Microsoft Visual Studio by default
753260074Spfg
754132718Skanfvtable-gc
755132718SkanC++ ObjC++
756132718SkanDiscard unused virtual functions
757132718Skan
758132718Skanfvtable-thunks
759132718SkanC++ ObjC++
760132718SkanImplement vtables using thunks
761132718Skan
762132718Skanfweak
763132718SkanC++ ObjC++
764132718SkanEmit common-like symbols as weak symbols
765132718Skan
766132718Skanfwide-exec-charset=
767132718SkanC ObjC C++ ObjC++ Joined RejectNegative
768132718Skan-fwide-exec-charset=<cset>	Convert all wide strings and character constants to character set <cset>
769132718Skan
770132718Skanfworking-directory
771132718SkanC ObjC C++ ObjC++
772132718SkanGenerate a #line directive pointing at the current working directory
773132718Skan
774132718Skanfxref
775132718SkanC++ ObjC++
776132718SkanEmit cross referencing information
777132718Skan
778132718Skanfzero-link
779132718SkanObjC ObjC++
780132718SkanGenerate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
781132718Skan
782132718Skangen-decls
783132718SkanObjC ObjC++
784132718SkanDump declarations to a .decl file
785132718Skan
786259268Spfgfemit-struct-debug-baseonly
787259268SpfgC ObjC C++ ObjC++
788259268Spfg-femit-struct-debug-baseonly	Aggressive reduced debug info for structs
789259268Spfg
790259268Spfgfemit-struct-debug-reduced
791259268SpfgC ObjC C++ ObjC++
792259268Spfg-femit-struct-debug-reduced	Conservative reduced debug info for structs
793259268Spfg
794259268Spfgfemit-struct-debug-detailed=
795259268SpfgC ObjC C++ ObjC++ Joined
796259268Spfg-femit-struct-debug-detailed=<spec-list>	Detailed reduced debug info for structs
797259268Spfg
798132718Skanidirafter
799132718SkanC ObjC C++ ObjC++ Joined Separate
800132718Skan-idirafter <dir>	Add <dir> to the end of the system include path
801132718Skan
802132718Skanimacros
803132718SkanC ObjC C++ ObjC++ Joined Separate
804132718Skan-imacros <file>	Accept definition of macros in <file>
805132718Skan
806169699Skanimultilib
807169699SkanC ObjC C++ ObjC++ Joined Separate
808169699Skan-imultilib <dir> Set <dir> to be the multilib include subdirectory
809169699Skan
810132718Skaninclude
811132718SkanC ObjC C++ ObjC++ Joined Separate
812132718Skan-include <file>	Include the contents of <file> before other files
813132718Skan
814132718Skaniprefix
815132718SkanC ObjC C++ ObjC++ Joined Separate
816132718Skan-iprefix <path>	Specify <path> as a prefix for next two options
817132718Skan
818132718Skanisysroot
819132718SkanC ObjC C++ ObjC++ Joined Separate
820132718Skan-isysroot <dir>	Set <dir> to be the system root directory
821132718Skan
822132718Skanisystem
823132718SkanC ObjC C++ ObjC++ Joined Separate
824132718Skan-isystem <dir>	Add <dir> to the start of the system include path
825132718Skan
826169699Skaniquote
827169699SkanC ObjC C++ ObjC++ Joined Separate
828169699Skan-iquote <dir>	Add <dir> to the end of the quote include path
829169699Skan
830132718Skaniwithprefix
831132718SkanC ObjC C++ ObjC++ Joined Separate
832132718Skan-iwithprefix <dir>	Add <dir> to the end of the system include path
833132718Skan
834132718Skaniwithprefixbefore
835132718SkanC ObjC C++ ObjC++ Joined Separate
836132718Skan-iwithprefixbefore <dir>	Add <dir> to the end of the main include path
837132718Skan
838132718Skanlang-asm
839132718SkanC Undocumented
840132718Skan
841169699Skanlang-fortran
842169699SkanC Undocumented
843169699Skan
844132718Skanlang-objc
845132718SkanC ObjC C++ ObjC++ Undocumented
846132718Skan
847132718Skannostdinc
848132718SkanC ObjC C++ ObjC++
849132718SkanDo not search standard system include directories (those specified with -isystem will still be used)
850132718Skan
851132718Skannostdinc++
852132718SkanC++ ObjC++
853132718SkanDo not search standard system include directories for C++
854132718Skan
855132718Skano
856132718SkanC ObjC C++ ObjC++ Joined Separate
857132718Skan; Documented in common.opt
858132718Skan
859132718Skanpedantic
860132718SkanC ObjC C++ ObjC++
861132718Skan; Documented in common.opt
862132718Skan
863132718Skanpedantic-errors
864132718SkanC ObjC C++ ObjC++
865132718Skan; Documented in common.opt
866132718Skan
867132718Skanprint-objc-runtime-info
868132718SkanObjC ObjC++
869132718SkanGenerate C header of platform-specific features
870132718Skan
871169699Skanprint-pch-checksum
872169699SkanC ObjC C++ ObjC++
873169699SkanPrint a checksum of the executable for PCH validity checking, and stop
874169699Skan
875132718Skanremap
876132718SkanC ObjC C++ ObjC++
877132718SkanRemap file names when including files
878132718Skan
879132718Skanstd=c++98
880132718SkanC++ ObjC++
881132718SkanConform to the ISO 1998 C++ standard
882132718Skan
883132718Skanstd=c89
884132718SkanC ObjC
885132718SkanConform to the ISO 1990 C standard
886132718Skan
887132718Skanstd=c99
888132718SkanC ObjC
889132718SkanConform to the ISO 1999 C standard
890132718Skan
891132718Skanstd=c9x
892132718SkanC ObjC
893132718SkanDeprecated in favor of -std=c99
894132718Skan
895132718Skanstd=gnu++98
896132718SkanC++ ObjC++
897132718SkanConform to the ISO 1998 C++ standard with GNU extensions
898132718Skan
899132718Skanstd=gnu89
900132718SkanC ObjC
901132718SkanConform to the ISO 1990 C standard with GNU extensions
902132718Skan
903132718Skanstd=gnu99
904132718SkanC ObjC
905132718SkanConform to the ISO 1999 C standard with GNU extensions
906132718Skan
907132718Skanstd=gnu9x
908132718SkanC ObjC
909132718SkanDeprecated in favor of -std=gnu99
910132718Skan
911132718Skanstd=iso9899:1990
912132718SkanC ObjC
913146908SkanConform to the ISO 1990 C standard
914132718Skan
915132718Skanstd=iso9899:199409
916132718SkanC ObjC
917132718SkanConform to the ISO 1990 C standard as amended in 1994
918132718Skan
919132718Skanstd=iso9899:1999
920132718SkanC ObjC
921146908SkanConform to the ISO 1999 C standard
922132718Skan
923132718Skanstd=iso9899:199x
924132718SkanC ObjC
925146908SkanDeprecated in favor of -std=iso9899:1999
926132718Skan
927132718Skantraditional-cpp
928132718SkanC ObjC C++ ObjC++
929132718SkanEnable traditional preprocessing
930132718Skan
931132718Skantrigraphs
932132718SkanC ObjC C++ ObjC++
933132718Skan-trigraphs	Support ISO C trigraphs
934132718Skan
935132718Skanundef
936132718SkanC ObjC C++ ObjC++
937132718SkanDo not predefine system-specific and GCC-specific macros
938132718Skan
939132718Skanv
940132718SkanC ObjC C++ ObjC++
941132718SkanEnable verbose output
942132718Skan
943132718Skanw
944132718SkanC ObjC C++ ObjC++
945132718Skan; Documented in common.opt
946132718Skan
947132718Skan; This comment is to ensure we retain the blank line above.
948