Usage: CC1PLPSX.EXE input [switches] Switches: -ffixed- Mark as being unavailable to the compiler -fcall-used- Mark as being corrupted by function calls -fcall-saved- Mark as being preserved across functions -finline-limit- Limits the size of inlined functions to -fident Process #ident directives -fleading-underscore External symbols have a leading underscore -finstrument-functions Instrument function entry/exit with profiling calls -fdump-unnumbered Suppress output of instruction numbers and line number notes in debugging dumps -fprefix-function-name Add a prefix to all function names -fcheck-memory-usage Generate code to check every memory access -fstrict-aliasing Assume strict aliasing rules apply -fargument-noalias-global Assume arguments do not alias each other or globals -fargument-noalias Assume arguments may alias globals but not each other -fargument-alias Specify that arguments may alias each other & globals -fstack-check Insert stack checking code into the program -fpack-struct Pack structure members together without holes -foptimize-register-move Do the full regmove optimization pass -fregmove Enables a register move optimisation -fgnu-linker Output GNU ld formatted global initialisers -fverbose-asm Add extra commentry to assembler output -fdata-sections place data items into their own section -ffunction-sections place each function into its own section -finhibit-size-directive Do not generate .size directives -fcommon Do not put unitialised globals in the common section -ffast-math Improve FP speed by violating ANSI & IEEE rules -fbranch-probabilities Use profiling information for branch probabilities -ftest-coverage Create data files needed by gcov -fprofile-arcs Insert arc based program profiling code -fasynchronous-exceptions Support asynchronous exceptions -fsjlj-exceptions Use setjmp/longjmp to handle exceptions -fnew-exceptions Use the new model for exception handling -fexceptions Enable exception handling -fpic Generate position independent code, if possible -fbranch-count-reg Replace add,compare,branch with branch on count reg -fschedule-insns2 Run two passes of the instruction scheduler -fschedule-insns Reschedule instructions to avoid pipeline stalls -fpretend-float Pretend that host and target use the same FP format -frerun-loop-opt Run the loop optimiser twice -frerun-cse-after-loop Run CSE pass after loop optimisations -fgcse Perform the global common subexpression elimination -fdelayed-branch Attempt to fill delay slots of branch instructions -freg-struct-return Return 'short' aggregates in registers -fpcc-struct-return Return 'short' aggregates in memory, not registers -fcaller-saves Enable saving registers around function calls -fshared-data Mark data as shared rather than private -fsyntax-only Check for syntax errors, then stop -fkeep-static-consts Emit static const variables even if they are not used -finline Pay attention to the 'inline' keyword -fkeep-inline-functions Generate code for funcs even if they are fully inlined -finline-functions Integrate simple functions into their callers -ffunction-cse Allow function addresses to be held in registers -fforce-addr Copy memory address constants into regs before using -fforce-mem Copy memory operands into registers before using -fpeephole Enable machine specific peephole optimisations -fwritable-strings Store strings in writable data section -freduce-all-givs Strength reduce all loop general induction variables -fmove-all-movables Force all loop invariant computations out of loops -funroll-all-loops Perform loop unrolling for all loops -funroll-loops Perform loop unrolling when iteration count is known -fstrength-reduce Perform strength reduction optimisations -fthread-jumps Perform jump threading optimisations -fexpensive-optimizations Perform a number of minor, expensive optimisations -fcse-skip-blocks When running CSE, follow conditional jumps -fcse-follow-jumps When running CSE, follow jumps to their targets -fomit-frame-pointer When possible do not generate stack frames -fdefer-pop Defer popping functions args from stack until later -fvolatile-static Consider all mem refs to static data to be volatile -fvolatile-global Consider all mem refs to global data to be volatile -fvolatile Consider all mem refs through pointers as volatile -ffloat-store Do not store floats in registers -O[number] Set optimisation level to [number] -Os Optimise for space rather than speed -pedantic Issue warnings needed by strict compliance to ANSI C -pedantic-errors Like -pedantic except that errors are produced -w Suppress warnings -W Enable extra warnings -Winline Warn when an inlined function cannot be inlined -Wuninitialized Warn about unitialized automatic variables -Wcast-align Warn about pointer casts which increase alignment -Waggregate-return Warn about returning structures, unions or arrays -Wswitch Warn about enumerated switches missing a specific case -Wshadow Warn when one local variable shadows another -Wunused Warn when a variable is unused -Wid-clash- Warn if 2 identifiers have the same first chars -Wlarger-than- Warn if an object is larger than bytes -p Enable function profiling -o Place output into -G Put global and static data smaller than bytes into a special section (on some targets) -gcoff Generate COFF format debug output -gstabs+ Generate extended STABS format debug output -gstabs Generate STABS format debug output -ggdb Generate default extended debug format output -g Generate default debug format output -aux-info Emit declaration info into .X -quiet Do not display functions compiled or elapsed time -version Display the compiler's version -d[letters] Enable dumps from specific passes of the compiler -dumpbase Base name to be used for dumps from specific passes -sched-verbose- Set the verbosity level of the scheduler --help Display this information Language specific options: -ansi Compile just for ANSI C -fallow-single-precisio Do not promote floats to double if using -traditional -std= Determine language standard -funsigned-bitfields Make bitfields by unsigned by default -fsigned-char Make 'char' be signed by default -funsigned-char Make 'char' be unsigned by default -traditional Attempt to support traditional K&R style C -fno-asm Do not recognise the 'asm' keyword -fno-builtin Do not recognise any built in functions -fhosted Assume normal C execution environment -ffreestanding Assume that standard libraries & main might not exist -fcond-mismatch Allow different types as args of ? operator -fdollars-in-identifier Allow the use of $ inside identifiers -fshort-double Use the same size for double as for float -fshort-enums Use the smallest fitting integer to hold enums -Wall Enable most warning messages -Wbad-function-cast Warn about casting functions to incompatible types -Wmissing-noreturn Warn about functions which might be candidates for attribute noreturn -Wcast-qual Warn about casts which discard qualifiers -Wchar-subscripts Warn about subscripts whose type is 'char' -Wcomment Warn if nested comments are detected -Wcomments Warn if nested comments are detected -Wconversion Warn about possibly confusing type conversions -Wformat Warn about printf format anomalies -Wimplicit-function-dec Warn about implicit function declarations -Wimplicit-int Warn when a declaration does not specify a type -Wimport Warn about the use of the #import directive -Wno-long-long Do not warn about using 'long long' when -pedantic -Wmain Warn about suspicious declarations of main -Wmissing-braces Warn about possibly missing braces around initialisers -Wmissing-declarations Warn about global funcs without previous declarations -Wmissing-prototypes Warn about global funcs without prototypes -Wmultichar Warn about use of multicharacter literals -Wnested-externs Warn about externs not at file scope level -Wparentheses Warn about possible missing parentheses -Wpointer-arith Warn about function pointer arithmetic -Wredundant-decls Warn about multiple declarations of the same object -Wsign-compare Warn about signed/unsigned comparisons -Wunknown-pragmas Warn about unrecognised pragmas -Wstrict-prototypes Warn about non-prototyped function decls -Wtraditional Warn about constructs whose meaning change in ANSI C -Wtrigraphs Warn when trigraphs are encountered -Wwrite-strings Mark strings as 'const char *' Options for Objective C: -gen-decls Dump decls to a .decl file -fgnu-runtime Generate code for GNU runtime environment -fnext-runtime Generate code for NeXT runtime environment -Wselector Warn if a selector has multiple methods -Wno-protocol Do not warn if inherited methods are unimplemented -print-objc-runtime-inf Generate C header of platform specific features Options for C++: -fno-access-control Do not obey access control semantics -fall-virtual Make all member functions virtual -falt-external-template Change when template instances are emitted -fcheck-new Check the return value of new -fconserve-space Reduce size of object files -fno-const-strings Make string literals `char[]' instead of `const char[]' -fno-default-inline Do not inline member functions by default -fno-rtti Do not generate run time type descriptor information -fno-for-scope Scope of for-init-statement vars extends outside -fguiding-decls Implement guiding declarations -fno-gnu-keywords Do not recognise GNU defined keywords -fhandle-signatures Handle signature language constructs -fhonor-std Treat the namespace `std' as a normal namespace -fhuge-objects Enable support for huge objects -fno-implement-inlines Export functions even if they can be inlined -fno-implicit-templates Only emit explicit template instatiations -fno-implicit-inline-te Only emit explicit instatiations of inline templates -finit-priority Handle the init_priority attribute -flabels-ok Labels can be used as first class objects -fnew-abi Enable experimental ABI changes -fno-nonnull-objects Do not assume that a reference is always valid -foperator-names Recognise and/bitand/bitor/compl/not/or/xor -fno-optional-diags Disable optional diagnostics -fpermissive Downgrade conformance errors to warnings -frepo Enable automatic template instantiation -fsquangle Enable squashed name mangling -fstats Display statistics accumulated during compilation -fno-strict-prototype Do not assume that empty prototype means no args -ftemplate-depth- Specify maximum template instantiation depth -fthis-is-variable Make 'this' not be type '* const' -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 -Wreturn-type Warn about inconsistent return types -Woverloaded-virtual Warn about overloaded virtual function names -Wno-ctor-dtor-privacy Don't warn when all ctors/dtors are private -Wnon-virtual-dtor Warn about non virtual destructors -Wextern-inline Warn when a function is declared extern, then inline -Wreorder Warn when the compiler reorders code -Wsynth Warn when synthesis behaviour differs from Cfront -Wno-pmf-conversions Don't warn when type converting pointers to member functions -Weffc++ Warn about violations of Effective C++ style rules -Wsign-promo Warn when overload promotes from unsigned to signed -Wold-style-cast Warn if a C style cast is used in a program -Wno-non-template-frien Don't warn when non-templatized friend functions are declared within a template -Wno-deprecated Don't announce deprecation of compiler features Options for Fortran: -fversion Print g77-specific compiler version info, run internal tests -ff66 Program is written in typical FORTRAN 66 dialect -ff77 Program is written in typical Unix f77 dialect -fno-f77 Program does not use Unix-f77 dialectal features -ff90 Program is written in Fortran-90-ish dialect -fno-automatic Treat local vars and COMMON blocks as if they were named in SAVE statements -fdollar-ok Allow $ in symbol names -fno-f2c f2c-compatible code need not be generated -fno-f2c-library Unsupported; do not generate libf2c-calling code -fflatten-arrays Unsupported; affects code-generation of arrays -ffree-form Program is written in Fortran-90-ish free form -fpedantic Warn about use of (only a few for now) Fortran extensions -fvxt Program is written in VXT (Digital-like) FORTRAN -fno-ugly Disallow all ugly features -fno-ugly-args Hollerith and typeless constants not 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 -fno-ugly-init Initialization via DATA and PARAMETER is type-compatible -fugly-logint Allow INTEGER and LOGICAL interchangeability -fxyzzy Print internal debugging-related info -finit-local-zero Initialize local vars and arrays to zero -fno-backslash Backslashes in character/hollerith constants not special (C-style) -femulate-complex Have front end emulate COMPLEX arithmetic to avoid bugs -fno-underscoring Disable the appending of underscores to externals -fno-second-underscore Never append a second underscore to externals -fintrin-case-initcap Intrinsics spelled as e.g. SqRt -fintrin-case-upper Intrinsics in uppercase -fintrin-case-any Intrinsics letters in arbitrary cases -fmatch-case-initcap Language keywords spelled as e.g. IOStat -fmatch-case-upper Language keywords in uppercase -fmatch-case-any Language keyword letters in arbitrary cases -fsource-case-upper Internally convert most source to uppercase -fsource-case-preserve Internally preserve source case -fsymbol-case-initcap Symbol names spelled in mixed case -fsymbol-case-upper Symbol names in uppercase -fsymbol-case-lower Symbol names in lowercase -fcase-strict-upper Program written in uppercase -fcase-strict-lower Program written in lowercase -fcase-initcap Program written in strict mixed-case -fcase-upper Compile as if program written in uppercase -fcase-lower Compile as if program written in lowercase -fcase-preserve Preserve all spelling (case) used in program -fbadu77-intrinsics-del Delete libU77 intrinsics with bad interfaces -fbadu77-intrinsics-dis Disable libU77 intrinsics with bad interfaces -fbadu77-intrinsics-hid Hide libU77 intrinsics with bad interfaces -ff2c-intrinsics-delete Delete non-FORTRAN-77 intrinsics f2c supports -ff2c-intrinsics-disabl Disable non-FORTRAN-77 intrinsics f2c supports -ff2c-intrinsics-hide Hide non-FORTRAN-77 intrinsics f2c supports -ff90-intrinsics-delete Delete non-FORTRAN-77 intrinsics F90 supports -ff90-intrinsics-disabl Disable non-FORTRAN-77 intrinsics F90 supports -ff90-intrinsics-hide Hide non-FORTRAN-77 intrinsics F90 supports -fgnu-intrinsics-delete Delete non-FORTRAN-77 intrinsics g77 supports -fgnu-intrinsics-disabl Disable non-FORTRAN 77 intrinsics F90 supports -fgnu-intrinsics-hide Hide non-FORTRAN 77 intrinsics F90 supports -fmil-intrinsics-delete Delete MIL-STD 1753 intrinsics -fmil-intrinsics-disabl Disable MIL-STD 1753 intrinsics -fmil-intrinsics-hide Hide MIL-STD 1753 intrinsics -funix-intrinsics-delet Delete libU77 intrinsics -funix-intrinsics-disab Disable libU77 intrinsics -funix-intrinsics-hide Hide libU77 intrinsics -fvxt-intrinsics-delete Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports -fvxt-intrinsics-disabl Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports -fvxt-intrinsics-hide Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports -fzeros Treat initial values of 0 like non-zero values -fdebug-kludge Emit special debugging information for COMMON and EQUIVALENCE -fonetrip Take at least one trip through each iterative DO loop -fno-silent Print names of program units as they are compiled -fno-globals Disable fatal diagnostics about inter-procedural problems -ftypeless-boz Make prefix-radix non-decimal constants be typeless -fbounds-check Generate code to check subscript and substring bounds -ffortran-bounds-check Fortran-specific form of -fbounds-check -Wno-globals Disable warnings about inter-procedural problems -Wsurprising Warn about constructs with surprising meanings -I Add a directory for INCLUDE searching -ffixed-line-length- Set the maximum line length Target specific options: -mno-check-range-divisi Don't trap on integer divide overflow -mcheck-range-division Trap on integer divide overflow -mno-check-zero-divisio Don't trap on integer divide by zero -mcheck-zero-division Trap on integer divide by zero -m3900 Optimize for 3900 -m4650 Optimize for 4650 -mno-fix4300 Don't work around early 4300 hardware bug -mfix4300 Work around early 4300 hardware bug -mno-mad Don't use multiply accumulate -mmad Use multiply accumulate -mdouble-float Don't use single (32-bit) FP only -msingle-float Use single (32-bit) FP only -mel Use little-endian byte order -meb Use big-endian byte order -mno-embedded-data Don't use ROM instead of RAM -membedded-data Use ROM instead of RAM -mno-embedded-pic Don't use embedded PIC -membedded-pic Use embedded PIC -mno-long-calls Don't use indirect calls -mlong-calls Use indirect calls -mno-half-pic Don't use OSF PIC -mhalf-pic Use OSF PIC -mno-abicalls Don't use Irix PIC -mabicalls Use Irix PIC -mgp32 Use 32-bit general registers -mgp64 Use 64-bit general registers -mfp32 Use 32-bit FP registers -mfp64 Use 64-bit FP registers -mhard-float Use hardware floating point -msoft-float Use software floating point -mno-mips-tfile Don't use mips-tfile asm postpass -mmips-tfile Use mips-tfile asm postpass -mno-memcpy Optimize block moves -mmemcpy Don't optimize block moves -mno-stats Don't output compiler statistics -mstats Output compiler statistics -mno-gpopt Don't use GP relative sdata/sbss sections -mno-gpOPT Don't use GP relative sdata/sbss sections -mgpopt Use GP relative sdata/sbss sections -mgpOPT Use GP relative sdata/sbss sections -mno-rnames Don't use symbolic register names -mrnames Use symbolic register names -mgas Use GNU as -mmips-as Use MIPS as -mno-split-addresses Don't optimize lui/addiu address loads -msplit-addresses Optimize lui/addiu address loads -mlong32 Use 32-bit long type -mlong64 Use 64-bit long type -mint64 Use 64-bit int type -mno-mips16 Don't use MIPS16 instructions -mentry Use mips16 entry/exit psuedo ops -mips Specify MIPS ISA -mcpu= Specify CPU for scheduling purposes There are undocumented target specific options as well.