; output. However, if the help text contains a tab character, the
; text to the left of the tab is output instead of the switch, and the
; text to its right forms the help. This is useful for elaborating on
-; what type of argument a switch takes, for example.
+; what type of argument a switch takes, for example. If the second
+; field contains "Undocumented" then nothing is output with --help.
+; Only do this with good reason like the switch being internal between
+; the driver and the front end - it is not an excuse to leave a switch
+; undocumented.
; Comments can appear on their own line anwhere in the file, preceded
; by a semicolon. Whitespace is permitted before the semicolon.
-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1
E
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Undocumented
+
+F
+C ObjC C++ ObjC++ Joined Separate
+-F <dir> Add <dir> to the end of the main framework include path
H
C ObjC C++ ObjC++
Wctor-dtor-privacy
C++ ObjC++
+Warn when all constructors and destructors are private
+
+Wdeclaration-after-statement
+C ObjC
+Warn when a declaration is found after a statement
Wdeprecated
C++ ObjC++
+Warn about deprecated compiler features
Wdiv-by-zero
C ObjC
Weffc++
C++ ObjC++
+Warn about violations of Effective C++ style rules
Wendif-labels
C ObjC C++ ObjC++
Wformat=
C ObjC C++ ObjC++ Joined
+Winit-self
+C ObjC C++ ObjC++
+Warn about variables which are initialized to themselves.
+
Wimplicit
C ObjC C++ ObjC++
Wimport
C ObjC C++ ObjC++
-Warn about uses of the \"#import\" directive
+Deprecated. This switch has no effect.
Winvalid-offsetof
C++ ObjC++
+Warn about invalid uses of the \"offsetof\" macro
Winvalid-pch
C ObjC C++ ObjC++
Wnon-template-friend
C++ ObjC++
+Warn when non-templatized friend functions are declared within a template
Wnon-virtual-dtor
C++ ObjC++
+Warn about non-virtual destructors
Wnonnull
C ObjC
Wold-style-cast
C++ ObjC++
+Warn if a C-style cast is used in a program
+
+Wold-style-definition
+C ObjC
+Warn if an old-style parameter definition is used
Woverloaded-virtual
C++ ObjC++
+Warn about overloaded virtual function names
Wparentheses
C ObjC C++ ObjC++
Wpmf-conversions
C++ ObjC++
+Warn when converting the type of pointers to member functions
Wpointer-arith
C ObjC C++ ObjC++
Wprotocol
ObjC ObjC++
+Warn if inherited methods are unimplemented
Wredundant-decls
C ObjC C++ ObjC++
Wreorder
C++ ObjC++
+Warn when the compiler reorders code
Wreturn-type
C ObjC C++ ObjC++
-Warn whenever a function's return type defaults to \"int\"
+Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
Wselector
ObjC ObjC++
+Warn if a selector has multiple methods
Wsequence-point
C ObjC
Wsign-promo
C++ ObjC++
+Warn when overload promotes from unsigned to signed
Wstrict-prototypes
C ObjC
Wsynth
C++ ObjC++
+Warn when synthesis behavior differs from Cfront
Wsystem-headers
C ObjC C++ ObjC++
C ObjC C++ ObjC++
Warn about macros defined in the main file that are not used
+Wvariadic-macros
+C ObjC C++ ObjC++
+Do not warn about using variadic macros when -pedantic
+
Wwrite-strings
C ObjC C++ ObjC++
Give strings the type \"array of char\"
C ObjC C++ ObjC++ Joined
; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
-fabi-version=
-C++ ObjC++ Joined UInteger
-
faccess-control
C++ ObjC++
+Enforce class member access control semantics
fall-virtual
C++ ObjC++
falt-external-templates
C++ ObjC++
+Change when template instances are emitted
fasm
C ObjC C++ ObjC++
fcheck-new
C++ ObjC++
+Check the return value of new
fcond-mismatch
C ObjC C++ ObjC++
fconserve-space
C++ ObjC++
+Reduce the size of object files
fconst-strings
C++ ObjC++
+Make string literals \"const char[]\" not \"char[]\"
fconstant-string-class=
ObjC ObjC++ Joined
+-fconst-string-class=<name> Use class <name> for constant strings
fdefault-inline
C++ ObjC++
+Inline member functions by default
fdollars-in-identifiers
C ObjC C++ ObjC++
fdump-
C ObjC C++ ObjC++ Joined RejectNegative
+-fdump-<type> Dump various compiler internals to a file
felide-constructors
C++ ObjC++
fenforce-eh-specs
C++ ObjC++
+Generate code to check exception specifications
fenum-int-equiv
C++ ObjC++
C ObjC C++ ObjC++ Joined RejectNegative
-fexec-charset=<cset> Convert all strings and character constants to character set <cset>
+finput-charset=
+C ObjC C++ ObjC++ Joined RejectNegative
+-finput-charset=<cset> Specify the default character set for source files.
+
+
fexternal-templates
C++ ObjC++
ffor-scope
C++ ObjC++
+Scope of for-init-statement variables is local to the loop
ffreestanding
C ObjC
fgnu-keywords
C++ ObjC++
+Recognize GNU-defined keywords
fgnu-runtime
ObjC ObjC++
+Generate code for GNU runtime environment
fguiding-decls
C++ ObjC++
fhuge-objects
C++ ObjC++
+Enable support for huge objects
fimplement-inlines
C++ ObjC++
+Export functions even if they can be inlined
fimplicit-inline-templates
C++ ObjC++
+Emit implicit instantiations of inline templates
fimplicit-templates
C++ ObjC++
+Emit implicit instantiations of templates
flabels-ok
C++ ObjC++
fms-extensions
C ObjC C++ ObjC++
+Don't warn about uses of Microsoft extensions
fname-mangling-version-
C++ ObjC++ Joined
fnext-runtime
ObjC ObjC++
+Generate code for NeXT (Apple Mac OS X) runtime environment
+
+fnil-receivers
+ObjC ObjC++
+Assume that receivers of Objective-C messages may be nil
fnonansi-builtins
C++ ObjC++
fnonnull-objects
C++ ObjC++
+fobjc-exceptions
+ObjC ObjC++
+Enable Objective-C exception and synchronization syntax
+
foperator-names
C++ ObjC++
+Recognize C++ kewords like \"compl\" and \"xor\"
foptional-diags
C++ ObjC++
+Enable optional diagnostics
fpch-deps
C ObjC C++ ObjC++
fpermissive
C++ ObjC++
+Downgrade conformance errors to warnings
fpreprocessed
C ObjC C++ ObjC++
Treat the input file as already preprocessed
+freplace-objc-classes
+ObjC ObjC++
+Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
+
frepo
C++ ObjC++
+Enable automatic template instantiation
frtti
C++ ObjC++
+Generate run time type descriptor information
fshort-double
C ObjC C++ ObjC++
fstats
C++ ObjC++
+Display statistics accumulated during compilation
fstrict-prototype
C++ ObjC++
ftemplate-depth-
C++ ObjC++ Joined RejectNegative UInteger
+-ftemplate-depth-<number> Specify maximum template instantiation depth
fthis-is-variable
C++ ObjC++
fuse-cxa-atexit
C++ ObjC++
+Use __cxa_atexit to register destructors
fvtable-gc
C++ ObjC++
+Discard unused virtual functions
fvtable-thunks
C++ ObjC++
+Implement vtables using thunks
fweak
C++ ObjC++
+Emit common-like symbols as weak symbols
fwide-exec-charset=
C ObjC C++ ObjC++ Joined RejectNegative
-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
+fworking-directory
+C ObjC C++ ObjC++
+Generate a #line directive pointing at the current working directory
+
fxref
C++ ObjC++
+Emit cross referencing information
+
+fzero-link
+ObjC ObjC++
+Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
gen-decls
ObjC ObjC++
+Dump declarations to a .decl file
idirafter
C ObjC C++ ObjC++ Joined Separate
-iwithprefixbefore <dir> Add <dir> to the end of the main include path
lang-asm
-C
-For internal use only
+C Undocumented
lang-objc
-C ObjC C++ ObjC++
-For internal use only
+C ObjC C++ ObjC++ Undocumented
nostdinc
C ObjC C++ ObjC++
print-objc-runtime-info
ObjC ObjC++
+Generate C header of platform-specific features
remap
C ObjC C++ ObjC++