1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
4 ; This file is part of GCC.
6 ; GCC is free software; you can redistribute it and/or modify it under
7 ; the terms of the GNU General Public License as published by the Free
8 ; Software Foundation; either version 2, or (at your option) any later
11 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 ; You should have received a copy of the GNU General Public License
17 ; along with GCC; see the file COPYING. If not, write to the Free
18 ; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
21 ; See the GCC internals manual for a description of this file's format.
23 ; Please try to keep this file in ASCII collating order.
38 C ObjC C++ ObjC++ Joined Separate
41 C ObjC C++ ObjC++ Joined Separate
42 -A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>
46 Do not discard comments
50 Do not discard comments in macro expansions
53 C ObjC C++ ObjC++ Joined Separate
54 -D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1
57 C ObjC C++ ObjC++ Undocumented
60 C ObjC C++ ObjC++ Joined Separate
61 -F <dir> Add <dir> to the end of the main framework include path
65 Print the name of header files as they are used
68 C ObjC C++ ObjC++ Joined Separate
69 -I <dir> Add <dir> to the end of the main include path
73 Generate make dependencies
76 C ObjC C++ ObjC++ Separate
77 Generate make dependencies and compile
80 C ObjC C++ ObjC++ Joined Separate
81 -MF <file> Write dependency output to the given file
85 Treat missing header files as generated files
89 Like -M but ignore system header files
92 C ObjC C++ ObjC++ Separate
93 Like -MD but ignore system header files
97 Generate phony targets for all headers
100 C ObjC C++ ObjC++ Joined Separate
101 -MQ <target> Add a MAKE-quoted target
104 C ObjC C++ ObjC++ Joined Separate
105 -MT <target> Add an unquoted target
109 Do not generate #line directives
112 C ObjC C++ ObjC++ Joined Separate
113 -U<macro> Undefine <macro>
116 C++ ObjC++ Var(warn_abi)
117 Warn about things that will change when compiling with an ABI-compliant compiler
120 C ObjC C++ ObjC++ Var(warn_address)
121 Warn about suspicious uses of memory addresses
125 Enable most warning messages
128 ObjC ObjC++ Var(warn_assign_intercept)
129 Warn whenever an Objective-C assignment is being intercepted by the garbage collector
132 C ObjC Var(warn_bad_function_cast)
133 Warn about casting functions to incompatible types
136 C ObjC Var(warn_cxx_compat)
137 Warn about C constructs that are not in the common subset of C and C++
141 C ObjC C++ ObjC++ Var(warn_cast_qual)
142 Warn about casts which discard qualifiers
145 C ObjC C++ ObjC++ Var(warn_char_subscripts)
146 Warn about subscripts whose type is \"char\"
150 Warn about possibly nested block comments, and C++ comments spanning more than one physical line
154 Synonym for -Wcomment
157 C ObjC C++ ObjC++ Var(warn_conversion)
158 Warn about possibly confusing type conversions
161 C++ ObjC++ Var(warn_ctor_dtor_privacy)
162 Warn when all constructors and destructors are private
164 Wdeclaration-after-statement
165 C ObjC Var(warn_declaration_after_statement)
166 Warn when a declaration is found after a statement
169 C++ ObjC++ Var(warn_deprecated) Init(1)
170 Warn about deprecated compiler features
173 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1)
174 Warn about compile-time integer division by zero
177 C++ ObjC++ Var(warn_ecpp)
178 Warn about violations of Effective C++ style rules
182 Warn about stray tokens after #elif and #endif
186 ; Documented in common.opt
188 Werror-implicit-function-declaration
189 C ObjC RejectNegative
190 Make implicit function declarations an error
193 C ObjC C++ ObjC++ Var(warn_float_equal)
194 Warn if testing floating point numbers for equality
198 Warn about printf/scanf/strftime/strfmon format string anomalies
201 C ObjC C++ ObjC++ Var(warn_format_extra_args)
202 Warn if passing too many arguments to a function for its format string
205 C ObjC C++ ObjC++ Var(warn_format_nonliteral)
206 Warn about format strings that are not literals
209 C ObjC C++ ObjC++ Var(warn_format_security)
210 Warn about possible security problems with format functions
213 C ObjC C++ ObjC++ Var(warn_format_y2k)
214 Warn about strftime formats yielding 2-digit years
217 C ObjC Var(warn_format_zero_length)
218 Warn about zero-length formats
221 C ObjC C++ ObjC++ Joined
224 C ObjC C++ ObjC++ Var(warn_init_self)
225 Warn about variables which are initialized to themselves
230 Wimplicit-function-declaration
231 C ObjC Var(mesg_implicit_function_declaration) Init(-1)
232 Warn about implicit function declarations
235 C ObjC Var(warn_implicit_int)
236 Warn when a declaration does not specify a type
240 Deprecated. This switch has no effect
243 C ObjC Var(warn_int_to_pointer_cast) Init(1)
244 Warn when there is a cast to a pointer from an integer of a different size
247 C++ ObjC++ Var(warn_invalid_offsetof) Init(1)
248 Warn about invalid uses of the \"offsetof\" macro
252 Warn about PCH files that are found but not used
255 C ObjC C++ ObjC++ Var(warn_long_long) Init(1)
256 Do not warn about using \"long long\" when -pedantic
260 Warn about suspicious declarations of \"main\"
263 C ObjC C++ ObjC++ Var(warn_missing_braces)
264 Warn about possibly missing braces around initializers
266 Wmissing-declarations
267 C ObjC Var(warn_missing_declarations)
268 Warn about global functions without previous declarations
270 Wmissing-field-initializers
271 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1)
272 Warn about missing fields in struct initializers
274 Wmissing-format-attribute
275 C ObjC C++ ObjC++ Var(warn_missing_format_attribute)
276 Warn about functions which might be candidates for format attributes
278 Wmissing-include-dirs
280 Warn about user-specified include directories that do not exist
283 C ObjC Var(warn_missing_prototypes)
284 Warn about global functions without prototypes
288 Warn about use of multi-character character constants
291 C ObjC Var(warn_nested_externs)
292 Warn about \"extern\" declarations not at file scope
295 C++ ObjC++ Var(warn_nontemplate_friend) Init(1)
296 Warn when non-templatized friend functions are declared within a template
299 C++ ObjC++ Var(warn_nonvdtor)
300 Warn about non-virtual destructors
303 C ObjC Var(warn_nonnull)
304 Warn about NULL being passed to argument slots marked as requiring non-NULL
307 C ObjC C++ ObjC++ Joined
308 -Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode strings
311 C++ ObjC++ Var(warn_old_style_cast)
312 Warn if a C-style cast is used in a program
314 Wold-style-definition
315 C ObjC Var(warn_old_style_definition)
316 Warn if an old-style parameter definition is used
319 C ObjC C++ ObjC++ Var(warn_overlength_strings) Init(-1)
320 Warn if a string is longer than the maximum portable length specified by the standard
323 C++ ObjC++ Var(warn_overloaded_virtual)
324 Warn about overloaded virtual function names
327 C ObjC Var(warn_override_init) Init(-1)
328 Warn about overriding initializers without side effects
331 C ObjC C++ ObjC++ Var(warn_parentheses)
332 Warn about possibly missing parentheses
335 C++ ObjC++ Var(warn_pmf2ptr) Init(1)
336 Warn when converting the type of pointers to member functions
339 C ObjC C++ ObjC++ Var(warn_pointer_arith)
340 Warn about function pointer arithmetic
343 C ObjC Var(warn_pointer_to_int_cast) Init(1)
344 Warn when a pointer is cast to an integer of a different size
347 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1)
348 Warn about misuses of pragmas
351 ObjC ObjC++ Var(warn_protocol) Init(1)
352 Warn if inherited methods are unimplemented
355 C ObjC C++ ObjC++ Var(warn_redundant_decls)
356 Warn about multiple declarations of the same object
359 C++ ObjC++ Var(warn_reorder)
360 Warn when the compiler reorders code
363 C ObjC C++ ObjC++ Var(warn_return_type)
364 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
367 ObjC ObjC++ Var(warn_selector)
368 Warn if a selector has multiple methods
371 C ObjC C++ ObjC++ Var(warn_sequence_point)
372 Warn about possible violations of sequence point rules
375 C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1)
376 Warn about signed-unsigned comparisons
379 C++ ObjC++ Var(warn_sign_promo)
380 Warn when overload promotes from unsigned to signed
382 Wstrict-null-sentinel
384 Warn about uncasted NULL used as sentinel
387 C ObjC Var(warn_strict_prototypes)
388 Warn about unprototyped function declarations
390 Wstrict-selector-match
391 ObjC ObjC++ Var(warn_strict_selector_match)
392 Warn if type signatures of candidate methods do not match exactly
395 C++ ObjC++ Var(warn_synth)
396 Warn when synthesis behavior differs from Cfront
400 Do not suppress warnings from system headers
403 C ObjC Var(warn_traditional)
404 Warn about features not present in traditional C
408 Warn if trigraphs are encountered that might affect the meaning of the program
411 ObjC ObjC++ Var(warn_undeclared_selector)
412 Warn about @selector()s without previously declared methods
416 Warn if an undefined macro is used in an #if directive
420 Warn about unrecognized pragmas
424 Warn about macros defined in the main file that are not used
428 Do not warn about using variadic macros when -pedantic
431 C ObjC C++ ObjC++ Var(warn_write_strings)
432 In 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.
435 C ObjC Var(warn_pointer_sign) Init(-1)
436 Warn when a pointer differs in signedness in an assignment
440 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
443 C ObjC C++ ObjC++ Joined
444 ; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
448 Enforce class member access control semantics
453 falt-external-templates
455 Change when template instances are emitted
459 Recognize the \"asm\" keyword
463 Recognize built-in functions
466 C ObjC C++ ObjC++ Joined
470 Check the return value of new
474 Allow the arguments of the '?' operator to have different types
478 Reduce the size of object files
480 fconstant-string-class=
482 -fconst-string-class=<name> Use class <name> for constant strings
486 Inline member functions by default
488 fdollars-in-identifiers
490 Permit '$' as an identifier character
497 Generate code to check exception specifications
503 C ObjC C++ ObjC++ Joined RejectNegative
504 -fexec-charset=<cset> Convert all strings and character constants to character set <cset>
506 fextended-identifiers
508 Permit universal character names (\\u and \\U) in identifiers
511 C ObjC C++ ObjC++ Joined RejectNegative
512 -finput-charset=<cset> Specify the default character set for source files
520 Scope of for-init-statement variables is local to the loop
524 Do not assume that standard C libraries and \"main\" exist
528 Recognize GNU-defined keywords
532 Generate code for GNU runtime environment
535 C ObjC Var(flag_gnu89_inline) Init(-1)
536 Use traditional GNU semantics for inline functions
549 Assume normal C execution environment
553 Enable support for huge objects
557 Export functions even if they can be inlined
559 fimplicit-inline-templates
561 Emit implicit instantiations of inline templates
565 Emit implicit instantiations of templates
568 C++ ObjC++ Var(flag_friend_injection)
569 Inject friend functions into enclosing namespace
576 Don't warn about uses of Microsoft extensions
578 fname-mangling-version-
586 Generate code for NeXT (Apple Mac OS X) runtime environment
590 Assume that receivers of Objective-C messages may be nil
598 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
599 ; to initialize any non-POD ivars in Objective-C++ classes.
600 fobjc-call-cxx-cdtors
601 ObjC++ Var(flag_objc_call_cxx_cdtors)
602 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
604 fobjc-direct-dispatch
605 ObjC ObjC++ Var(flag_objc_direct_dispatch)
606 Allow fast jumps to the message dispatcher
608 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
609 ; @try, etc.) in source code.
611 ObjC ObjC++ Var(flag_objc_exceptions)
612 Enable Objective-C exception and synchronization syntax
615 ObjC ObjC++ Var(flag_objc_gc)
616 Enable garbage collection (GC) in Objective-C/Objective-C++ programs
618 ; Nonzero means that we generate NeXT setjmp based exceptions.
619 fobjc-sjlj-exceptions
620 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
621 Enable Objective-C setjmp exception handling runtime
624 C ObjC C++ ObjC++ Var(flag_openmp)
629 Recognize C++ kewords like \"compl\" and \"xor\"
633 Enable optional diagnostics
640 Look for and use PCH files even when preprocessing
644 Downgrade conformance errors to warnings
648 Treat the input file as already preprocessed
650 freplace-objc-classes
652 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
656 Enable automatic template instantiation
660 Generate run time type descriptor information
664 Use the same size for double as for float
668 Use the narrowest integer type possible for enumeration types
672 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
676 When \"signed\" or \"unsigned\" is not given make the bitfield signed
680 Make \"char\" signed by default
687 Display statistics accumulated during compilation
693 C ObjC C++ ObjC++ Joined RejectNegative UInteger
694 -ftabstop=<number> Distance between tab stops for column reporting
697 C++ ObjC++ Joined RejectNegative UInteger
698 -ftemplate-depth-<number> Specify maximum template instantiation depth
705 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
709 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
713 Make \"char\" unsigned by default
717 Use __cxa_atexit to register destructors
719 fuse-cxa-get-exception-ptr
721 Use __cxa_get_exception_ptr in exception handling
723 fvisibility-inlines-hidden
725 Marks all inlined methods as having hidden visibility
729 Discard unused virtual functions
733 Implement vtables using thunks
737 Emit common-like symbols as weak symbols
740 C ObjC C++ ObjC++ Joined RejectNegative
741 -fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
745 Generate a #line directive pointing at the current working directory
749 Emit cross referencing information
753 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
757 Dump declarations to a .decl file
760 C ObjC C++ ObjC++ Joined Separate
761 -idirafter <dir> Add <dir> to the end of the system include path
764 C ObjC C++ ObjC++ Joined Separate
765 -imacros <file> Accept definition of macros in <file>
768 C ObjC C++ ObjC++ Joined Separate
769 -imultilib <dir> Set <dir> to be the multilib include subdirectory
772 C ObjC C++ ObjC++ Joined Separate
773 -include <file> Include the contents of <file> before other files
776 C ObjC C++ ObjC++ Joined Separate
777 -iprefix <path> Specify <path> as a prefix for next two options
780 C ObjC C++ ObjC++ Joined Separate
781 -isysroot <dir> Set <dir> to be the system root directory
784 C ObjC C++ ObjC++ Joined Separate
785 -isystem <dir> Add <dir> to the start of the system include path
788 C ObjC C++ ObjC++ Joined Separate
789 -iquote <dir> Add <dir> to the end of the quote include path
792 C ObjC C++ ObjC++ Joined Separate
793 -iwithprefix <dir> Add <dir> to the end of the system include path
796 C ObjC C++ ObjC++ Joined Separate
797 -iwithprefixbefore <dir> Add <dir> to the end of the main include path
806 C ObjC C++ ObjC++ Undocumented
810 Do not search standard system include directories (those specified with -isystem will still be used)
814 Do not search standard system include directories for C++
817 C ObjC C++ ObjC++ Joined Separate
818 ; Documented in common.opt
822 ; Documented in common.opt
826 ; Documented in common.opt
828 print-objc-runtime-info
830 Generate C header of platform-specific features
834 Print a checksum of the executable for PCH validity checking, and stop
838 Remap file names when including files
842 Conform to the ISO 1998 C++ standard
846 Conform to the ISO 1990 C standard
850 Conform to the ISO 1999 C standard
854 Deprecated in favor of -std=c99
858 Conform to the ISO 1998 C++ standard with GNU extensions
862 Conform to the ISO 1990 C standard with GNU extensions
866 Conform to the ISO 1999 C standard with GNU extensions
870 Deprecated in favor of -std=gnu99
874 Conform to the ISO 1990 C standard
878 Conform to the ISO 1990 C standard as amended in 1994
882 Conform to the ISO 1999 C standard
886 Deprecated in favor of -std=iso9899:1999
890 Enable traditional preprocessing
894 -trigraphs Support ISO C trigraphs
898 Do not predefine system-specific and GCC-specific macros
902 Enable verbose output
906 ; Documented in common.opt
908 ; This comment is to ensure we retain the blank line above.