MAN page from RedHat EL 6 toolchain-armiwmmx-2012-2012.12.1-oselas.2.2.x86_64.rpm


Section: GNU (1)
Updated: 2011-10-26


gcc - GNU project C and C++ compiler 


gcc [-c|-S|-E] [-std=standard]
    [-g] [-pg] [-Olevel]
    [-Wwarn...] [-pedantic]
    [-Idir...] [-Ldir...]
    [-Dmacro[=defn]...] [-Umacro]
    [-foption...] [-mmachine-option...]
    [-o outfile] [@fileinfile...

Only the most useful options are listed here; see below for theremainder. g++ accepts mostly the same options as gcc. 


When you invoke GCC, it normally does preprocessing, compilation,assembly and linking. The ``overall options'' allow you to stop thisprocess at an intermediate stage. For example, the -c optionsays not to run the linker. Then the output consists of object filesoutput by the assembler.

Other options are passed on to one stage of processing. Some optionscontrol the preprocessor and others the compiler itself. Yet otheroptions control the assembler and linker; most of these are notdocumented here, since you rarely need to use any of them.

Most of the command line options that you can use with GCC are usefulfor C programs; when an option is only useful with another language(usually C++), the explanation says so explicitly. If the descriptionfor a particular option does not mention a source language, you can usethat option with all supported languages.

The gcc program accepts options and file names as operands. Manyoptions have multi-letter names; therefore multiple single-letter optionsmay not be grouped: -dv is very different from -d -v.

You can mix options and other arguments. For the most part, the orderyou use doesn't matter. Order does matter when you use severaloptions of the same kind; for example, if you specify -L morethan once, the directories are searched in the order specified. Also,the placement of the -l option is significant.

Many options have long names starting with -f or with-W---for example,-fmove-loop-invariants, -Wformat and so on. Most ofthese have both positive and negative forms; the negative form of-ffoo would be -fno-foo. This manual documentsonly one of these two forms, whichever one is not the default. 



Option Summary

Here is a summary of all the options, grouped by type. Explanations arein the following sections.
Overall Options
-c -S -E -o file -no-canonical-prefixes -pipe -pass-exit-codes -x language -v -### --help[=class[,...]] --target-help --version -wrapper @file -fplugin=file -fplugin-arg-name=arg -fdump-ada-spec[-slim] -fdump-go-spec=file
C Language Options
-ansi -std=standard -fgnu89-inline -aux-info filename -fno-asm -fno-builtin -fno-builtin-function -fhosted -ffreestanding -fopenmp -fms-extensions -fplan9-extensions -trigraphs -no-integrated-cpp -traditional -traditional-cpp -fallow-single-precision -fcond-mismatch -flax-vector-conversions -fsigned-bitfields -fsigned-char -funsigned-bitfields -funsigned-char
C++ Language Options
-fabi-version=n -fno-access-control -fcheck-new -fconserve-space -fconstexpr-depth=n -ffriend-injection -fno-elide-constructors -fno-enforce-eh-specs -ffor-scope -fno-for-scope -fno-gnu-keywords -fno-implicit-templates -fno-implicit-inline-templates -fno-implement-inlines -fms-extensions -fno-nonansi-builtins -fnothrow-opt -fno-operator-names -fno-optional-diags -fpermissive -fno-pretty-templates -frepo -fno-rtti -fstats -ftemplate-depth=n -fno-threadsafe-statics -fuse-cxa-atexit -fno-weak -nostdinc++ -fno-default-inline -fvisibility-inlines-hidden -fvisibility-ms-compat -Wabi -Wconversion-null -Wctor-dtor-privacy -Wnoexcept -Wnon-virtual-dtor -Wreorder -Weffc++ -Wstrict-null-sentinel -Wno-non-template-friend -Wold-style-cast -Woverloaded-virtual -Wno-pmf-conversions -Wsign-promo
Objective-C and Objective-C++ Language Options
-fconstant-string-class=class-name -fgnu-runtime -fnext-runtime -fno-nil-receivers -fobjc-abi-version=n -fobjc-call-cxx-cdtors -fobjc-direct-dispatch -fobjc-exceptions -fobjc-gc -fobjc-nilcheck -fobjc-std=objc1 -freplace-objc-classes -fzero-link -gen-decls -Wassign-intercept -Wno-protocol -Wselector -Wstrict-selector-match -Wundeclared-selector
Language Independent Options
-fmessage-length=n -fdiagnostics-show-location=[once|every-line] -fno-diagnostics-show-option
Warning Options
-fsyntax-only -fmax-errors=n -pedantic -pedantic-errors -w -Wextra -Wall -Waddress -Waggregate-return -Warray-bounds -Wno-attributes -Wno-builtin-macro-redefined -Wc++-compat -Wc++0x-compat -Wcast-align -Wcast-qual -Wchar-subscripts -Wclobbered -Wcomment -Wconversion -Wcoverage-mismatch -Wno-cpp -Wno-deprecated -Wno-deprecated-declarations -Wdisabled-optimization -Wno-div-by-zero -Wdouble-promotion -Wempty-body -Wenum-compare -Wno-endif-labels -Werror -Werror=* -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 -Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wframe-larger-than=len -Wjump-misses-init -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Winline -Wno-int-to-pointer-cast -Wno-invalid-offsetof -Winvalid-pch -Wlarger-than=len -Wunsafe-loop-optimizations -Wlogical-op -Wlong-long -Wmain -Wmissing-braces -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs -Wno-mudflap -Wno-multichar -Wnonnull -Wno-overflow -Woverlength-strings -Wpacked -Wpacked-bitfield-compat -Wpadded -Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format -Wpointer-arith -Wno-pointer-to-int-cast -Wredundant-decls -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wsign-conversion -Wstack-protector -Wstrict-aliasing -Wstrict-aliasing=n -Wstrict-overflow -Wstrict-overflow=n -Wsuggest-attribute=[pure|const|noreturn] -Wswitch -Wswitch-default -Wswitch-enum -Wsync-nand -Wsystem-headers -Wtrampolines -Wtrigraphs -Wtype-limits -Wundef -Wuninitialized -Wunknown-pragmas -Wno-pragmas -Wunsuffixed-float-constants -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wno-unused-result -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable -Wvariadic-macros -Wvla -Wvolatile-register-var -Wwrite-strings
C and Objective-C-only Warning Options
-Wbad-function-cast -Wmissing-declarations -Wmissing-parameter-type -Wmissing-prototypes -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wstrict-prototypes -Wtraditional -Wtraditional-conversion -Wdeclaration-after-statement -Wpointer-sign
Debugging Options
-dletters -dumpspecs -dumpmachine -dumpversion -fdbg-cnt-list -fdbg-cnt=counter-value-list -fdump-noaddr -fdump-unnumbered -fdump-unnumbered-links -fdump-translation-unit[-n] -fdump-class-hierarchy[-n] -fdump-ipa-all -fdump-ipa-cgraph -fdump-ipa-inline -fdump-statistics -fdump-tree-all -fdump-tree-original[-n] -fdump-tree-optimized[-n] -fdump-tree-cfg -fdump-tree-vcg -fdump-tree-alias -fdump-tree-ch -fdump-tree-ssa[-n] -fdump-tree-pre[-n] -fdump-tree-ccp[-n] -fdump-tree-dce[-n] -fdump-tree-gimple[-raw] -fdump-tree-mudflap[-n] -fdump-tree-dom[-n] -fdump-tree-dse[-n] -fdump-tree-phiprop[-n] -fdump-tree-phiopt[-n] -fdump-tree-forwprop[-n] -fdump-tree-copyrename[-n] -fdump-tree-nrv -fdump-tree-vect -fdump-tree-sink -fdump-tree-sra[-n] -fdump-tree-forwprop[-n] -fdump-tree-fre[-n] -fdump-tree-vrp[-n] -ftree-vectorizer-verbose=n -fdump-tree-storeccp[-n] -fdump-final-insns=file -fcompare-debug[=opts] -fcompare-debug-second -feliminate-dwarf2-dups -feliminate-unused-debug-types -feliminate-unused-debug-symbols -femit-class-debug-always -fenable-icf-debug -fmem-report -fpre-ipa-mem-report -fpost-ipa-mem-report -fprofile-arcs -frandom-seed=string -fsched-verbose=n -fsel-sched-verbose -fsel-sched-dump-cfg -fsel-sched-pipelining-verbose -fstack-usage -ftest-coverage -ftime-report -fvar-tracking -fvar-tracking-assignments -fvar-tracking-assignments-toggle -g -glevel -gtoggle -gcoff -gdwarf-version -ggdb -gstabs -gstabs+ -gstrict-dwarf -gno-strict-dwarf -gvms -gxcoff -gxcoff+ -fno-merge-debug-strings -fno-dwarf2-cfi-asm -fdebug-prefix-map=old=new -femit-struct-debug-baseonly -femit-struct-debug-reduced -femit-struct-debug-detailed[=spec-list] -p -pg -print-file-name=library -print-libgcc-file-name -print-multi-directory -print-multi-lib -print-multi-os-directory -print-prog-name=program -print-search-dirs -Q -print-sysroot -print-sysroot-headers-suffix -save-temps -save-temps=cwd -save-temps=obj -time[=file]
Optimization Options
-falign-functions[=n] -falign-jumps[=n] -falign-labels[=n] -falign-loops[=n] -fassociative-math -fauto-inc-dec -fbranch-probabilities -fbranch-target-load-optimize -fbranch-target-load-optimize2 -fbtr-bb-exclusive -fcaller-saves -fcheck-data-deps -fcombine-stack-adjustments -fconserve-stack -fcompare-elim -fcprop-registers -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fcx-fortran-rules -fcx-limited-range -fdata-sections -fdce -fdce -fdelayed-branch -fdelete-null-pointer-checks -fdse -fdevirtualize -fdse -fearly-inlining -fipa-sra -fexpensive-optimizations -ffast-math -ffinite-math-only -ffloat-store -fexcess-precision=style -fforward-propagate -ffp-contract=style -ffunction-sections -fgcse -fgcse-after-reload -fgcse-las -fgcse-lm -fgraphite-identity -fgcse-sm -fif-conversion -fif-conversion2 -findirect-inlining -finline-functions -finline-functions-called-once -finline-limit=n -finline-small-functions -fipa-cp -fipa-cp-clone -fipa-matrix-reorg -fipa-pta -fipa-profile -fipa-pure-const -fipa-reference -fipa-struct-reorg -fira-algorithm=algorithm -fira-region=region -fira-loop-pressure -fno-ira-share-save-slots -fno-ira-share-spill-slots -fira-verbose=n -fivopts -fkeep-inline-functions -fkeep-static-consts -floop-block -floop-flatten -floop-interchange -floop-strip-mine -floop-parallelize-all -flto -flto-compression-level-flto-partition=alg -flto-report -fmerge-all-constants -fmerge-constants -fmodulo-sched -fmodulo-sched-allow-regmoves -fmove-loop-invariants fmudflap -fmudflapir -fmudflapth -fno-branch-count-reg -fno-default-inline -fno-defer-pop -fno-function-cse -fno-guess-branch-probability -fno-inline -fno-math-errno -fno-peephole -fno-peephole2 -fno-sched-interblock -fno-sched-spec -fno-signed-zeros -fno-toplevel-reorder -fno-trapping-math -fno-zero-initialized-in-bss -fomit-frame-pointer -foptimize-register-move -foptimize-sibling-calls -fpartial-inlining -fpeel-loops -fpredictive-commoning -fprefetch-loop-arrays -fprofile-correction -fprofile-dir=path -fprofile-generate -fprofile-generate=path -fprofile-use -fprofile-use=path -fprofile-values -freciprocal-math -fregmove -frename-registers -freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop -freschedule-modulo-scheduled-loops -frounding-math -fsched2-use-superblocks -fsched-pressure -fsched-spec-load -fsched-spec-load-dangerous -fsched-stalled-insns-dep[=n] -fsched-stalled-insns[=n] -fsched-group-heuristic -fsched-critical-path-heuristic -fsched-spec-insn-heuristic -fsched-rank-heuristic -fsched-last-insn-heuristic -fsched-dep-count-heuristic -fschedule-insns -fschedule-insns2 -fsection-anchors -fselective-scheduling -fselective-scheduling2 -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -fsignaling-nans -fsingle-precision-constant -fsplit-ivs-in-unroller -fsplit-wide-types -fstack-protector -fstack-protector-all -fstrict-aliasing -fstrict-overflow -fthread-jumps -ftracer -ftree-bit-ccp -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-forwprop -ftree-fre -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-phiprop -ftree-loop-distribution -ftree-loop-distribute-patterns -ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize -ftree-parallelize-loops=n -ftree-pre -ftree-pta -ftree-reassoc -ftree-sink -ftree-sra -ftree-switch-conversion -ftree-ter -ftree-vect-loop-version -ftree-vectorize -ftree-vrp -funit-at-a-time -funroll-all-loops -funroll-loops -funsafe-loop-optimizations -funsafe-math-optimizations -funswitch-loops -fvariable-expansion-in-unroller -fvect-cost-model -fvpt -fweb -fwhole-program -fwpa -fuse-linker-plugin --param name=value-O -O0 -O1 -O2 -O3 -Os -Ofast
Preprocessor Options
-Aquestion=answer -A-question[=answer] -C -dD -dI -dM -dN -Dmacro[=defn] -E -H -idirafter dir -include file -imacros file -iprefix file -iwithprefix dir -iwithprefixbefore dir -isystem dir -imultilib dir -isysroot dir -M -MM -MF -MG -MP -MQ -MT -nostdinc -P -fworking-directory -remap -trigraphs -undef -Umacro -Wp,option -Xpreprocessor option
Assembler Option
-Wa,option -Xassembler option
Linker Options
object-file-name -llibrary -nostartfiles -nodefaultlibs -nostdlib -pie -rdynamic -s -static -static-libgcc -static-libstdc++ -shared -shared-libgcc -symbolic -T script -Wl,option -Xlinker option -u symbol
Directory Options
-Bprefix -Idir -iplugindir=dir-iquotedir -Ldir -specs=file -I---sysroot=dir
Machine Dependent Options
ARC Options-EB -EL -mmangle-cpu -mcpu=cpu -mtext=text-section -mdata=data-section -mrodata=readonly-data-section

ARM Options-mapcs-frame -mno-apcs-frame -mabi=name -mapcs-stack-check -mno-apcs-stack-check -mapcs-float -mno-apcs-float -mapcs-reentrant -mno-apcs-reentrant -msched-prolog -mno-sched-prolog -mlittle-endian -mbig-endian -mwords-little-endian -mfloat-abi=name -msoft-float -mhard-float -mfpe -mfp16-format=name-mthumb-interwork -mno-thumb-interwork -mcpu=name -march=name -mfpu=name -mstructure-size-boundary=n -mabort-on-noreturn -mlong-calls -mno-long-calls -msingle-pic-base -mno-single-pic-base -mpic-register=reg -mnop-fun-dllimport -mcirrus-fix-invalid-insns -mno-cirrus-fix-invalid-insns -mpoke-function-name -mthumb -marm -mtpcs-frame -mtpcs-leaf-frame -mcaller-super-interworking -mcallee-super-interworking -mtp=name -mword-relocations -mfix-cortex-m3-ldrd

AVR Options-mmcu=mcu -mno-interrupts -mcall-prologues -mtiny-stack -mint8

Blackfin Options-mcpu=cpu[-sirevision] -msim -momit-leaf-frame-pointer -mno-omit-leaf-frame-pointer -mspecld-anomaly -mno-specld-anomaly -mcsync-anomaly -mno-csync-anomaly -mlow-64k -mno-low64k -mstack-check-l1 -mid-shared-library -mno-id-shared-library -mshared-library-id=n -mleaf-id-shared-library -mno-leaf-id-shared-library -msep-data -mno-sep-data -mlong-calls -mno-long-calls -mfast-fp -minline-plt -mmulticore -mcorea -mcoreb -msdram -micplb

CRIS Options-mcpu=cpu -march=cpu -mtune=cpu -mmax-stack-frame=n -melinux-stacksize=n -metrax4 -metrax100 -mpdebug -mcc-init -mno-side-effects -mstack-align -mdata-align -mconst-align -m32-bit -m16-bit -m8-bit -mno-prologue-epilogue -mno-gotplt -melf -maout -melinux -mlinux -sim -sim2 -mmul-bug-workaround -mno-mul-bug-workaround

CRX Options-mmac -mpush-args

Darwin Options-all_load -allowable_client -arch -arch_errors_fatal -arch_only -bind_at_load -bundle -bundle_loader -client_name -compatibility_version -current_version -dead_strip -dependency-file -dylib_file -dylinker_install_name -dynamic -dynamiclib -exported_symbols_list -filelist -flat_namespace -force_cpusubtype_ALL -force_flat_namespace -headerpad_max_install_names -iframework -image_base -init -install_name -keep_private_externs -multi_module -multiply_defined -multiply_defined_unused -noall_load -no_dead_strip_inits_and_terms -nofixprebinding -nomultidefs -noprebind -noseglinkedit -pagezero_size -prebind -prebind_all_twolevel_modules -private_bundle -read_only_relocs -sectalign -sectobjectsymbols -whyload -seg1addr -sectcreate -sectobjectsymbols -sectorder -segaddr -segs_read_only_addr -segs_read_write_addr -seg_addr_table -seg_addr_table_filename -seglinkedit -segprot -segs_read_only_addr -segs_read_write_addr -single_module -static -sub_library -sub_umbrella -twolevel_namespace -umbrella -undefined -unexported_symbols_list -weak_reference_mismatches -whatsloaded -F -gused -gfull -mmacosx-version-min=version -mkernel -mone-byte-bool

DEC Alpha Options-mno-fp-regs -msoft-float -malpha-as -mgas -mieee -mieee-with-inexact -mieee-conformant -mfp-trap-mode=mode -mfp-rounding-mode=mode -mtrap-precision=mode -mbuild-constants -mcpu=cpu-type -mtune=cpu-type -mbwx -mmax -mfix -mcix -mfloat-vax -mfloat-ieee -mexplicit-relocs -msmall-data -mlarge-data -msmall-text -mlarge-text -mmemory-latency=time

DEC Alpha/VMS Options-mvms-return-codes -mdebug-main=prefix -mmalloc64

FR30 Options-msmall-model -mno-lsim

FRV Options-mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 -mhard-float -msoft-float -malloc-cc -mfixed-cc -mdword -mno-dword -mdouble -mno-double -mmedia -mno-media -mmuladd -mno-muladd -mfdpic -minline-plt -mgprel-ro -multilib-library-pic -mlinked-fp -mlong-calls -malign-labels -mlibrary-pic -macc-4 -macc-8 -mpack -mno-pack -mno-eflags -mcond-move -mno-cond-move -moptimize-membar -mno-optimize-membar -mscc -mno-scc -mcond-exec -mno-cond-exec -mvliw-branch -mno-vliw-branch -mmulti-cond-exec -mno-multi-cond-exec -mnested-cond-exec -mno-nested-cond-exec -mtomcat-stats -mTLS -mtls -mcpu=cpu

GNU/Linux Options-mglibc -muclibc -mbionic -mandroid -tno-android-cc -tno-android-ld

H8/300 Options-mrelax -mh -ms -mn -mint32 -malign-300

HPPA Options-march=architecture-type -mbig-switch -mdisable-fpregs -mdisable-indexing -mfast-indirect-calls -mgas -mgnu-ld -mhp-ld -mfixed-range=register-range -mjump-in-delay -mlinker-opt -mlong-calls -mlong-load-store -mno-big-switch -mno-disable-fpregs -mno-disable-indexing -mno-fast-indirect-calls -mno-gas -mno-jump-in-delay -mno-long-load-store -mno-portable-runtime -mno-soft-float -mno-space-regs -msoft-float -mpa-risc-1-0 -mpa-risc-1-1 -mpa-risc-2-0 -mportable-runtime -mschedule=cpu-type -mspace-regs -msio -mwsio -munix=unix-std -nolibdld -static -threads

i386 and x86-64 Options-mtune=cpu-type -march=cpu-type -mfpmath=unit -masm=dialect -mno-fancy-math-387 -mno-fp-ret-in-387 -msoft-float -mno-wide-multiply -mrtd -malign-double -mpreferred-stack-boundary=num-mincoming-stack-boundary=num -mcld -mcx16 -msahf -mmovbe -mcrc32 -mrecip -mvzeroupper -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -mavx -maes -mpclmul -mfsgsbase -mrdrnd -mf16c -mfused-madd -msse4a -m3dnow -mpopcnt -mabm -mbmi -mtbm -mfma4 -mxop -mlwp -mthreads -mno-align-stringops -minline-all-stringops -minline-stringops-dynamically -mstringop-strategy=alg -mpush-args -maccumulate-outgoing-args -m128bit-long-double -m96bit-long-double -mregparm=num -msseregparm -mveclibabi=type -mvect8-ret-in-mem -mpc32 -mpc64 -mpc80 -mstackrealign -momit-leaf-frame-pointer -mno-red-zone -mno-tls-direct-seg-refs -mcmodel=code-model -mabi=name -m32 -m64 -mlarge-data-threshold=num -msse2avx -mfentry -m8bit-idiv -mavx256-split-unaligned-load -mavx256-split-unaligned-store

i386 and x86-64 Windows Options-mconsole -mcygwin -mno-cygwin -mdll-mnop-fun-dllimport -mthread -municode -mwin32 -mwindows -fno-set-stack-executable

IA-64 Options-mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic -mvolatile-asm-stop -mregister-names -msdata -mno-sdata -mconstant-gp -mauto-pic -mfused-madd -minline-float-divide-min-latency -minline-float-divide-max-throughput -mno-inline-float-divide -minline-int-divide-min-latency -minline-int-divide-max-throughput -mno-inline-int-divide -minline-sqrt-min-latency -minline-sqrt-max-throughput -mno-inline-sqrt -mdwarf2-asm -mearly-stop-bits -mfixed-range=register-range -mtls-size=tls-size -mtune=cpu-type -milp32 -mlp64 -msched-br-data-spec -msched-ar-data-spec -msched-control-spec -msched-br-in-data-spec -msched-ar-in-data-spec -msched-in-control-spec -msched-spec-ldc -msched-spec-control-ldc -msched-prefer-non-data-spec-insns -msched-prefer-non-control-spec-insns -msched-stop-bits-after-every-cycle -msched-count-spec-in-critical-path -msel-sched-dont-check-control-spec -msched-fp-mem-deps-zero-cost -msched-max-memory-insns-hard-limit -msched-max-memory-insns=max-insns

IA-64/VMS Options-mvms-return-codes -mdebug-main=prefix -mmalloc64

LM32 Options-mbarrel-shift-enabled -mdivide-enabled -mmultiply-enabled -msign-extend-enabled -muser-enabled

M32R/D Options-m32r2 -m32rx -m32r -mdebug -malign-loops -mno-align-loops -missue-rate=number -mbranch-cost=number -mmodel=code-size-model-type -msdata=sdata-type -mno-flush-func -mflush-func=name -mno-flush-trap -mflush-trap=number -G num

M32C Options-mcpu=cpu -msim -memregs=number

M680x0 Options-march=arch -mcpu=cpu -mtune=tune-m68000 -m68020 -m68020-40 -m68020-60 -m68030 -m68040 -m68060 -mcpu32 -m5200 -m5206e -m528x -m5307 -m5407 -mcfv4e -mbitfield -mno-bitfield -mc68000 -mc68020 -mnobitfield -mrtd -mno-rtd -mdiv -mno-div -mshort -mno-short -mhard-float -m68881 -msoft-float -mpcrel -malign-int -mstrict-align -msep-data -mno-sep-data -mshared-library-id=n -mid-shared-library -mno-id-shared-library -mxgot -mno-xgot

M68hc1x Options-m6811 -m6812 -m68hc11 -m68hc12 -m68hcs12 -mauto-incdec -minmax -mlong-calls -mshort -msoft-reg-count=count

MCore Options-mhardlit -mno-hardlit -mdiv -mno-div -mrelax-immediates -mno-relax-immediates -mwide-bitfields -mno-wide-bitfields -m4byte-functions -mno-4byte-functions -mcallgraph-data -mno-callgraph-data -mslow-bytes -mno-slow-bytes -mno-lsim -mlittle-endian -mbig-endian -m210 -m340 -mstack-increment

MeP Options-mabsdiff -mall-opts -maverage -mbased=n -mbitops -mc=n -mclip -mconfig=name -mcop -mcop32 -mcop64 -mivc2 -mdc -mdiv -meb -mel -mio-volatile -ml -mleadz -mm -mminmax -mmult -mno-opts -mrepeat -ms -msatur -msdram -msim -msimnovec -mtf -mtiny=n

MicroBlaze Options-msoft-float -mhard-float -msmall-divides -mcpu=cpu -mmemcpy -mxl-soft-mul -mxl-soft-div -mxl-barrel-shift -mxl-pattern-compare -mxl-stack-check -mxl-gp-opt -mno-clearbss -mxl-multiply-high -mxl-float-convert -mxl-float-sqrt -mxl-mode-app-model

MIPS Options-EL -EB -march=arch -mtune=arch -mips1 -mips2 -mips3 -mips4 -mips32 -mips32r2 -mips64 -mips64r2 -mips16 -mno-mips16 -mflip-mips16 -minterlink-mips16 -mno-interlink-mips16 -mabi=abi -mabicalls -mno-abicalls -mshared -mno-shared -mplt -mno-plt -mxgot -mno-xgot -mgp32 -mgp64 -mfp32 -mfp64 -mhard-float -msoft-float -msingle-float -mdouble-float -mdsp -mno-dsp -mdspr2 -mno-dspr2 -mfpu=fpu-type -msmartmips -mno-smartmips -mpaired-single -mno-paired-single -mdmx -mno-mdmx -mips3d -mno-mips3d -mmt -mno-mt -mllsc -mno-llsc -mlong64 -mlong32 -msym32 -mno-sym32 -Gnum -mlocal-sdata -mno-local-sdata -mextern-sdata -mno-extern-sdata -mgpopt -mno-gopt -membedded-data -mno-embedded-data -muninit-const-in-rodata -mno-uninit-const-in-rodata -mcode-readable=setting -msplit-addresses -mno-split-addresses -mexplicit-relocs -mno-explicit-relocs -mcheck-zero-division -mno-check-zero-division -mdivide-traps -mdivide-breaks -mmemcpy -mno-memcpy -mlong-calls -mno-long-calls -mmad -mno-mad -mfused-madd -mno-fused-madd -nocpp -mfix-r4000 -mno-fix-r4000 -mfix-r4400 -mno-fix-r4400 -mfix-r10000 -mno-fix-r10000 -mfix-vr4120 -mno-fix-vr4120 -mfix-vr4130 -mno-fix-vr4130 -mfix-sb1 -mno-fix-sb1 -mflush-func=func -mno-flush-func -mbranch-cost=num -mbranch-likely -mno-branch-likely -mfp-exceptions -mno-fp-exceptions -mvr4130-align -mno-vr4130-align -msynci -mno-synci -mrelax-pic-calls -mno-relax-pic-calls -mmcount-ra-address

MMIX Options-mlibfuncs -mno-libfuncs -mepsilon -mno-epsilon -mabi=gnu -mabi=mmixware -mzero-extend -mknuthdiv -mtoplevel-symbols -melf -mbranch-predict -mno-branch-predict -mbase-addresses -mno-base-addresses -msingle-exit -mno-single-exit

MN10300 Options-mmult-bug -mno-mult-bug -mno-am33 -mam33 -mam33-2 -mam34 -mtune=cpu-type -mreturn-pointer-on-d0 -mno-crt0 -mrelax -mliw

PDP-11 Options-mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 -mbcopy -mbcopy-builtin -mint32 -mno-int16 -mint16 -mno-int32 -mfloat32 -mno-float64 -mfloat64 -mno-float32 -mabshi -mno-abshi -mbranch-expensive -mbranch-cheap -munix-asm -mdec-asm

picoChip Options-mae=ae_type -mvliw-lookahead=N -msymbol-as-address -mno-inefficient-warnings

PowerPC OptionsSee RS/6000 and PowerPC Options.

RS/6000 and PowerPC Options-mcpu=cpu-type -mtune=cpu-type -mcmodel=code-model -mpower -mno-power -mpower2 -mno-power2 -mpowerpc -mpowerpc64 -mno-powerpc -maltivec -mno-altivec -mpowerpc-gpopt -mno-powerpc-gpopt -mpowerpc-gfxopt -mno-powerpc-gfxopt -mmfcrf -mno-mfcrf -mpopcntb -mno-popcntb -mpopcntd -mno-popcntd -mfprnd -mno-fprnd -mcmpb -mno-cmpb -mmfpgpr -mno-mfpgpr -mhard-dfp -mno-hard-dfp -mnew-mnemonics -mold-mnemonics -mfull-toc -mminimal-toc -mno-fp-in-toc -mno-sum-in-toc -m64 -m32 -mxl-compat -mno-xl-compat -mpe -malign-power -malign-natural -msoft-float -mhard-float -mmultiple -mno-multiple -msingle-float -mdouble-float -msimple-fpu -mstring -mno-string -mupdate -mno-update -mavoid-indexed-addresses -mno-avoid-indexed-addresses -mfused-madd -mno-fused-madd -mbit-align -mno-bit-align -mstrict-align -mno-strict-align -mrelocatable -mno-relocatable -mrelocatable-lib -mno-relocatable-lib -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian -mdynamic-no-pic -maltivec -mswdiv -msingle-pic-base -mprioritize-restricted-insns=priority -msched-costly-dep=dependence_type -minsert-sched-nops=scheme -mcall-sysv -mcall-netbsd -maix-struct-return -msvr4-struct-return -mabi=abi-type -msecure-plt -mbss-plt -mblock-move-inline-limit=num -misel -mno-isel -misel=yes -misel=no -mspe -mno-spe -mspe=yes -mspe=no -mpaired -mgen-cell-microcode -mwarn-cell-microcode -mvrsave -mno-vrsave -mmulhw -mno-mulhw -mdlmzb -mno-dlmzb -mfloat-gprs=yes -mfloat-gprs=no -mfloat-gprs=single -mfloat-gprs=double -mprototype -mno-prototype -msim -mmvme -mads -myellowknife -memb -msdata -msdata=opt -mvxworks -G num -pthread -mrecip -mrecip=opt -mno-recip -mrecip-precision-mno-recip-precision -mveclibabi=type -mfriz -mno-friz

RX Options-m64bit-doubles -m32bit-doubles -fpu -nofpu-mcpu=-mbig-endian-data -mlittle-endian-data -msmall-data -msim -mno-sim-mas100-syntax -mno-as100-syntax-mrelax-mmax-constant-size=-mint-register=-msave-acc-in-interrupts

S/390 and zSeries Options-mtune=cpu-type -march=cpu-type -mhard-float -msoft-float -mhard-dfp -mno-hard-dfp -mlong-double-64 -mlong-double-128 -mbackchain -mno-backchain -mpacked-stack -mno-packed-stack -msmall-exec -mno-small-exec -mmvcle -mno-mvcle -m64 -m31 -mdebug -mno-debug -mesa -mzarch -mtpf-trace -mno-tpf-trace -mfused-madd -mno-fused-madd -mwarn-framesize -mwarn-dynamicstack -mstack-size -mstack-guard

Score Options-meb -mel -mnhwloop -muls -mmac -mscore5 -mscore5u -mscore7 -mscore7d

SH Options-m1 -m2 -m2e -m2a-nofpu -m2a-single-only -m2a-single -m2a -m3 -m3e -m4-nofpu -m4-single-only -m4-single -m4 -m4a-nofpu -m4a-single-only -m4a-single -m4a -m4al -m5-64media -m5-64media-nofpu -m5-32media -m5-32media-nofpu -m5-compact -m5-compact-nofpu -mb -ml -mdalign -mrelax -mbigtable -mfmovd -mhitachi -mrenesas -mno-renesas -mnomacsave -mieee -mbitops -misize -minline-ic_invalidate -mpadstruct -mspace -mprefergot -musermode -multcost=number -mdiv=strategy -mdivsi3_libfunc=name -mfixed-range=register-range -madjust-unroll -mindexed-addressing -mgettrcost=number -mpt-fixed -maccumulate-outgoing-args -minvalid-symbols

Solaris 2 Options-mimpure-text -mno-impure-text -threads -pthreads -pthread

SPARC Options-mcpu=cpu-type -mtune=cpu-type -mcmodel=code-model -m32 -m64 -mapp-regs -mno-app-regs -mfaster-structs -mno-faster-structs -mfpu -mno-fpu -mhard-float -msoft-float -mhard-quad-float -msoft-quad-float -mlittle-endian -mstack-bias -mno-stack-bias -munaligned-doubles -mno-unaligned-doubles -mv8plus -mno-v8plus -mvis -mno-vis -mfix-at697f

SPU Options-mwarn-reloc -merror-reloc -msafe-dma -munsafe-dma -mbranch-hints -msmall-mem -mlarge-mem -mstdmain -mfixed-range=register-range -mea32 -mea64 -maddress-space-conversion -mno-address-space-conversion -mcache-size=cache-size -matomic-updates -mno-atomic-updates

System V Options-Qy -Qn -YP,paths -Ym,dir

V850 Options-mlong-calls -mno-long-calls -mep -mno-ep -mprolog-function -mno-prolog-function -mspace -mtda=n -msda=n -mzda=n -mapp-regs -mno-app-regs -mdisable-callt -mno-disable-callt -mv850e2v3 -mv850e2 -mv850e1 -mv850es -mv850e -mv850 -mbig-switch

VAX Options-mg -mgnu -munix

VxWorks Options-mrtp -non-static -Bstatic -Bdynamic -Xbind-lazy -Xbind-now

x86-64 OptionsSee i386 and x86-64 Options.

Xstormy16 Options-msim

Xtensa Options-mconst16 -mno-const16 -mfused-madd -mno-fused-madd -mforce-no-pic -mserialize-volatile -mno-serialize-volatile -mtext-section-literals -mno-text-section-literals -mtarget-align -mno-target-align -mlongcalls -mno-longcalls

zSeries OptionsSee S/390 and zSeries Options.

Code Generation Options
-fcall-saved-reg -fcall-used-reg -ffixed-reg -fexceptions -fnon-call-exceptions -funwind-tables -fasynchronous-unwind-tables -finhibit-size-directive -finstrument-functions -finstrument-functions-exclude-function-list=sym,sym,... -finstrument-functions-exclude-file-list=file,file,... -fno-common -fno-ident -fpcc-struct-return -fpic -fPIC -fpie -fPIE -fno-jump-tables -frecord-gcc-switches -freg-struct-return -fshort-enums -fshort-double -fshort-wchar -fverbose-asm -fpack-struct[=n] -fstack-check -fstack-limit-register=reg -fstack-limit-symbol=sym -fno-stack-limit -fsplit-stack -fleading-underscore -ftls-model=model -ftrapv -fwrapv -fbounds-check -fvisibility -fstrict-volatile-bitfields

Options Controlling the Kind of Output

Compilation can involve up to four stages: preprocessing, compilationproper, assembly and linking, always in that order. GCC is capable ofpreprocessing and compiling several files either into severalassembler input files, or into one assembler input file; then eachassembler input file produces an object file, and linking combines allthe object files (those newly compiled, and those specified as input)into an executable file.

For any given input file, the file name suffix determines what kind ofcompilation is done:

C source code which must be preprocessed.
C source code which should not be preprocessed.
C++ source code which should not be preprocessed.
Objective-C source code. Note that you must link with the libobjclibrary to make an Objective-C program work.
Objective-C source code which should not be preprocessed.
Objective-C++ source code. Note that you must link with the libobjclibrary to make an Objective-C++ program work. Note that .M refersto a literal capital M.
Objective-C++ source code which should not be preprocessed.
C, C++, Objective-C or Objective-C++ header file to be turned into aprecompiled header (default), or C, C++ header file to be turned into anAda spec (via the -fdump-ada-spec switch).
C++ source code which must be preprocessed. Note that in .cxx,the last two letters must both be literally x. Likewise,.C refers to a literal capital C.
Objective-C++ source code which must be preprocessed.
Objective-C++ source code which should not be preprocessed.
C++ header file to be turned into a precompiled header or Ada spec.
Fixed form Fortran source code which should not be preprocessed.
Fixed form Fortran source code which must be preprocessed (with the traditionalpreprocessor).
Free form Fortran source code which should not be preprocessed.
Free form Fortran source code which must be preprocessed (with thetraditional preprocessor).
Go source code.
Ada source code file which contains a library unit declaration (adeclaration of a package, subprogram, or generic, or a genericinstantiation), or a library unit renaming declaration (a package,generic, or subprogram renaming declaration). Such files are alsocalled specs.
Ada source code file containing a library unit body (a subprogram orpackage body). Such files are also called bodies.
Assembler code.
Assembler code which must be preprocessed.
An object file to be fed straight into linking.Any file name with no recognized suffix is treated this way.

You can specify the input language explicitly with the -x option:

-x language
Specify explicitly the language for the following input files(rather than letting the compiler choose a default based on the filename suffix). This option applies to all following input files untilthe next -x option. Possible values for language are:

        c  c-header  cpp-output        c++  c++-header  c++-cpp-output        objective-c  objective-c-header  objective-c-cpp-output        objective-c++ objective-c++-header objective-c++-cpp-output        assembler  assembler-with-cpp        ada        f77  f77-cpp-input f95  f95-cpp-input        go        java
-x none
Turn off any specification of a language, so that subsequent files arehandled according to their file name suffixes (as they are if -xhas not been used at all).
Normally the gcc program will exit with the code of 1 if anyphase of the compiler returns a non-success return code. If you specify-pass-exit-codes, the gcc program will instead return withnumerically highest error produced by any phase that returned an errorindication. The C, C++, and Fortran frontends return 4, if an internalcompiler error is encountered.

If you only want some of the stages of compilation, you can use-x (or filename suffixes) to tell gcc where to start, andone of the options -c, -S, or -E to say wheregcc is to stop. Note that some combinations (for example,-x cpp-output -E) instruct gcc to do nothing at all.

Compile or assemble the source files, but do not link. The linkingstage simply is not done. The ultimate output is in the form of anobject file for each source file.

By default, the object file name for a source file is made by replacingthe suffix .c, .i, .s, etc., with .o.

Unrecognized input files, not requiring compilation or assembly, areignored.

Stop after the stage of compilation proper; do not assemble. The outputis in the form of an assembler code file for each non-assembler inputfile specified.

By default, the assembler file name for a source file is made byreplacing the suffix .c, .i, etc., with .s.

Input files that don't require compilation are ignored.

Stop after the preprocessing stage; do not run the compiler proper. Theoutput is in the form of preprocessed source code, which is sent to thestandard output.

Input files which don't require preprocessing are ignored.

-o file
Place output in file file. This applies regardless to whateversort of output is being produced, whether it be an executable file,an object file, an assembler file or preprocessed C code.

If -o is not specified, the default is to put an executablefile in a.out, the object file forsource.suffix in source.o, itsassembler file in source.s, a precompiled header file insource.suffix.gch, and all preprocessed C source onstandard output.

Print (on standard error output) the commands executed to run the stagesof compilation. Also print the version number of the compiler driverprogram and of the preprocessor and the compiler proper.
Like -v except the commands are not executed and argumentsare quoted unless they contain only alphanumeric characters or "./-_".This is useful for shell scripts to capture the driver-generated command lines.
Use pipes rather than temporary files for communication between thevarious stages of compilation. This fails to work on some systems wherethe assembler is unable to read from a pipe; but the GNU assembler hasno trouble.
Print (on the standard output) a description of the command line optionsunderstood by gcc. If the -v option is also specifiedthen --help will also be passed on to the various processesinvoked by gcc, so that they can display the command line optionsthey accept. If the -Wextra option has also been specified(prior to the --help option), then command line options whichhave no documentation associated with them will also be displayed.
Print (on the standard output) a description of target-specific commandline options for each tool. For some targets extra target-specificinformation may also be printed.
Print (on the standard output) a description of the command lineoptions understood by the compiler that fit into all specified classesand qualifiers. These are the supported classes:
This will display all of the optimization options supported by thecompiler.
This will display all of the options controlling warning messagesproduced by the compiler.
This will display target-specific options. Unlike the--target-help option however, target-specific options of thelinker and assembler will not be displayed. This is because thosetools do not currently support the extended --help= syntax.
This will display the values recognized by the --paramoption.
This will display the options supported for language, wherelanguage is the name of one of the languages supported in thisversion of GCC.
This will display the options that are common to all languages.

These are the supported qualifiers:

Display only those options which are undocumented.
Display options which take an argument that appears after an equalsign in the same continuous piece of text, such as:--help=target.
Display options which take an argument that appears as a separate wordfollowing the original option, such as: -o output-file.

Thus for example to display all the undocumented target-specificswitches supported by the compiler the following can be used:


The sense of a qualifier can be inverted by prefixing it with the^ character, so for example to display all binary warningoptions (i.e., ones that are either on or off and that do not take anargument), which have a description the following can be used:


The argument to --help= should not consist solely of invertedqualifiers.

Combining several classes is possible, although this usuallyrestricts the output by so much that there is nothing to display. Onecase where it does work however is when one of the classes istarget. So for example to display all the target-specificoptimization options the following can be used:


The --help= option can be repeated on the command line. Eachsuccessive use will display its requested class of options, skippingthose that have already been displayed.

If the -Q option appears on the command line before the--help= option, then the descriptive text displayed by--help= is changed. Instead of describing the displayedoptions, an indication is given as to whether the option is enabled,disabled or set to a specific value (assuming that the compilerknows this at the point where the --help= option is used).

Here is a truncated example from the ARM port of gcc:

          % gcc -Q -mabi=2 --help=target -c          The following options are target specific:          -mabi=                                2          -mabort-on-noreturn                   [disabled]          -mapcs                                [disabled]

The output is sensitive to the effects of previous command lineoptions, so for example it is possible to find out which optimizationsare enabled at -O2 by using:

        -Q -O2 --help=optimizers

Alternatively you can discover which binary optimizations are enabledby -O3 by using:

        gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts        gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts        diff /tmp/O2-opts /tmp/O3-opts | grep enabled
Do not expand any symbolic links, resolve references to /../or /./, or make the path absolute when generating a relativeprefix.
Display the version number and copyrights of the invoked GCC.
Invoke all subcommands under a wrapper program. The name of thewrapper program and its parameters are passed as a comma separatedlist.

        gcc -c t.c -wrapper gdb,--args

This will invoke all subprograms of gcc undergdb --args, thus the invocation of cc1 will begdb --args cc1 ....
Load the plugin code in file, assumed to be ashared object to be dlopen'd by the compiler. The base name ofthe shared object file is used to identify the plugin for thepurposes of argument parsing (See-fplugin-arg-name-key=value below).Each plugin should define the callback functions specified in thePlugins API.
Define an argument called key with a value of valuefor the plugin called name.
For C and C++ source and include files, generate corresponding Adaspecs.
For input files in any language, generate corresponding Godeclarations in file. This generates Go "const","type", "var", and "func" declarations which may be auseful way to start writing a Go interface to code written in someother language.
Read command-line options from file. The options read areinserted in place of the original @file option. If filedoes not exist, or cannot be read, then the option will be treatedliterally, and not removed.

Options in file are separated by whitespace. A whitespacecharacter may be included in an option by surrounding the entireoption in either single or double quotes. Any character (including abackslash) may be included by prefixing the character to be includedwith a backslash. The file may itself contain additional@file options; any such options will be processed recursively.


Compiling C++ Programs

C++ source files conventionally use one of the suffixes .C,.cc, .cpp, .CPP, .c++, .cp, or.cxx; C++ header files often use .hh, .hpp,.H, or (for shared template code) .tcc; andpreprocessed C++ files use the suffix .ii. GCC recognizesfiles with these names and compiles them as C++ programs even if youcall the compiler the same way as for compiling C programs (usuallywith the name gcc).

However, the use of gcc does not add the C++ library.g++ is a program that calls GCC and treats .c,.h and .i files as C++ source files instead of C sourcefiles unless -x is used, and automatically specifies linkingagainst the C++ library. This program is also useful whenprecompiling a C header file with a .h extension for use in C++compilations. On many systems, g++ is also installed withthe name c++.

When you compile C++ programs, you may specify many of the samecommand-line options that you use for compiling programs in anylanguage; or command-line options meaningful for C and relatedlanguages; or options that are meaningful only for C++ programs. 

Options Controlling C Dialect

The following options control the dialect of C (or languages derivedfrom C, such as C++, Objective-C and Objective-C++) that the compileraccepts:
In C mode, this is equivalent to -std=c90. In C++ mode, it isequivalent to -std=c++98.

This turns off certain features of GCC that are incompatible with ISOC90 (when compiling C code), or of standard C++ (when compiling C++ code),such as the "asm" and "typeof" keywords, andpredefined macros such as "unix" and "vax" that identify thetype of system you are using. It also enables the undesirable andrarely used ISO trigraph feature. For the C compiler,it disables recognition of C++ style // comments as well asthe "inline" keyword.

The alternate keywords "__asm__", "__extension__","__inline__" and "__typeof__" continue to work despite-ansi. You would not want to use them in an ISO C program, ofcourse, but it is useful to put them in header files that might be includedin compilations done with -ansi. Alternate predefined macrossuch as "__unix__" and "__vax__" are also available, with orwithout -ansi.

The -ansi option does not cause non-ISO programs to berejected gratuitously. For that, -pedantic is required inaddition to -ansi.

The macro "__STRICT_ANSI__" is predefined when the -ansioption is used. Some header files may notice this macro and refrainfrom declaring certain functions or defining certain macros that theISO standard doesn't call for; this is to avoid interfering with anyprograms that might use these names for other things.

Functions that would normally be built in but do not have semanticsdefined by ISO C (such as "alloca" and "ffs") are not built-infunctions when -ansi is used.

Determine the language standard. This optionis currently only supported when compiling C or C++.

The compiler can accept several base standards, such as c90 orc++98, and GNU dialects of those standards, such asgnu90 or gnu++98. By specifying a base standard, thecompiler will accept all programs following that standard and thoseusing GNU extensions that do not contradict it. For example,-std=c90 turns off certain features of GCC that areincompatible with ISO C90, such as the "asm" and "typeof"keywords, but not other GNU extensions that do not have a meaning inISO C90, such as omitting the middle term of a "?:"expression. On the other hand, by specifying a GNU dialect of astandard, all features the compiler support are enabled, even whenthose features change the meaning of the base standard and somestrict-conforming programs may be rejected. The particular standardis used by -pedantic to identify which features are GNUextensions given that version of the standard. For example-std=gnu90 -pedantic would warn about C++ style //comments, while -std=gnu99 -pedantic would not.

A value for this option must be provided; possible values are

Support all ISO C90 programs (certain GNU extensions that conflictwith ISO C90 are disabled). Same as -ansi for C code.
ISO C90 as modified in amendment 1.
ISO C99. Note that this standard is not yet fully supported; see<> for more information. Thenames c9x and iso9899:199x are deprecated.
ISO C1X, the draft of the next revision of the ISO C standard.Support is limited and experimental and features enabled by thisoption may be changed or removed if changed in or removed from thestandard draft.
GNU dialect of ISO C90 (including some C99 features). Thisis the default for C code.
GNU dialect of ISO C99. When ISO C99 is fully implemented in GCC,this will become the default. The name gnu9x is deprecated.
GNU dialect of ISO C1X. Support is limited and experimental andfeatures enabled by this option may be changed or removed if changedin or removed from the standard draft.
The 1998 ISO C++ standard plus amendments. Same as -ansi forC++ code.
GNU dialect of -std=c++98. This is the default forC++ code.
The working draft of the upcoming ISO C++0x standard. This optionenables experimental features that are likely to be included inC++0x. The working draft is constantly changing, and any feature that isenabled by this flag may be removed from future versions of GCC if it isnot part of the C++0x standard.
GNU dialect of -std=c++0x. This option enablesexperimental features that may be removed in future versions of GCC.
The option -fgnu89-inline tells GCC to use the traditionalGNU semantics for "inline" functions when in C99 mode.
  This optionis accepted and ignored by GCC versions 4.1.3 up to but not including4.3. In GCC versions 4.3 and later it changes the behavior of GCC inC99 mode. Using this option is roughly equivalent to adding the"gnu_inline" function attribute to all inline functions.

The option -fno-gnu89-inline explicitly tells GCC to use theC99 semantics for "inline" when in C99 or gnu99 mode (i.e., itspecifies the default behavior). This option was first supported inGCC 4.3. This option is not supported in -std=c90 or-std=gnu90 mode.

The preprocessor macros "__GNUC_GNU_INLINE__" and"__GNUC_STDC_INLINE__" may be used to check which semantics arein effect for "inline" functions.

-aux-info filename
Output to the given filename prototyped declarations for all functionsdeclared and/or defined in a translation unit, including those in headerfiles. This option is silently ignored in any language other than C.

Besides declarations, the file indicates, in comments, the origin ofeach declaration (source file and line), whether the declaration wasimplicit, prototyped or unprototyped (I, N for new orO for old, respectively, in the first character after the linenumber and the colon), and whether it came from a declaration or adefinition (C or F, respectively, in the followingcharacter). In the case of function definitions, a K&R-style list ofarguments followed by their declarations is also provided, insidecomments, after the declaration.