*** Evolution of Command Line options of different C++ compilers ***[ Abstract ]
Technical details on Evolution of Command Line options of different C++ compilers, more than 10, will be provided.
VS2010EE 32-bit Options
C/C++ COMPILER OPTIONS
-OPTIMIZATION-
/O1 minimize space /O2 maximize speed
/Ob inline expansion (default n=0) /Od disable optimizations (default)
/Og enable global optimization /Oi[-] enable intrinsic functions
/Os favor code space /Ot favor code speed
/Ox maximum optimizations /Oy[-] enable frame pointer omission
-CODE GENERATION-
/GF enable read-only string pooling /Gm[-] enable minimal rebuild
/Gy[-] separate functions for linker /GS[-] enable security checks
/GR[-] enable C++ RTTI /GX[-] enable C++ EH (same as /EHsc)
/EHs enable C++ EH (no SEH exceptions) /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow
/fp: choose floating-point model:
except[-] - consider floating-point exceptions when generating code
fast - "fast" floating-point model; results are less predictable
precise - "precise" floating-point model; results are predictable
strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/GL[-] enable link-time code generation /GA optimize for Windows Application
/Ge force stack checking for all funcs /Gs[num] control stack checking calls
/Gh enable _penter function call /GH enable _pexit function call
/GT generate fiber-safe TLS accesses /RTC1 Enable fast checks (/RTCsu)
/RTCc Convert to smaller type checks /RTCs Stack Frame runtime checking
/RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
pure - produce IL-only output file (no native executable code)
safe - produce IL-only verifiable output file
oldSyntax - accept the Managed Extensions syntax from Visual C++ 2002/2003
initialAppDomain - enable initial AppDomain behavior of Visual C++ 2002
noAssembly - do not produce an assembly
/Gd __cdecl calling convention /Gr __fastcall calling convention
/Gz __stdcall calling convention /GZ Enable stack checks (/RTCs)
/QIfist[-] use FIST instead of ftol()
/hotpatch ensure function padding for hotpatchable images
/arch: minimum CPU architecture requirements, one of:
SSE - enable use of instructions available with SSE enabled CPUs
SSE2 - enable use of instructions available with SSE2 enabled CPUs
AVX - enable use of Intel(R) Advanced Vector Extensions instructions
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
/Qsafe_fp_loads generate safe FP loads
-OUTPUT FILES-
/Fa[file] name assembly listing file /FA[scu] configure assembly listing
/Fd[file] name .PDB file /Fe name executable file
/Fm[file] name map file /Fo name object file
/Fp name precompiled header file /Fr[file] name source browser file
/FR[file] name extended .SBR file /Fi[file] name preprocessed file
/doc[file] process XML documentation comments and optionally name the .xdc file
-PREPROCESSOR-
/AI add to assembly search path /FU forced using assembly/module
/C don't strip comments /D{=|#} define macro
/E preprocess to stdout /EP preprocess to stdout, no #line
/P preprocess to file /Fx merge injected code to file
/FI name forced include file /U remove predefined macro
/u remove all predefined macros /I add to include search path
/X ignore "standard places"
-LANGUAGE-
/Zi enable debugging information /Z7 enable old-style debug info
/Zp pack structs on n-byte boundary /Za disable extensions
/Ze enable extensions (default) /Zl omit default library name in .OBJ
/Zg generate function prototypes /Zs syntax check only
/vd{0|1|2} disable/enable vtordisp /vm type of pointers to members
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
forScope[-] - enforce Standard C++ for scoping rules
wchar_t[-] - wchar_t is the native type, not a typedef
auto[-] - enforce the new Standard C++ meaning for auto
trigraphs[-] - enable trigraphs (off by default)
/ZI enable Edit and Continue debug info
/openmp enable OpenMP 2.0 language extensions
-MISCELLANEOUS-
@ options response file /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/errorReport:option Report internal compiler errors to Microsoft
none - do not send report
prompt - prompt to immediately send report
queue - at next admin logon, prompt to send report (default)
send - send report automatically
/FC use full pathnames in diagnostics /H max external name length
/J default char type is unsigned
/MP use up to 'n' processes for compilation
/nologo suppress copyright message /showIncludes show include file names
/Tc
VS2012EE 32-bit Options
C/C++ COMPILER OPTIONS
-OPTIMIZATION-
/O1 minimize space /O2 maximize speed
/Ob inline expansion (default n=0) /Od disable optimizations (default)
/Og enable global optimization /Oi[-] enable intrinsic functions
/Os favor code space /Ot favor code speed
/Ox maximum optimizations /Oy[-] enable frame pointer omission
/favor: select processor to optimize for, one of:
blend - a combination of optimizations for several different x86 processors
ATOM - Intel(R) Atom(TM) processors
-CODE GENERATION-
/GF enable read-only string pooling /Gm[-] enable minimal rebuild
/Gy[-] separate functions for linker /GS[-] enable security checks
/GR[-] enable C++ RTTI /GX[-] enable C++ EH (same as /EHsc)
/EHs enable C++ EH (no SEH exceptions) /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow
/fp: choose floating-point model:
except[-] - consider floating-point exceptions when generating code
fast - "fast" floating-point model; results are less predictable
precise - "precise" floating-point model; results are predictable
strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation
/volatile: choose volatile model:
iso - Acquire/release semantics not guaranteed on volatile accesses
ms - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application /Ge force stack checking for all funcs
/Gs[num] control stack checking calls /Gh enable _penter function call
/GH enable _pexit function call /GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu) /RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking /RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
pure - produce IL-only output file (no native executable code)
safe - produce IL-only verifiable output file
oldSyntax - accept the Managed Extensions syntax from Visual C++ 2002/2003
initialAppDomain - enable initial AppDomain behavior of Visual C++ 2002
noAssembly - do not produce an assembly
nostdlib - ignore the default \clr directory
/Gd __cdecl calling convention /Gr __fastcall calling convention
/Gz __stdcall calling convention /GZ Enable stack checks (/RTCs)
/QIfist[-] use FIST instead of ftol()
/hotpatch ensure function padding for hotpatchable images
/arch: minimum CPU architecture requirements, one of:
IA32 - use no enhanced instructions and use x87 for floating point
SSE - enable use of instructions available with SSE enabled CPUs
SSE2 - (default) enable use of instructions available with SSE2 enabled CPUs
AVX - enable use of Intel(R) Advanced Vector Extensions instructions
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
/Qsafe_fp_loads generate safe FP loads
-OUTPUT FILES-
/Fa[file] name assembly listing file /FA[scu] configure assembly listing
/Fd[file] name .PDB file /Fe name executable file
/Fm[file] name map file /Fo name object file
/Fp name precompiled header file /Fr[file] name source browser file
/FR[file] name extended .SBR file /Fi[file] name preprocessed file
/doc[file] process XML documentation comments and optionally name the .xdc file
-PREPROCESSOR-
/AI add to assembly search path /FU forced using assembly/module
/C don't strip comments /D{=|#} define macro
/E preprocess to stdout /EP preprocess to stdout, no #line
/P preprocess to file /Fx merge injected code to file
/FI name forced include file /U remove predefined macro
/u remove all predefined macros /I add to include search path
/X ignore "standard places"
-LANGUAGE-
/Zi enable debugging information /Z7 enable old-style debug info
/Zp pack structs on n-byte boundary /Za disable extensions
/Ze enable extensions (default) /Zl omit default library name in .OBJ
/Zg generate function prototypes /Zs syntax check only
/vd{0|1|2} disable/enable vtordisp /vm type of pointers to members
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
forScope[-] - enforce Standard C++ for scoping rules
wchar_t[-] - wchar_t is the native type, not a typedef
auto[-] - enforce the new Standard C++ meaning for auto
trigraphs[-] - enable trigraphs (off by default)
/ZW enable WinRT language extensions /ZI enable Edit and Continue debug info
/openmp enable OpenMP 2.0 language extensions
-MISCELLANEOUS-
@ options response file /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/errorReport:option Report internal compiler errors to Microsoft
none - do not send report
prompt - prompt to immediately send report
queue - at next admin logon, prompt to send report (default)
send - send report automatically
/FC use full pathnames in diagnostics /H max external name length
/J default char type is unsigned
/MP use up to 'n' processes for compilation
/nologo suppress copyright message
/sdl enable additional security features and warnings
/showIncludes show include file names /Tc compile file as .c
/Tp compile file as .cpp /TC compile all files as .c
/TP compile all files as .cpp /V set version string
/w disable all warnings /wd disable warning n
/we treat warning n as an error /wo issue warning n once
/w set warning level 1-4 for n /W set warning level (default n=1)
/Wall enable all warnings /WL enable one line diagnostics
/WX treat warnings as errors /Yc[file] create .PCH file
/Yd put debug info in every .OBJ /Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file /Y- disable all PCH options
/Zm max memory alloc (% of default) /Wp64 enable 64 bit porting warnings
-LINKING-
/LD Create .DLL /LDd Create .DLL debug library
/LN Create a .netmodule /F set stack size
/link [linker options and libraries] /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib
-CODE ANALYSIS-
/analyze[:WX-] enable code analysis
WX- - code analysis warnings should not be treated as errors even if /WX is invoked
VS2012EE 64-bit Options
C/C++ COMPILER OPTIONS
-OPTIMIZATION-
/O1 minimize space /O2 maximize speed
/Ob inline expansion (default n=0) /Od disable optimizations (default)
/Og enable global optimization /Oi[-] enable intrinsic functions
/Os favor code space /Ot favor code speed
/Ox maximum optimizations
/favor: select processor to optimize for, one of:
blend - a combination of optimizations for several different x64 processors
AMD64 - 64-bit AMD processors
INTEL64 - Intel(R)64 architecture processors
ATOM - Intel(R) Atom(TM) processors
-CODE GENERATION-
/GF enable read-only string pooling /Gm[-] enable minimal rebuild
/Gy[-] separate functions for linker /GS[-] enable security checks
/GR[-] enable C++ RTTI /GX[-] enable C++ EH (same as /EHsc)
/EHs enable C++ EH (no SEH exceptions) /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow
/fp: choose floating-point model:
except[-] - consider floating-point exceptions when generating code
fast - "fast" floating-point model; results are less predictable
precise - "precise" floating-point model; results are predictable
strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation
/volatile: choose volatile model:
iso - Acquire/release semantics not guaranteed on volatile accesses
ms - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application /Ge force stack checking for all funcs
/Gs[num] control stack checking calls /Gh enable _penter function call
/GH enable _pexit function call /GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu) /RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking /RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
pure - produce IL-only output file (no native executable code)
safe - produce IL-only verifiable output file
oldSyntax - accept the Managed Extensions syntax from Visual C++ 2002/2003
initialAppDomain - enable initial AppDomain behavior of Visual C++ 2002
noAssembly - do not produce an assembly
nostdlib - ignore the default \clr directory
/homeparams Force parameters passed in registers to be written to the stack
/GZ Enable stack checks (/RTCs)
/arch:AVX enable use of Intel(R) Advanced Vector Extensions instructions
-OUTPUT FILES-
/Fa[file] name assembly listing file /FA[scu] configure assembly listing
/Fd[file] name .PDB file /Fe name executable file
/Fm[file] name map file /Fo name object file
/Fp name precompiled header file /Fr[file] name source browser file
/FR[file] name extended .SBR file /Fi[file] name preprocessed file
/doc[file] process XML documentation comments and optionally name the .xdc file
-PREPROCESSOR-
/AI add to assembly search path /FU forced using assembly/module
/C don't strip comments /D{=|#} define macro
/E preprocess to stdout /EP preprocess to stdout, no #line
/P preprocess to file /Fx merge injected code to file
/FI name forced include file /U remove predefined macro
/u remove all predefined macros /I add to include search path
/X ignore "standard places"
-LANGUAGE-
/Zi enable debugging information /Z7 enable old-style debug info
/Zp pack structs on n-byte boundary /Za disable extensions
/Ze enable extensions (default) /Zl omit default library name in .OBJ
/Zg generate function prototypes /Zs syntax check only
/vd{0|1|2} disable/enable vtordisp /vm type of pointers to members
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
forScope[-] - enforce Standard C++ for scoping rules
wchar_t[-] - wchar_t is the native type, not a typedef
auto[-] - enforce the new Standard C++ meaning for auto
trigraphs[-] - enable trigraphs (off by default)
/ZW enable WinRT language extensions
/openmp enable OpenMP 2.0 language extensions
-MISCELLANEOUS-
@ options response file /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/errorReport:option Report internal compiler errors to Microsoft
none - do not send report
prompt - prompt to immediately send report
queue - at next admin logon, prompt to send report (default)
send - send report automatically
/FC use full pathnames in diagnostics /H max external name length
/J default char type is unsigned
/MP use up to 'n' processes for compilation
/nologo suppress copyright message
/sdl enable additional security features and warnings
/showIncludes show include file names /Tc compile file as .c
/Tp compile file as .cpp /TC compile all files as .c
/TP compile all files as .cpp /V set version string
/w disable all warnings /wd disable warning n
/we treat warning n as an error /wo issue warning n once
/w set warning level 1-4 for n /W set warning level (default n=1)
/Wall enable all warnings /WL enable one line diagnostics
/WX treat warnings as errors /Yc[file] create .PCH file
/Yd put debug info in every .OBJ /Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file /Y- disable all PCH options
/Zm max memory alloc (% of default) /Wp64 enable 64 bit porting warnings
-LINKING-
/LD Create .DLL /LDd Create .DLL debug library
/LN Create a .netmodule /F set stack size
/link [linker options and libraries] /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib
Next series of posts will be for MinGW C++ compiler. Since that C++ compiler has hundreds of options I've created some groups of options and it will be easier to compare options of version x.x.x vs. options of version y.y.y.
MinGW v3.4.2 32-bit Options - Group 2
The --param option recognizes the following as parameters:
max-inline-insns-single The maximum number of instructions in a single
function eligible for inlining
max-inline-insns-auto The maximum number of instructions when
automatically inlining
max-inline-insns-rtl The maximum number of instructions for the RTL
inliner
max-delay-slot-insn-search The maximum number of instructions to consider to
fill a delay slot
max-delay-slot-live-search The maximum number of instructions to consider to
find accurate live register information
max-pending-list-length The maximum length of scheduling's pending
operations list
large-function-insns The size of function body to be considered large
large-function-growth Maximal growth due to inlining of large function
(in percent)
inline-unit-growth how much can given compilation unit grow because
of the inlining (in percent)
max-gcse-memory The maximum amount of memory to be allocated by
GCSE
max-gcse-passes The maximum number of passes to make when doing
GCSE
max-unrolled-insns The maximum number of instructions to consider to
unroll in a loop
max-average-unrolled-insns The maximum number of instructions to consider to
unroll in a loop on average
max-unroll-times The maximum number of unrollings of a single loop
max-peeled-insns The maximum number of insns of a peeled loop
max-peel-times The maximum number of peelings of a single loop
max-completely-peeled-insns The maximum number of insns of a completely
peeled loop
max-completely-peel-times The maximum number of peelings of a single loop
that is peeled completely
max-once-peeled-insns The maximum number of insns of a peeled loop that
rolls only once
max-unswitch-insns The maximum number of insns of an unswitched loop
max-unswitch-level The maximum number of unswitchings in a single
loop
hot-bb-count-fraction Select fraction of the maximal count of
repetitions of basic block in program given basic
block needs to have to be considered hot
hot-bb-frequency-fraction Select fraction of the maximal frequency of
executions of basic block in function given basic
block needs to have to be considered hot
tracer-dynamic-coverage-feedback The percentage of function, weighted by
execution frequency, that must be covered by
trace formation. Used when profile feedback is
available
tracer-dynamic-coverage The percentage of function, weighted by execution
frequency, that must be covered by trace
formation. Used when profile feedback is not
available
tracer-max-code-growth Maximal code growth caused by tail duplication
(in percent)
tracer-min-branch-ratio Stop reverse growth if the reverse probability of
best edge is less than this threshold (in percent)
tracer-min-branch-probability-feedback Stop forward growth if the probability
of best edge is less than this threshold (in
percent). Used when profile feedback is available
tracer-min-branch-probability Stop forward growth if the probability of best
edge is less than this threshold (in percent).
Used when profile feedback is not available
max-crossjump-edges The maximum number of incoming edges to consider
for crossjumping
max-cse-path-length The maximum length of path considered in cse
max-cselib-memory-locations The maximum memory locations recorded by cselib
ggc-min-expand Minimum heap expansion to trigger garbage
collection, as a percentage of the total size of
the heap
ggc-min-heapsize Minimum heap size before we start collecting
garbage, in kilobytes
max-reload-search-insns The maximum number of instructions to search
backward when looking for equivalent reload
The Ada front end recognizes the following options:
-I This switch lacks documentation
-Wall This switch lacks documentation
-Wlong-long Do not warn about using "long long" when -pedantic
-Wmissing-prototypes Warn about global functions without prototypes
-Wstrict-prototypes Warn about unprototyped function declarations
-Wwrite-strings Give strings the type "array of char"
-fRTS This switch lacks documentation
-gnat Specify options to GNAT
-nostdinc Do not search standard system include directories
(those specified with -isystem will still be used)
-nostdlib This switch lacks documentation
MinGW v3.4.2 32-bit Options - Group 3
The C front end recognizes the following options:
-I, -Wall, -Wlong-long, -Wmissing-prototypes, -Wstrict-prototypes,
-Wwrite-strings, -nostdinc
--output-pch= This switch lacks documentation
-A= Assert the to . Putting '-'
before disables the to
-C Do not discard comments
-CC Do not discard comments in macro expansions
-D[=] Define a with as its value. If
just is given, is taken to be 1
-H Print the name of header files as they are used
-M This switch lacks documentation
-MD Generate make dependencies and compile
-MF This switch lacks documentation
-MG Treat missing header files as generated files
-MM This switch lacks documentation
-MMD Like -MD but ignore system header files
-MP This switch lacks documentation
-MQ Add a MAKE-quoted target
-MT This switch lacks documentation
-P Do not generate #line directives
-U Undefine
-Wbad-function-cast Warn about casting functions to incompatible types
-Wcast-qual Warn about casts which discard qualifiers
-Wchar-subscripts Warn about subscripts whose type is "char"
-Wcomment This switch lacks documentation
-Wcomments This switch lacks documentation
-Wconversion Warn about possibly confusing type conversions
-Wdeclaration-after-statement Warn when a declaration is found after a
statement
-Wdiv-by-zero Warn about compile-time integer division by zero
-Wendif-labels Warn about stray tokens after #elif and #endif
-Werror-implicit-function-declaration Make implicit function declarations an
error
-Wfloat-equal Warn if testing floating point numbers for
equality
-Wformat Warn about printf/scanf/strftime/strfmon format
string anomalies
-Wformat-extra-args Warn if passing too many arguments to a function
for its format string
-Wformat-nonliteral Warn about format strings that are not literals
-Wformat-security Warn about possible security problems with format
functions
-Wformat-y2k Warn about strftime formats yielding 2-digit years
-Wformat-zero-length This switch lacks documentation
-Wformat= This switch lacks documentation
-Wimplicit This switch lacks documentation
-Wimplicit-function-declaration Warn about implicit function declarations
-Wimplicit-int Warn when a declaration does not specify a type
-Wimport This switch lacks documentation
-Winit-self Warn about variables which are initialized to
themselves.
-Winvalid-pch Warn about PCH files that are found but not used
-Wmain Warn about suspicious declarations of "main"
-Wmissing-braces Warn about possibly missing braces around
initializers
-Wmissing-declarations Warn about global functions without previous
declarations
-Wmissing-format-attribute Warn about functions which might be candidates
for format attributes
-Wmultichar Warn about use of multi-character character
constants
-Wnested-externs Warn about "extern" declarations not at file scope
-Wnonnull This switch lacks documentation
-Wold-style-definition Warn if an old-style parameter definition is used
-Wparentheses Warn about possibly missing parentheses
-Wpointer-arith Warn about function pointer arithmetic
-Wredundant-decls Warn about multiple declarations of the same
object
-Wreturn-type Warn whenever a function's return type defaults
to "int" (C), or about inconsistent return types
(C++)
-Wsequence-point Warn about possible violations of sequence point
rules
-Wsign-compare Warn about signed-unsigned comparisons
-Wtraditional Warn about features not present in traditional C
-Wtrigraphs This switch lacks documentation
-Wundef Warn if an undefined macro is used in an #if
directive
-Wunknown-pragmas Warn about unrecognized pragmas
-Wunused-macros Warn about macros defined in the main file that
are not used
-ansi A synonym for -std=c89. In a future version of
GCC it will become synonymous with -std=c99
instead
-fasm Recognize the "asm" keyword
-fbuiltin Recognize built-in functions
-fbuiltin- This switch lacks documentation
-fcond-mismatch Allow the arguments of the '?' operator to have
different types
-fdollars-in-identifiers Permit '$' as an identifier character
-fdump- This switch lacks documentation
-fexec-charset= Convert all strings and character constants to
character set
-ffixed-form This switch lacks documentation
ffixed-line-length- Set the maximum line length to
-ffreestanding Do not assume that standard C libraries and
"main" exist
-fhosted Assume normal C execution environment
-finput-charset= -finput-charset= Specify the default
character set for source files.
-fms-extensions Don't warn about uses of Microsoft extensions
-fpch-deps This switch lacks documentation
-fpreprocessed This switch lacks documentation
-fshort-double Use the same size for double as for float
-fshort-enums Use the narrowest integer type possible for
enumeration types
-fshort-wchar Force the underlying type for "wchar_t" to be
"unsigned short"
-fshow-column This switch lacks documentation
-fsigned-bitfields When "signed" or "unsigned" is not given make the
bitfield signed
-fsigned-char Make "char" signed by default
-ftabstop= Distance between tab stops for column reporting
-funsigned-bitfields When "signed" or "unsigned" is not given make the
bitfield unsigned
-funsigned-char Make "char" unsigned by default
-fwide-exec-charset= Convert all wide strings and character constants
to character set
-fworking-directory Generate a #line directive pointing at the
current working directory
-idirafter Add to the end of the system include path
-imacros Accept definition of macros in
-include Include the contents of before other files
-iprefix Specify as a prefix for next two options
-isysroot Set to be the system root directory
-isystem Add to the start of the system include path
-iwithprefix Add to the end of the system include path
-iwithprefixbefore Add to the end of the main include path
-remap Remap file names when including files
-std=c89 Conform to the ISO 1990 C standard
-std=c99 Conform to the ISO 1999 C standard
-std=c9x Deprecated in favor of -std=c99
-std=gnu89 Conform to the ISO 1990 C standard with GNU
extensions
-std=gnu99 Conform to the ISO 1999 C standard with GNU
extensions
-std=gnu9x Deprecated in favor of -std=gnu99
-std=iso9899:1990 Deprecated in favor of -std=c89
-std=iso9899:199409 Conform to the ISO 1990 C standard as amended in
1994
-std=iso9899:1999 Deprecated in favor of -std=c99
-std=iso9899:199x Deprecated in favor of -std=c99
-traditional-cpp Enable traditional preprocessing
-trigraphs Support ISO C trigraphs
-undef Do not predefine system-specific and GCC-specific
macros
-v Enable verbose output
MinGW v3.4.2 32-bit Options - Group 4
The C++ front end recognizes the following options:
--output-pch=, -A, -C, -CC, -D, -H, -I, -M, -MD, -MF, -MG, -MM, -MMD, -MP, -MQ,
-MT, -P, -U, -Wall, -Wcast-qual, -Wchar-subscripts, -Wcomment, -Wcomments,
-Wconversion, -Wendif-labels, -Wfloat-equal, -Wformat, -Wformat-extra-args,
-Wformat-nonliteral, -Wformat-security, -Wformat-y2k, -Wformat=, -Wimplicit,
-Wimport, -Winit-self, -Winvalid-pch, -Wlong-long, -Wmissing-braces,
-Wmissing-format-attribute, -Wmultichar, -Wparentheses, -Wpointer-arith,
-Wredundant-decls, -Wreturn-type, -Wsign-compare, -Wtrigraphs, -Wundef,
-Wunknown-pragmas, -Wunused-macros, -Wwrite-strings, -ansi, -fasm, -fbuiltin,
-fbuiltin-, -fcond-mismatch, -fdollars-in-identifiers, -fdump-,
-fexec-charset=, -finput-charset=, -fms-extensions, -fpch-deps, -fpreprocessed,
-fshort-double, -fshort-enums, -fshort-wchar, -fshow-column,
-fsigned-bitfields, -fsigned-char, -ftabstop=, -funsigned-bitfields,
-funsigned-char, -fwide-exec-charset=, -fworking-directory, -idirafter,
-imacros, -include, -iprefix, -isysroot, -isystem, -iwithprefix,
-iwithprefixbefore, -nostdinc, -remap, -traditional-cpp, -trigraphs, -undef,
-v
-Wabi This switch lacks documentation
-Wctor-dtor-privacy Warn when all constructors and destructors are
private
-Wdeprecated Warn if deprecated class, method, or field is used
-Weffc++ Warn about violations of Effective C++ style rules
-Winvalid-offsetof Warn about invalid uses of the "offsetof" macro
-Wnon-template-friend Warn when non-templatized friend functions are
declared within a template
-Wnon-virtual-dtor Warn about non-virtual destructors
-Wold-style-cast Warn if a C-style cast is used in a program
-Woverloaded-virtual Warn about overloaded virtual function names
-Wpmf-conversions Warn when converting the type of pointers to
member functions
-Wreorder Warn when the compiler reorders code
-Wsign-promo Warn when overload promotes from unsigned to
signed
-Wsynth Warn when synthesis behavior differs from Cfront
-faccess-control Enforce class member access control semantics
-fall-virtual This switch lacks documentation
-falt-external-templates Change when template instances are emitted
-fcheck-new Check the return value of new
-fconserve-space Reduce the size of object files
-fconst-strings Make string literals "const char[]" not "char[]"
-fdefault-inline Inline member functions by default
-felide-constructors This switch lacks documentation
-fenforce-eh-specs Generate code to check exception specifications
-fenum-int-equiv This switch lacks documentation
-fexternal-templates This switch lacks documentation
-ffor-scope Scope of for-init-statement variables is local to
the loop
-fgnu-keywords Recognize GNU-defined keywords
-fguiding-decls This switch lacks documentation
-fhandle-exceptions This switch lacks documentation
-fhonor-std This switch lacks documentation
-fhuge-objects Enable support for huge objects
-fimplement-inlines Export functions even if they can be inlined
-fimplicit-inline-templates Emit implicit instantiations of inline templates
-fimplicit-templates Emit implicit instantiations of templates
-flabels-ok This switch lacks documentation
-fname-mangling-version- This switch lacks documentation
-fnew-abi This switch lacks documentation
-fnonansi-builtins This switch lacks documentation
-fnonnull-objects This switch lacks documentation
-foperator-names Recognize C++ kewords like "compl" and "xor"
-foptional-diags Enable optional diagnostics
-fpermissive Downgrade conformance errors to warnings
-frepo Enable automatic template instantiation
-frtti Generate run time type descriptor information
-fsquangle This switch lacks documentation
-fstats Display statistics accumulated during compilation
-fstrict-prototype This switch lacks documentation
-ftemplate-depth- Specify maximum template instantiation depth
-fthis-is-variable This switch lacks documentation
-fuse-cxa-atexit Use __cxa_atexit to register destructors
-fvtable-gc Discard unused virtual functions
-fvtable-thunks Implement vtables using thunks
-fweak Emit common-like symbols as weak symbols
-fxref Emit cross referencing information
-nostdinc++ Do not search standard system include directories
for C++
-std=c++98 Conform to the ISO 1998 C++ standard
-std=gnu++98 Conform to the ISO 1998 C++ standard with GNU
extensions
MinGW v3.4.2 32-bit Options - Group 5
The F77 front end recognizes the following options:
-I, -Wall, -Wcomment, -Wcomments, -Wimplicit, -Wimport, -Wtrigraphs,
-ffixed-form, -ffixed-line-length-, -fpreprocessed
-Wglobals Enable warnings about inter-procedural problems
-Wsurprising Warn about constructs with surprising meanings
-fautomatic Do not treat local variables and COMMON blocks as
if they were named in SAVE statements
-fbackslash Backslashes in character and hollerith constants
are special (not C-style)
-fbadu77-intrinsics-delete Delete libU77 intrinsics with bad interfaces
-fbadu77-intrinsics-disable Disable libU77 intrinsics with bad interfaces
-fbadu77-intrinsics-enable Enable libU77 intrinsics with bad interfaces
-fbadu77-intrinsics-hide Hide libU77 intrinsics with bad interfaces
-fcase-initcap Program written in strict mixed-case
-fcase-lower Compile as if program written in lowercase
-fcase-preserve Preserve case used in program
-fcase-strict-lower Program written in lowercase
-fcase-strict-upper Program written in uppercase
-fcase-upper Compile as if program written in uppercase
-fdebug-kludge Emit special debugging information for COMMON and
EQUIVALENCE (disabled)
-fdollar-ok Allow '$' in symbol names
-femulate-complex Have front end emulate COMPLEX arithmetic to
avoid bugs
-ff2c f2c-compatible code can be generated
-ff2c-intrinsics-delete Delete non-FORTRAN-77 intrinsics f2c supports
-ff2c-intrinsics-disable Disable non-FORTRAN-77 intrinsics f2c supports
-ff2c-intrinsics-enable Enable non-FORTRAN-77 intrinsics f2c supports
-ff2c-intrinsics-hide Hide non-FORTRAN-77 intrinsics f2c supports
-ff2c-library Unsupported; generate libf2c-calling code
-ff66 Program is written in typical FORTRAN 66 dialect
-ff77 Program is written in typical Unix-f77 dialect
-ff90 Program is written in Fortran-90-ish dialect
-ff90-intrinsics-delete Delete non-FORTRAN-77 intrinsics F90 supports
-ff90-intrinsics-disable Disable non-FORTRAN-77 intrinsics F90 supports
-ff90-intrinsics-enable Enable non-FORTRAN-77 intrinsics F90 supports
-ff90-intrinsics-hide Hide non-FORTRAN-77 intrinsics F90 supports
-ff90-not-vxt This switch lacks documentation
-fflatten-arrays Unsupported; affects code generation of arrays
-ffortran-bounds-check Generate code to check subscript and substring
bounds
-ffree-form Program is written in Fortran-90-ish free form
-fglobals Enable fatal diagnostics about inter-procedural
problems
-fgnu-intrinsics-delete Delete non-FORTRAN-77 intrinsics g77 supports
-fgnu-intrinsics-disable Disable non-FORTRAN 77 intrinsics F90 supports
-fgnu-intrinsics-enable Enable non-FORTRAN 77 intrinsics F90 supports
-fgnu-intrinsics-hide Hide non-FORTRAN 77 intrinsics F90 supports
-finit-local-zero Initialize local vars and arrays to zero
-fintrin-case-any Intrinsics letters in arbitrary cases
-fintrin-case-initcap Intrinsics spelled as e.g. SqRt
-fintrin-case-lower Intrinsics in lowercase
-fintrin-case-upper Intrinsics in uppercase
-fmatch-case-any Language keyword letters in arbitrary cases
-fmatch-case-initcap Language keywords spelled as e.g. IOStat
-fmatch-case-lower Language keywords in lowercase
-fmatch-case-upper Language keywords in uppercase
-fmil-intrinsics-delete Delete MIL-STD 1753 intrinsics
-fmil-intrinsics-disable Disable MIL-STD 1753 intrinsics
-fmil-intrinsics-enable Enable MIL-STD 1753 intrinsics
-fmil-intrinsics-hide Hide MIL-STD 1753 intrinsics
-fonetrip Take at least one trip through each iterative DO
loop
-fpedantic Warn about use of (only a few for now) Fortran
extensions
-fsecond-underscore Allow appending a second underscore to externals
-fsilent Do not print names of program units as they are
compiled
-fsource-case-lower Internally convert most source to lowercase
-fsource-case-preserve Internally preserve source case
-fsource-case-upper Internally convert most source to uppercase
-fsymbol-case-any This switch lacks documentation
-fsymbol-case-initcap Symbol names spelled in mixed case
-fsymbol-case-lower Symbol names in lowercase
-fsymbol-case-upper Symbol names in uppercase
-ftypeless-boz Make prefix-radix non-decimal constants be
typeless
-fugly Allow all ugly features
-fugly-args Hollerith and typeless can be passed as arguments
-fugly-assign Allow ordinary copying of ASSIGN'ed vars
-fugly-assumed Dummy array dimensioned to (1) is assumed-size
-fugly-comma Trailing comma in procedure call denotes null
argument
-fugly-complex Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z
-fugly-init Initialization via DATA and PARAMETER is not type-
compatible
-fugly-logint Allow INTEGER and LOGICAL interchangeability
-funderscoring Append underscores to externals
-funix-intrinsics-delete Delete libU77 intrinsics
-funix-intrinsics-disable Disable libU77 intrinsics
-funix-intrinsics-enable Enable libU77 intrinsics
-funix-intrinsics-hide Hide libU77 intrinsics
-fversion Print g77-specific version information and run
internal tests
-fvxt Program is written in VXT (Digital-like) FORTRAN
-fvxt-intrinsics-delete Delete non-FORTRAN-77 intrinsics VXT FORTRAN
supports
-fvxt-intrinsics-disable Disable non-FORTRAN-77 intrinsics VXT FORTRAN
supports
-fvxt-intrinsics-enable Enable non-FORTRAN-77 intrinsics VXT FORTRAN
supports
-fvxt-intrinsics-hide Hide non-FORTRAN-77 intrinsics VXT FORTRAN
supports
-fvxt-not-f90 This switch lacks documentation
-fxyzzy Print internal debugging-related information
-fzeros Treat initial values of 0 like non-zero values
MinGW v3.4.2 32-bit Options - Group 6
The Java front end recognizes the following options:
-I, -M, -MF, -MM, -MP, -MT, -Wall, -Wdeprecated, -fdump-
-Wextraneous-semicolon Warn if deprecated empty statements are found
-Wout-of-date Warn if .class files are out of date
-Wredundant-modifiers Warn if modifiers are specified when not necessary
--CLASSPATH Deprecated; use --classpath instead
-fassert This switch lacks documentation
-fassume-compiled This switch lacks documentation
-fassume-compiled= This switch lacks documentation
--bootclasspath= Replace system path
-fcheck-references This switch lacks documentation
--classpath= Set class path
-fcompile-resource= This switch lacks documentation
-femit-class-file This switch lacks documentation
-femit-class-files This switch lacks documentation
--encoding= Choose input encoding (defaults from your locale)
-fextdirs= This switch lacks documentation
-ffilelist-file This switch lacks documentation
-fforce-classes-archive-check Always check for non gcj generated classes
archives
-fhash-synchronization This switch lacks documentation
-findirect-dispatch Use offset tables for virtual method calls
-fjni Assume native functions are implemented using JNI
-foptimize-static-class-initialization Enable optimization of static class
initialization code
-foutput-class-dir= This switch lacks documentation
-fstore-check Enable assignability checks for stores into
object arrays
-fuse-boehm-gc This switch lacks documentation
-fuse-divide-subroutine This switch lacks documentation
MinGW v3.4.2 32-bit Options - Group 9
Target specific options:
-mthreads Use Mingw-specific thread support
-mnop-fun-dllimport Ignore dllimport for functions
-mdll Generate code for a DLL
-mconsole Create console application
-mwin32 Set Windows defines
-mno-win32 Don't set Windows defines
-mwindows Create GUI application
-mno-cygwin Use the Mingw32 interface
-mcygwin Use the Cygwin interface
-mno-tls-direct-seg-refs Do not use direct references against %gs when accessing tls data
-mtls-direct-seg-refs Use direct references against %gs when accessing tls data
-mno-red-zone Do not use red-zone in the x86-64 code
-mred-zone Use red-zone in the x86-64 code
-mno-ms-bitfields Use gcc default bitfield layout
-mms-bitfields Use native (MS) bitfield layout
-m32 Generate 32bit i386 code
-m64 Generate 64bit x86-64 code
-m96bit-long-double sizeof(long double) is 12
-m128bit-long-double sizeof(long double) is 16
-mno-sse3 Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation
-msse3 Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation
-mno-sse2 Do not support MMX, SSE and SSE2 built-in functions and code generation
-msse2 Support MMX, SSE and SSE2 built-in functions and code generation
-mno-sse Do not support MMX and SSE built-in functions and code generation
-msse Support MMX and SSE built-in functions and code generation
-mno-3dnow Do not support 3DNow! built-in functions
-m3dnow Support 3DNow! built-in functions
-mno-mmx Do not support MMX built-in functions
-mmmx Support MMX built-in functions
-mno-accumulate-outgoing-args Do not use push instructions to save outgoing arguments
-maccumulate-outgoing-args Use push instructions to save outgoing arguments
-mno-push-args Do not use push instructions to save outgoing arguments
-mpush-args Use push instructions to save outgoing arguments
-mno-inline-all-stringops Do not inline all known string operations
-minline-all-stringops Inline all known string operations
-mno-align-stringops Do not align destination of the string operations
-malign-stringops Align destination of the string operations
-mstack-arg-probe Enable stack probing
-momit-leaf-frame-pointer Omit the frame pointer in leaf functions
-mfancy-math-387 Generate sin, cos, sqrt for FPU
-mno-fancy-math-387 Do not generate sin, cos, sqrt for FPU
-mno-fp-ret-in-387 Do not return values of functions in FPU registers
-mfp-ret-in-387 Return values of functions in FPU registers
-mno-ieee-fp Do not use IEEE math for fp comparisons
-mieee-fp Use IEEE math for fp comparisons
-mno-svr3-shlib Uninitialized locals in .data
-msvr3-shlib Uninitialized locals in .bss
-mno-align-double Align doubles on word boundary
-malign-double Align some doubles on dword boundary
-mno-rtd Use normal calling convention
-mrtd Alternate calling convention
-mno-soft-float Use hardware fp
-msoft-float Do not use hardware fp
-mhard-float Use hardware fp
-mno-80387 Do not use hardware fp
-m80387 Use hardware fp
-mtls-dialect= Use given thread-local storage dialect
-masm= Use given assembler dialect
-mcmodel= Use given x86-64 code model
-mbranch-cost= Branches are this expensive (1-5, arbitrary units)
-mpreferred-stack-boundary= Attempt to keep stack aligned to this power of 2
-malign-functions= Function starts are aligned to this power of 2
-malign-jumps= Jump targets are aligned to this power of 2
-malign-loops= Loop code aligned to this power of 2
-mregparm= Number of registers used to pass integer arguments
-march= Generate code for given CPU
-mfpmath= Generate floating point mathematics using given instruction set
-mtune= Schedule code for given CPU
MinGW v3.4.2 32-bit Options - Group 10
There are undocumented target specific options as well.
Usage: C:\WorkLib\MinGW342\Bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\as.exe [option...] [asmfile...]
Options:
-a[sub-option...] turn on listings
Sub-options [default hls]:
c omit false conditionals
d omit debugging directives
h include high-level source
l include assembly
m include macro expansions
n omit forms processing
s include symbols
=FILE list to FILE (must be last sub-option)
--alternate initially turn on alternate macro syntax
-D produce assembler debugging messages
--defsym SYM=VAL define symbol SYM to given value
-f skip whitespace and comment preprocessing
-g --gen-debug generate debugging information
--gstabs generate STABS debugging information
--gstabs+ generate STABS debug info with GNU extensions
--gdwarf-2 generate DWARF2 debugging information
--help show this message and exit
--target-help show target specific options
-I DIR add DIR to search list for .include directives
-J don't warn about signed overflow
-K warn when differences altered for long displacements
-L,--keep-locals keep local symbols (e.g. starting with `L')
-M,--mri assemble in MRI compatibility mode
--MD FILE write dependency information in FILE (default none)
-nocpp ignored
-o OBJFILE name the object-file output OBJFILE (default a.out)
-R fold data section into text section
--statistics print various measured statistics from execution
--strip-local-absolute strip local absolute symbols
--traditional-format Use same format as native assembler when possible
--version print assembler version number and exit
-W --no-warn suppress warnings
--warn don't suppress warnings
--fatal-warnings treat warnings as errors
--itbl INSTTBL extend instruction set to include instructions
matching the specifications defined in file INSTTBL
-w ignored
-X ignored
-Z generate object file even after errors
--listing-lhs-width set the width in words of the output data column of
the listing
--listing-lhs-width2 set the width in words of the continuation lines
of the output data column; ignored if smaller than
the width of the first line
--listing-rhs-width set the max width in characters of the lines from
the source file
--listing-cont-lines set the maximum number of continuation lines used
for the output data column of the listing
-n Do not optimize code alignment
-q quieten some warnings
MinGW v3.4.2 32-bit Options - Group 11
Report bugs to
Usage: gcc.exe [options] file...
Options:
-pass-exit-codes Exit with highest error code from a phase
--help Display this information
--target-help Display target specific command line options
-dumpspecs Display all of the built in spec strings
-dumpversion Display the version of the compiler
-dumpmachine Display the compiler's target processor
-print-search-dirs Display the directories in the compiler's search path
-print-libgcc-file-name Display the name of the compiler's companion library
-print-file-name= Display the full path to library
-print-prog-name= Display the full path to compiler component
-print-multi-directory Display the root directory for versions of libgcc
-print-multi-lib Display the mapping between command line options and
multiple library search directories
-print-multi-os-directory Display the relative path to OS libraries
-Wa, Pass comma-separated on to the assembler
-Wp, Pass comma-separated on to the preprocessor
-Wl, Pass comma-separated on to the linker
-Xassembler Pass on to the assembler
-Xpreprocessor Pass on to the preprocessor
-Xlinker Pass on to the linker
-save-temps Do not delete intermediate files
-pipe Use pipes rather than intermediate files
-time Time the execution of each subprocess
-specs= Override built-in specs with the contents of
-std= Assume that the input sources are for
-B Add to the compiler's search paths
-b Run gcc for target , if installed
-V Run gcc version number , if installed
-v Display the programs invoked by the compiler
-### Like -v but options quoted and commands not executed
-E Preprocess only; do not compile, assemble or link
-S Compile only; do not assemble or link
-c Compile and assemble, but do not link
-o Place the output into
-x Specify the language of the following input files
Permissible languages include: c c++ assembler none
'none' means revert to the default behavior of
guessing the language based on the file's extension
Options starting with -g, -f, -m, -O, -W, or --param are automatically
passed on to the various sub-processes invoked by gcc.exe. In order to pass
other options on to these processes the -W options must be used.
For bug reporting instructions, please see:
http://www.mingw.org/bugs.shtml
MinGW v4.8.1 32-bit Options - Group 1
Usage: g++.exe [options] file...
Options:
-pass-exit-codes Exit with highest error code from a phase
--help Display this information
--target-help Display target specific command line options
--help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]
Display specific types of command line options
--version Display compiler version information
-dumpspecs Display all of the built in spec strings
-dumpversion Display the version of the compiler
-dumpmachine Display the compiler's target processor
-print-search-dirs Display the directories in the compiler's search path
-print-libgcc-file-name Display the name of the compiler's companion library
-print-file-name= Display the full path to library
-print-prog-name= Display the full path to compiler component
-print-multiarch Display the target's normalized GNU triplet, used as
a component in the library path
-print-multi-directory Display the root directory for versions of libgcc
-print-multi-lib Display the mapping between command line options and
multiple library search directories
-print-multi-os-directory Display the relative path to OS libraries
-print-sysroot Display the target libraries directory
-print-sysroot-headers-suffix Display the sysroot suffix used to find headers
-Wa, Pass comma-separated on to the assembler
-Wp, Pass comma-separated on to the preprocessor
-Wl, Pass comma-separated on to the linker
-Xassembler Pass on to the assembler
-Xpreprocessor Pass on to the preprocessor
-Xlinker Pass on to the linker
-save-temps Do not delete intermediate files
-save-temps= Do not delete intermediate files
-no-canonical-prefixes Do not canonicalize paths when building relative
prefixes to other gcc components
-pipe Use pipes rather than intermediate files
-time Time the execution of each subprocess
-specs= Override built-in specs with the contents of
-std= Assume that the input sources are for
--sysroot= Use as the root directory for headers
and libraries
-B Add to the compiler's search paths
-v Display the programs invoked by the compiler
-### Like -v but options quoted and commands not executed
-E Preprocess only; do not compile, assemble or link
-S Compile only; do not assemble or link
-c Compile and assemble, but do not link
-o Place the output into
-pie Create a position independent executable
-shared Create a shared library
-x Specify the language of the following input files
Permissible languages include: c c++ assembler none
'none' means revert to the default behavior of
guessing the language based on the file's extension
Options starting with -g, -f, -m, -O, -W, or --param are automatically
passed on to the various sub-processes invoked by g++.exe. In order to pass
other options on to these processes the -W options must be used.
The following options are specific to just the language Ada:
None found. Use --help=Ada to show *all* the options supported by the Ada front-end
The following options are specific to just the language AdaSCIL:
None found. Use --help=AdaSCIL to show *all* the options supported by the AdaSCIL front-end
The following options are specific to just the language AdaWhy:
None found. Use --help=AdaWhy to show *all* the options supported by the AdaWhy front-end
The following options are specific to just the language C:
-lang-asm This switch lacks documentation
The following options are specific to just the language C++:
None found. Use --help=C++ to show *all* the options supported by the C++ front-end
MinGW v4.8.1 32-bit Options - Group 2
The following options are specific to just the language Fortran:
-J Put MODULE files in 'directory'
-Waliasing Warn about possible aliasing of dummy arguments
-Walign-commons Warn about alignment of COMMON blocks
-Wampersand Warn about missing ampersand in continued
character constants
-Warray-temporaries Warn about creation of array temporaries
-Wc-binding-type Warn if the type of a variable might be not
interoperable with C
-Wcharacter-truncation Warn about truncated character expressions
-Wcompare-reals Warn about equality comparisons involving REAL or
COMPLEX expressions
-Wconversion-extra Warn about most implicit conversions
-Wextra Print extra (possibly unwanted) warnings
-Wfunction-elimination Warn about function call elimination
-Wimplicit-interface Warn about calls with implicit interface
-Wimplicit-procedure Warn about called procedures not explicitly
declared
-Wintrinsic-shadow Warn if a user-procedure has the same name as an
intrinsic
-Wintrinsics-std Warn on intrinsics not part of the selected
standard
-Wline-truncation Warn about truncated source lines
-Wreal-q-constant Warn about real-literal-constants with 'q'
exponent-letter
-Wrealloc-lhs Warn when a left-hand-side array variable is
reallocated
-Wrealloc-lhs-all Warn when a left-hand-side variable is reallocated
-Wsurprising Warn about "suspicious" constructs
-Wtabs Permit nonconforming uses of the tab character
-Wtarget-lifetime Warn if the pointer in a pointer assignment might
outlive its target
-Wunderflow Warn about underflow of numerical constant
expressions
-Wunused-dummy-argument Warn about unused dummy arguments.
-cpp Enable preprocessing
-cpp= This switch lacks documentation
-faggressive-function-elimination Eliminate multiple function invokations
also for impure functions
-falign-commons Enable alignment of COMMON blocks
-fall-intrinsics All intrinsics procedures are available
regardless of selected standard
-fallow-leading-underscore This switch lacks documentation
-fautomatic Do not treat local variables and COMMON blocks as
if they were named in SAVE statements
-fbackslash Specify that backslash in string introduces an
escape character
-fbacktrace Produce a backtrace when a runtime error is
encountered
-fblas-matmul-limit= Size of the smallest matrix for which matmul will
use BLAS
-fcheck-array-temporaries Produce a warning at runtime if a array temporary
has been created for a procedure argument
-fcheck=[...] Specify which runtime checks are to be performed
-fcoarray=[...] Specify which coarray parallelization should be
used
-fconvert=big-endian Use big-endian format for unformatted files
-fconvert=little-endian Use little-endian format for unformatted files
-fconvert=native Use native format for unformatted files
-fconvert=swap Swap endianness for unformatted files
-fcray-pointer Use the Cray Pointer extension
-fd-lines-as-code Ignore 'D' in column one in fixed form
-fd-lines-as-comments Treat lines with 'D' in column one as comments
-fdefault-double-8 Set the default double precision kind to an 8
byte wide type
-fdefault-integer-8 Set the default integer kind to an 8 byte wide
type
-fdefault-real-8 Set the default real kind to an 8 byte wide type
-fdollar-ok Allow dollar signs in entity names
-fdump-core Does nothing. Preserved for backward
compatibility.
-fdump-fortran-optimized Display the code tree after front end optimization
-fdump-fortran-original Display the code tree after parsing
-fdump-parse-tree Display the code tree after parsing; deprecated
option
-fexternal-blas Specify that an external BLAS library should be
used for matmul calls on large-size arrays
-ff2c Use f2c calling convention
-ffixed-form Assume that the source file is fixed form
-ffixed-line-length- Use n as character line width in fixed mode
-ffixed-line-length-none Allow arbitrary character line width in fixed mode
-ffpe-trap=[...] Stop on following floating point exceptions
-ffree-form Assume that the source file is free form
-ffree-line-length- Use n as character line width in free mode
-ffree-line-length-none Allow arbitrary character line width in free mode
-ffrontend-optimize Enable front end optimization
-fimplicit-none Specify that no implicit typing is allowed,
unless overridden by explicit IMPLICIT statements
-finit-character= Initialize local character variables to ASCII
value n
-finit-integer= Initialize local integer variables to n
-finit-local-zero Initialize local variables to zero (from g77)
-finit-logical= Initialize local logical variables
-finit-real= Initialize local real variables
-finteger-4-integer-8 Interpret any INTEGER(4) as an INTEGER(8)
-fintrinsic-modules-path Specify where to find the compiled intrinsic
modules
-fintrinsic-modules-path= Specify where to find the compiled intrinsic
modules
-fmax-array-constructor= Maximum number of objects in an array constructor
-fmax-identifier-length= Maximum identifier length
-fmax-stack-var-size= Size in bytes of the largest array that will be
put on the stack
-fmax-subrecord-length= Maximum length for subrecords
-fmodule-private Set default accessibility of module entities to
PRIVATE.
-fpack-derived Try to lay out derived types as compactly as
possible
-fprotect-parens Protect parentheses in expressions
-frange-check Enable range checking during compilation
-freal-4-real-10 Interpret any REAL(4) as a REAL(10)
-freal-4-real-16 Interpret any REAL(4) as a REAL(16)
-freal-4-real-8 Interpret any REAL(4) as a REAL(8)
-freal-8-real-10 Interpret any REAL(8) as a REAL(10)
-freal-8-real-16 Interpret any REAL(8) as a REAL(16)
-freal-8-real-4 Interpret any REAL(8) as a REAL(4)
-frealloc-lhs Reallocate the LHS in assignments
-frecord-marker=4 Use a 4-byte record marker for unformatted files
-frecord-marker=8 Use an 8-byte record marker for unformatted files
-frecursive Allocate local variables on the stack to allow
indirect recursion
-frepack-arrays Copy array sections into a contiguous block on
procedure entry
-fsecond-underscore Append a second underscore if the name already
contains an underscore
-fsign-zero Apply negative sign to zero values
-fstack-arrays Put all local arrays on stack.
-funderscoring Append underscores to externally visible names
-fwhole-file Compile all program units at once and check all
interfaces
-nocpp Disable preprocessing
-static-libgfortran Statically link the GNU Fortran helper library
(libgfortran)
-std=f2003 Conform to the ISO Fortran 2003 standard
-std=f2008 Conform to the ISO Fortran 2008 standard
-std=f2008ts Conform to the ISO Fortran 2008 standard
including TS 29113
-std=f95 Conform to the ISO Fortran 95 standard
-std=gnu Conform to nothing in particular
-std=legacy Accept extensions to support legacy code
MinGW v4.8.1 32-bit Options - Group 3
The following options are specific to just the language Go:
-L This switch lacks documentation
-fgo-check-divide-overflow Add explicit checks for division overflow in
INT_MIN / -1
-fgo-check-divide-zero Add explicit checks for division by zero
-fgo-dump- Dump Go frontend internal information
-fgo-optimize- Turn on optimization passes in the frontend
-fgo-pkgpath= Set Go package path
-fgo-prefix= Set package-specific prefix for exported Go names
-fgo-relative-import-path= -fgo-relative-import-path= Treat a relative
import as relative to path
-frequire-return-statement Functions which return values must end with
return statements
MinGW v4.8.1 32-bit Options - Group 4
The following options are specific to just the language Java:
--CLASSPATH This switch lacks documentation
--bootclasspath This switch lacks documentation
--classpath This switch lacks documentation
--encoding This switch lacks documentation
--extdirs This switch lacks documentation
--output-class-directory This switch lacks documentation
--output-class-directory= This switch lacks documentation
--resource This switch lacks documentation
--resource= This switch lacks documentation
-CLASSPATH This switch lacks documentation
-MD_ This switch lacks documentation
-MMD_ This switch lacks documentation
-Wall-deprecation This switch lacks documentation
-Wall-javadoc This switch lacks documentation
-Wassert-identifier This switch lacks documentation
-Wboxing This switch lacks documentation
-Wchar-concat This switch lacks documentation
-Wcondition-assign This switch lacks documentation
-Wconstructor-name This switch lacks documentation
-Wdep-ann This switch lacks documentation
-Wdiscouraged This switch lacks documentation
-Wempty-block This switch lacks documentation
-Wenum-identifier This switch lacks documentation
-Wenum-switch This switch lacks documentation
-Wextraneous-semicolon Warn if deprecated empty statements are found
-Wfallthrough This switch lacks documentation
-Wfield-hiding This switch lacks documentation
-Wfinal-bound This switch lacks documentation
-Wfinally This switch lacks documentation
-Wforbidden This switch lacks documentation
-Whiding This switch lacks documentation
-Windirect-static This switch lacks documentation
-Wintf-annotation This switch lacks documentation
-Wintf-non-inherited This switch lacks documentation
-Wjavadoc This switch lacks documentation
-Wlocal-hiding This switch lacks documentation
-Wmasked-catch-block This switch lacks documentation
-Wnls This switch lacks documentation
-Wno-effect-assign This switch lacks documentation
-Wnull This switch lacks documentation
-Wout-of-date Warn if .class files are out of date
-Wover-ann This switch lacks documentation
-Wparam-assign This switch lacks documentation
-Wpkg-default-method This switch lacks documentation
-Wraw This switch lacks documentation
-Wredundant-modifiers Warn if modifiers are specified when not necessary
-Wserial This switch lacks documentation
-Wspecial-param-hiding This switch lacks documentation
-Wstatic-access This switch lacks documentation
-Wstatic-receiver This switch lacks documentation
-Wsuppress This switch lacks documentation
-Wsynthetic-access This switch lacks documentation
-Wtasks This switch lacks documentation
-Wtype-hiding This switch lacks documentation
-Wuncheck This switch lacks documentation
-Wunnecessary-else This switch lacks documentation
-Wunqualified-field This switch lacks documentation
-Wunused-argument This switch lacks documentation
-Wunused-import This switch lacks documentation
-Wunused-label Warn when a label is unused
-Wunused-local This switch lacks documentation
-Wunused-private This switch lacks documentation
-Wunused-thrown This switch lacks documentation
-Wuseless-type-check This switch lacks documentation
-Wvarargs-cast This switch lacks documentation
-Wwarning-token This switch lacks documentation
-bootclasspath This switch lacks documentation
-classpath This switch lacks documentation
-encoding This switch lacks documentation
--CLASSPATH Deprecated; use --classpath instead
-fassert Permit the use of the assert keyword
-fassume-compiled This switch lacks documentation
-fassume-compiled= This switch lacks documentation
-faux-classpath This switch lacks documentation
--bootclasspath= Replace system path
-fbootstrap-classes Generated should be loaded by bootstrap loader
-fcheck-references Generate checks for references to NULL
--classpath= Set class path
-fcompile-resource= This switch lacks documentation
-fdisable-assertions This switch lacks documentation
-fdisable-assertions= This switch lacks documentation
-femit-class-file Output a class file
-femit-class-files Alias for -femit-class-file
-fenable-assertions This switch lacks documentation
-fenable-assertions= This switch lacks documentation
--encoding= Choose input encoding (defaults from your locale)
--extdirs= Set the extension directory path
-ffilelist-file Input file is a file with a list of filenames to
compile
-fforce-classes-archive-check Always check for non gcj generated classes
archives
-fhash-synchronization Assume the runtime uses a hash table to map an
object to its synchronization structure
-findirect-classes Generate instances of Class at runtime
-findirect-dispatch Use offset tables for virtual method calls
-finline-functions Integrate functions not declared "inline" into
their callers when profitable
-fjni Assume native functions are implemented using JNI
-foptimize-static-class-initialization Enable optimization of static class
initialization code
-foutput-class-dir= This switch lacks documentation
-freduced-reflection Reduce the amount of reflection meta-data
generated
-fsaw-java-file This switch lacks documentation
-fsource-filename= This switch lacks documentation
-fsource= Set the source language version
-fstore-check Enable assignability checks for stores into
object arrays
-ftarget= Set the target VM version
-fuse-atomic-builtins Generate code for built-in atomic operations
-fuse-boehm-gc Generate code for the Boehm GC
-fuse-divide-subroutine Call a library routine to do integer divisions
-version Display the compiler's version
The following options are specific to just the language LTO:
-fltrans Run the link-time optimizer in local
transformation (LTRANS) mode.
-fltrans-output-list= Specify a file to which a list of files output by
LTRANS is written.
-fresolution= The resolution file
-fwpa Run the link-time optimizer in whole program
analysis (WPA) mode.
The following options are specific to just the language ObjC:
None found. Use --help=ObjC to show *all* the options supported by the ObjC front-end
The following options are specific to just the language ObjC++:
-fobjc-call-cxx-cdtors Generate special Objective-C methods to
initialize/destroy non-POD C++ ivars, if needed
MinGW v4.8.1 32-bit Options - Group 5
The following options are language-related:
--all-warnings This switch lacks documentation
--ansi This switch lacks documentation
--assert This switch lacks documentation
--assert= This switch lacks documentation
--comments This switch lacks documentation
--comments-in-macros This switch lacks documentation
--define-macro This switch lacks documentation
--define-macro= This switch lacks documentation
--dependencies This switch lacks documentation
--dump This switch lacks documentation
--dump= This switch lacks documentation
--imacros This switch lacks documentation
--imacros= This switch lacks documentation
--include This switch lacks documentation
--include-barrier This switch lacks documentation
--include-directory This switch lacks documentation
--include-directory-after This switch lacks documentation
--include-directory-after= This switch lacks documentation
--include-directory= This switch lacks documentation
--include-prefix This switch lacks documentation
--include-prefix= This switch lacks documentation
--include-with-prefix This switch lacks documentation
--include-with-prefix-after This switch lacks documentation
--include-with-prefix-after= This switch lacks documentation
--include-with-prefix-before This switch lacks documentation
--include-with-prefix-before= This switch lacks documentation
--include-with-prefix= This switch lacks documentation
--include= This switch lacks documentation
--no-line-commands This switch lacks documentation
--no-standard-includes This switch lacks documentation
--no-standard-libraries This switch lacks documentation
--no-warnings This switch lacks documentation
--output This switch lacks documentation
--output-pch= This switch lacks documentation
--output= This switch lacks documentation
--pedantic This switch lacks documentation
--preprocess This switch lacks documentation
--print-missing-file-dependencies This switch lacks documentation
--trace-includes This switch lacks documentation
--traditional-cpp This switch lacks documentation
--trigraphs This switch lacks documentation
--undefine-macro This switch lacks documentation
--undefine-macro= This switch lacks documentation
--user-dependencies This switch lacks documentation
--verbose This switch lacks documentation
--write-dependencies This switch lacks documentation
--write-user-dependencies This switch lacks documentation
-A= Assert the to . Putting '-'
before disables the to
-C Do not discard comments
-CC Do not discard comments in macro expansions
-D[=] Define a with as its value. If
just is given, is taken to be 1
-E This switch lacks documentation
-F Add to the end of the main framework
include path
-H Print the name of header files as they are used
-I Add to the end of the main include path
-M Generate make dependencies
-MD Generate make dependencies and compile
-MF Write dependency output to the given file
-MG Treat missing header files as generated files
-MM Like -M but ignore system header files
-MMD Like -MD but ignore system header files
-MP Generate phony targets for all headers
-MQ Add a MAKE-quoted target
-MT Add an unquoted target
-P Do not generate #line directives
-U Undefine
-Wabi Warn about things that will change when compiling
with an ABI-compliant compiler
-Wabi-tag Warn if a subobject has an abi_tag attribute that
the complete object type does not have
-Waddress Warn about suspicious uses of memory addresses
-Wall Enable most warning messages
-Wassign-intercept Warn whenever an Objective-C assignment is being
intercepted by the garbage collector
-Wbad-function-cast Warn about casting functions to incompatible types
-Wbuiltin-macro-redefined Warn when a built-in preprocessor macro is
undefined or redefined
-Wc++-compat Warn about C constructs that are not in the
common subset of C and C++
-Wc++0x-compat Deprecated in favor of -Wc++11-compat
-Wc++11-compat Warn about C++ constructs whose meaning differs
between ISO C++ 1998 and ISO C++ 2011
-Wcast-qual Warn about casts which discard qualifiers
-Wchar-subscripts Warn about subscripts whose type is "char"
-Wclobbered Warn about variables that might be changed by
"longjmp" or "vfork"
-Wcomment Warn about possibly nested block comments, and
C++ comments spanning more than one physical line
-Wcomments Synonym for -Wcomment
-Wconversion Warn for implicit type conversions that may
change a value
-Wconversion-null Warn for converting NULL from/to a non-pointer
type
-Wctor-dtor-privacy Warn when all constructors and destructors are
private
-Wdeclaration-after-statement Warn when a declaration is found after a
statement
-Wdelete-non-virtual-dtor Warn about deleting polymorphic objects with non-
virtual destructors
-Wdeprecated Warn if a deprecated compiler feature, class,
method, or field is used
-Wdiv-by-zero Warn about compile-time integer division by zero
-Wdouble-promotion Warn about implicit conversions from "float" to
"double"
-Weffc++ Warn about violations of Effective C++ style rules
-Wempty-body Warn about an empty body in an if or else
statement
-Wendif-labels Warn about stray tokens after #elif and #endif
-Wenum-compare Warn about comparison of different enum types
-Werror Treat all warnings as errors
-Werror-implicit-function-declaration This switch is deprecated; use
-Werror=implicit-function-declaration instead
-Wfloat-equal Warn if testing floating point numbers for
equality
-Wformat Warn about printf/scanf/strftime/strfmon format
string anomalies
-Wformat-contains-nul Warn about format strings that contain NUL bytes
-Wformat-extra-args Warn if passing too many arguments to a function
for its format string
-Wformat-nonliteral Warn about format strings that are not literals
-Wformat-security Warn about possible security problems with format
functions
-Wformat-y2k Warn about strftime formats yielding 2-digit years
-Wformat-zero-length Warn about zero-length formats
-Wformat= Warn about printf/scanf/strftime/strfmon format
string anomalies
-Wignored-qualifiers Warn whenever type qualifiers are ignored.
-Wimplicit Warn about implicit declarations
-Wimplicit-function-declaration Warn about implicit function declarations
-Wimplicit-int Warn when a declaration does not specify a type
-Wimport This switch lacks documentation
-Winherited-variadic-ctor Warn about C++11 inheriting constructors when the
base has a variadic constructor
-Winit-self Warn about variables which are initialized to
themselves
-Wint-to-pointer-cast Warn when there is a cast to a pointer from an
integer of a different size
-Winvalid-offsetof Warn about invalid uses of the "offsetof" macro
-Winvalid-pch Warn about PCH files that are found but not used
-Wjump-misses-init Warn when a jump misses a variable initialization
-Wliteral-suffix Warn when a string or character literal is
followed by a ud-suffix which does not begin with
an underscore.
-Wlogical-op Warn when a logical operator is suspiciously
always evaluating to true or false
-Wlong-long Do not warn about using "long long" when -pedantic
-Wmain Warn about suspicious declarations of "main"
-Wmaybe-uninitialized Warn about maybe uninitialized automatic variables
-Wmissing-braces Warn about possibly missing braces around
initializers
-Wmissing-declarations Warn about global functions without previous
declarations
-Wmissing-field-initializers Warn about missing fields in struct initializers
-Wmissing-format-attribute This switch lacks documentation
-Wmissing-include-dirs Warn about user-specified include directories
that do not exist
-Wmissing-parameter-type Warn about function parameters declared without a
type specifier in K&R-style functions
-Wmissing-prototypes Warn about global functions without prototypes
-Wmudflap Warn about constructs not instrumented by
-fmudflap
-Wmultichar Warn about use of multi-character character
constants
-Wnarrowing Warn about narrowing conversions within { } that
are ill-formed in C++11
-Wnested-externs Warn about "extern" declarations not at file scope
-Wnoexcept Warn when a noexcept expression evaluates to
false even though the expression can't actually
throw
-Wnon-template-friend Warn when non-templatized friend functions are
declared within a template
-Wnon-virtual-dtor Warn about non-virtual destructors
-Wnonnull Warn about NULL being passed to argument slots
marked as requiring non-NULL
-Wnormalized= Warn about non-normalised Unicode strings
-Wold-style-cast Warn if a C-style cast is used in a program
-Wold-style-declaration Warn for obsolescent usage in a declaration
-Wold-style-definition Warn if an old-style parameter definition is used
-Woverlength-strings Warn if a string is longer than the maximum
portable length specified by the standard
-Woverloaded-virtual Warn about overloaded virtual function names
-Woverride-init Warn about overriding initializers without side
effects
-Wpacked-bitfield-compat Warn about packed bit-fields whose offset changed
in GCC 4.4
-Wparentheses Warn about possibly missing parentheses
-Wpedantic Issue warnings needed for strict compliance to
the standard
-Wpedantic-ms-format Warn about none ISO msvcrt scanf/printf width
extensions
-Wpmf-conversions Warn when converting the type of pointers to
member functions
-Wpointer-arith Warn about function pointer arithmetic
-Wpointer-sign Warn when a pointer differs in signedness in an
assignment
-Wpointer-to-int-cast Warn when a pointer is cast to an integer of a
different size
-Wpragmas Warn about misuses of pragmas
-Wproperty-assign-default Warn if a property for an Objective-C object has
no assign semantics specified
-Wprotocol Warn if inherited methods are unimplemented
-Wpsabi This switch lacks documentation
-Wredundant-decls Warn about multiple declarations of the same
object
-Wreorder Warn when the compiler reorders code
-Wreturn-local-addr Warn about returning a pointer/reference to a
local or temporary variable.
-Wreturn-type Warn whenever a function's return type defaults
to "int" (C), or about inconsistent return types
(C++)
-Wselector Warn if a selector has multiple methods
-Wsequence-point Warn about possible violations of sequence point
rules
-Wsign-compare Warn about signed-unsigned comparisons
-Wsign-conversion Warn for implicit type conversions between signed
and unsigned integers
-Wsign-promo Warn when overload promotes from unsigned to
signed
-Wsizeof-pointer-memaccess This switch lacks documentation
-Wstrict-aliasing= Warn about code which might break strict aliasing
rules
-Wstrict-null-sentinel Warn about uncasted NULL used as sentinel
-Wstrict-overflow= Warn about optimizations that assume that signed
overflow is undefined
-Wstrict-prototypes Warn about unprototyped function declarations
-Wstrict-selector-match Warn if type signatures of candidate methods do
not match exactly
-Wsuggest-attribute=format Warn about functions which might be candidates
for format attributes
-Wswitch Warn about enumerated switches, with no default,
missing a case
-Wswitch-default Warn about enumerated switches missing a
"default:" statement
-Wswitch-enum Warn about all enumerated switches missing a
specific case
-Wsync-nand Warn when __sync_fetch_and_nand and
__sync_nand_and_fetch built-in functions are used
-Wsynth Deprecated. This switch has no effect
-Wsystem-headers Do not suppress warnings from system headers
-Wtraditional Warn about features not present in traditional C
-Wtraditional-conversion Warn of prototypes causing type conversions
different from what would happen in the absence
of prototype
-Wtrigraphs Warn if trigraphs are encountered that might
affect the meaning of the program
-Wundeclared-selector Warn about @selector()s without previously
declared methods
-Wundef Warn if an undefined macro is used in an #if
directive
-Wuninitialized Warn about uninitialized automatic variables
-Wunknown-pragmas Warn about unrecognized pragmas
-Wunsuffixed-float-constants Warn about unsuffixed float constants
-Wunused Enable all -Wunused- warnings
-Wunused-local-typedefs Warn when typedefs locally defined in a function
are not used
-Wunused-macros Warn about macros defined in the main file that
are not used
-Wunused-result Warn if a caller of a function, marked with
attribute warn_unused_result, does not use its
return value
-Wuseless-cast Warn about useless casts
-Wvarargs Warn about questionable usage of the macros used
to retrieve variable arguments
-Wvariadic-macros Warn about using variadic macros
-Wvirtual-move-assign Warn if a virtual base has a non-trivial move
assignment operator
-Wvla Warn if a variable length array is used
-Wvolatile-register-var Warn when a register variable is declared volatile
-Wwrite-strings 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.
-Wzero-as-null-pointer-constant Warn when a literal '0' is used as null
pointer