Annotation of GNUtools/cc/invoke.rtf, revision 1.1

1.1     ! root        1: {\rtf0\ansi{\fonttbl\f0\fnil Times-Roman;\f1\fmodern Courier;\f3\ftech Symbol;\f2\fmodern Ohlfs;\f4\fswiss Helvetica;}
        !             2: \f0\fs28 {\info{\comment build from /build/cc_proj/cc/cc/invoke.texi}}
        !             3: \
        !             4: {{\NeXTHelpMarker \markername Invoking GCC;}
        !             5: ,}{\fs88 {\f4 1}\i\
        !             6: GNU CC Command Options}\
        !             7: \
        !             8: When you invoke GNU CC, it normally does preprocessing, 
        !             9: compilation, assembly and linking. The ``overall options'' allow you to stop 
        !            10: this process at an intermediate stage. For example, the {\f4\fs24 -c} option says not to 
        !            11: run the linker. Then the output consists of object files output by the 
        !            12: assembler. \
        !            13: Other options are passed on to one stage of processing. Some 
        !            14: options control the preprocessor and others the compiler itself. Yet other 
        !            15: options control the assembler and linker; most of these are not documented 
        !            16: here, since you rarely need to use any of them. \
        !            17: Most of the command line 
        !            18: options that you can use with GNU CC are useful for C programs; when an option 
        !            19: is only useful with another language (usually C++), the explanation says so 
        !            20: explicitly. If the description for a particular option does not mention a 
        !            21: source language, you can use that option with all supported languages. \
        !            22: {See `Compiling C++ Programs' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Invoking G++;}
        !            23: ,}., for a 
        !            24: summary of special options for compiling C++ programs. \
        !            25: The {\f1\fs24 gcc} program accepts 
        !            26: options and file names as operands. Many options have multiletter names; 
        !            27: therefore multiple single-letter options may {\i not} be grouped: {\f4\fs24 -dr} is very 
        !            28: different from {\f4\fs24 -d -r}. \
        !            29: You can mix options and other arguments. For the most 
        !            30: part, the order you use doesn't matter. Order does matter when you use several 
        !            31: options of the same kind; for example, if you specify {\f4\fs24 -L} more than once, the 
        !            32: directories are searched in the order specified. \
        !            33: Many options have long names 
        !            34: starting with {\f4\fs24 -f} or with {\f4\fs24 -W}---for example, {\f4\fs24 -fforce-mem}, {\f4\fs24 -fstrength-reduce}, {\f4\fs24 
        !            35: -Wformat} and so on. Most of these have both positive and negative forms; the 
        !            36: negative form of {\f4\fs24 -ffoo} would be {\f4\fs24 -fno-foo}. This manual documents only one of 
        !            37: these two forms, whichever one is not the default. \
        !            38:  \
        !            39: {{\NeXTHelpMarker \markername Option Summary;}
        !            40: ,}{\b\fs48\f4 1.1 Option Summary}\
        !            41: \
        !            42: Here is a 
        !            43: summary of all the options, grouped by type. Explanations are in the following 
        !            44: sections. \
        !            45: \
        !            46: {\i Overall Options} {See `Options Controlling the Kind of Output' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Overall Options;}
        !            47: ,}.. {\f1\fs24 -c  -S  -E  -o {\i file}  -pipe  -v  -x {\i language}  }\
        !            48: \
        !            49: \
        !            50: {\i C 
        !            51: Language Options} {See `Options Controlling C Dialect' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C Dialect Options;}
        !            52: ,}.. {\f1\fs24 -ansi  -fcond-mismatch  -fno-asm  -fno-builtin }\
        !            53: {\f1\fs24 
        !            54: -fsigned-bitfields  -fsigned-char  }\
        !            55: {\f1\fs24 
        !            56: -funsigned-bitfields  -funsigned-char  -fwritable-strings }\
        !            57: {\f1\fs24 
        !            58: -traditional  -traditional-cpp  -trigraphs }\
        !            59: \
        !            60: \
        !            61: {\i C++ Language Options} {See `Options Controlling C++ Dialect' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C++ Dialect Options;}
        !            62: ,}.. {\f1\fs24 
        !            63: -fall-virtual  -fdollars-in-identifiers }\
        !            64: {\f1\fs24 -felide-constructors  -fenum-int-equiv }\
        !            65: {\f1\fs24 
        !            66: -fexternal-templates  -fmemoize-lookups }\
        !            67: {\f1\fs24 
        !            68: -fno-strict-prototype  -fnonnull-objects }\
        !            69: {\f1\fs24 -fthis-is-variable  -nostdinc++ }\
        !            70: \
        !            71: \
        !            72: {\i 
        !            73: Warning Options} {See `Options to Request or Suppress Warnings' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Warning Options;}
        !            74: ,}.. {\f1\fs24 -fsyntax-only  -pedantic  -pedantic-errors }\
        !            75: {\f1\fs24 
        !            76: -w  -W  -Wall  -Waggregate-return  -Wcast-align   }\
        !            77: {\f1\fs24 
        !            78: -Wcast-qual  -Wchar-subscript  -Wcomment  -Wconversion }\
        !            79: {\f1\fs24 
        !            80: -Wenum-clash  -Werror  -Wformat  -Wid-clash-{\i len} }\
        !            81: {\f1\fs24 
        !            82: -Wimplicit  -Wimport  -Winline  -Wmissing-prototypes }\
        !            83: {\f1\fs24 
        !            84: -Wnested-externs  -Woverloaded-virtual  -Wparentheses }\
        !            85: {\f1\fs24 
        !            86: -Wpointer-arith  -Wredundant-decls  -Wreturn-type }\
        !            87: {\f1\fs24 
        !            88: -Wshadow  -Wstrict-prototypes  -Wswitch }\
        !            89: {\f1\fs24 
        !            90: -Wtemplate-debugging  -Wtraditional  -Wtrigraphs }\
        !            91: {\f1\fs24 
        !            92: -Wuninitialized  -Wunused  -Wwrite-strings }\
        !            93: \
        !            94: \
        !            95: {\i Debugging Options} {See `Options for Debugging Your Program or GCC' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Debugging Options;}
        !            96: ,}.. {\f1\fs24 -a  -d{\i letters}
        !            97:   -fpretend-float  }\
        !            98: {\f1\fs24 -g  -g{\i level} -ggdb  -gdwarf -gdwarf+ }\
        !            99: {\f1\fs24 
        !           100: -gstabs  -gstabs+  -gcoff -gxcoff  -gxcoff+ }\
        !           101: {\f1\fs24 
        !           102: -p  -pg  -save-temps  -print-libgcc-file-name }\
        !           103: \
        !           104: \
        !           105: {\i Optimization Options} {See `Options that Control Optimization' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Optimize Options;}
        !           106: ,}.. {\f1\fs24 
        !           107: -fcaller-saves  -fcse-follow-jumps  -fcse-skip-blocks }\
        !           108: {\f1\fs24 
        !           109: -fdelayed-branch   -fexpensive-optimizations   }\
        !           110: {\f1\fs24 
        !           111: -ffast-math  -ffloat-store  -fforce-addr  -fforce-mem }\
        !           112: {\f1\fs24 
        !           113: -finline-functions  -fkeep-inline-functions   }\
        !           114: {\f1\fs24 
        !           115: -fno-default-inline  -fno-defer-pop  -fno-function-cse }\
        !           116: {\f1\fs24 
        !           117: -fno-inline  -fno-peephole  -fomit-frame-pointer   }\
        !           118: {\f1\fs24 
        !           119: -frerun-cse-after-loop  -fschedule-insns   }\
        !           120: {\f1\fs24 
        !           121: -fschedule-insns2  -fstrength-reduce  -fthread-jumps  }\
        !           122: {\f1\fs24 
        !           123: -funroll-all-loops  -funroll-loops }\
        !           124: {\f1\fs24 -O  -O2 }\
        !           125: \
        !           126: \
        !           127: {\i Preprocessor Options} {See `Options Controlling the Preprocessor' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Preprocessor Options;}
        !           128: ,}.. {\f1\fs24 -A{\i assertion}
        !           129:   -C  -dD  -dM  -dN }\
        !           130: {\f1\fs24 -D{\i macro}={\i defn}  -E  -H }\
        !           131: {\f1\fs24 -idirafter {\i dir} }\
        !           132: {\f1\fs24 -include {\i file}
        !           133:   -imacros {\i file} }\
        !           134: {\f1\fs24 -iprefix {\i file}  -iwithprefix {\i dir} }\
        !           135: {\f1\fs24 -iwithprefixbefore {\i dir} }\
        !           136: {\f1\fs24 
        !           137: -M  -MD  -MM  -MMD  -nostdinc  -P  -trigraphs  -U{\i macro} }\
        !           138: \
        !           139: \
        !           140: {\i Assembler Option} {See `Passing Options to the Assembler' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Assembler Options;}
        !           141: ,}.. {\f1\fs24 -Wa,{\i 
        !           142: option} }\
        !           143: \
        !           144: \
        !           145: {\i Linker Options} {See `Options for Linking' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Link Options;}
        !           146: ,}.. {\f1\fs24 {\i object-file-name} }\
        !           147: {\f1\fs24 -l{\i library}  -nostartfiles  -nostdlib   }\
        !           148: {\f1\fs24 
        !           149: -static  -shared  -symbolic   }\
        !           150: {\f1\fs24 -Wl,{\i option}  -Xlinker {\i option} }\
        !           151: {\f1\fs24 -u {\i symbol} }\
        !           152: \
        !           153: \
        !           154: {\i Directory 
        !           155: Options} {See `Options for Directory Search' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Directory Options;}
        !           156: ,}.. {\f1\fs24 -B{\i prefix}  -I{\i dir}  -I-  -L{\i dir} }\
        !           157: \
        !           158: \
        !           159: {\i Target Options} {See `' {\NeXTHelpLink \markername ;\linkFilename .
        !           160: is way to avoid overfull hbox. -- rms
        !           161: sor}.
        !           162: .
        !           163: are
        !           164: pes.
        !           165: 
        !           166: ;\linkMarkername {Target Options;}
        !           167: ,}.. {\f1\fs24 -b {\i machine}  -V {\i version} }\
        !           168: \
        !           169: \
        !           170: {\i 
        !           171: Machine Dependent Options} {See `Hardware Models and Configurations' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Submodel Options;}
        !           172: ,}.. {\f1\fs24 {\i M680x0 Options} }\
        !           173: {\f1\fs24 
        !           174: -m68000  -m68020  -m68020-40  -m68030  -m68040  -m68881   }\
        !           175: {\f1\fs24 
        !           176: -mbitfield  -mc68000  -mc68020  -mfpa  -mnobitfield   }\
        !           177: {\f1\fs24 
        !           178: -mrtd  -mshort  -msoft-float  }\
        !           179: \
        !           180: {\f1\fs24 {\i VAX Options} }\
        !           181: {\f1\fs24 -mg  -mgnu  -munix }\
        !           182: \
        !           183: {\f1\fs24 {\i SPARC Options} }\
        !           184: {\f1\fs24 
        !           185: -mepilogue  -mfpu  -mhard-float }\
        !           186: {\f1\fs24 -mno-fpu  -mno-epilogue  -msoft-float }\
        !           187: {\f1\fs24 
        !           188: -msparclite  -mv8 }\
        !           189: \
        !           190: {\f1\fs24 {\i Convex Options} }\
        !           191: {\f1\fs24 -mc1  -mc2  -mc32  -mc34  -mc38 }\
        !           192: {\f1\fs24 
        !           193: -margcount  -mnoargcount }\
        !           194: {\f1\fs24 -mlong32  -mlong64 }\
        !           195: {\f1\fs24 
        !           196: -mbolatile-cache  -mvolatile-nocache }\
        !           197: \
        !           198: {\f1\fs24 {\i AMD29K Options}  }\
        !           199: {\f1\fs24 
        !           200: -m29000  -m29050  -mbw  -mdw  -mkernel-registers }\
        !           201: {\f1\fs24 
        !           202: -mlarge  -mnbw  -mnodw  -mnormal  -msmall  -mstack-check }\
        !           203: {\f1\fs24 -muser-registers }\
        !           204: \
        !           205: {\f1\fs24 {\i 
        !           206: M88K Options} }\
        !           207: {\f1\fs24 -m88000  -m88100  -m88110  -mbig-pic   }\
        !           208: {\f1\fs24 
        !           209: -mcheck-zero-division  -mhandle-large-shift  }\
        !           210: {\f1\fs24 
        !           211: -midentify-revision  -mno-check-zero-division  }\
        !           212: {\f1\fs24 
        !           213: -mno-ocs-debug-info  -mno-ocs-frame-position  }\
        !           214: {\f1\fs24 
        !           215: -mno-optimize-arg-area  -mno-serialize-volatile }\
        !           216: {\f1\fs24 
        !           217: -mno-underscores  -mocs-debug-info }\
        !           218: {\f1\fs24 -mocs-frame-position  -moptimize-arg-area }\
        !           219: {\f1\fs24 
        !           220: -mserialize-volatile  -mshort-data-{\i num}  -msvr3  }\
        !           221: {\f1\fs24 
        !           222: -msvr4  -mtrap-large-shift  -muse-div-instruction  }\
        !           223: {\f1\fs24 
        !           224: -mversion-03.00  -mwarn-passed-structs }\
        !           225: \
        !           226: {\f1\fs24 {\i RS/6000 Options and PowerPC} }\
        !           227: {\f1\fs24 -mcpu={\i 
        !           228: cpu type} }\
        !           229: {\f1\fs24 -mpower -mno-power -mpower2 -pno-power2 }\
        !           230: {\f1\fs24 
        !           231: -mpowerpc -mno-powerpc -mpowerpcsqr -mno-powerpcsqr }\
        !           232: {\f1\fs24 -mpowerpc64 -mno-powerpc64 }\
        !           233: {\f1\fs24 
        !           234: -mnew-mnemonics -mno-new-mnemonics }\
        !           235: {\f1\fs24 
        !           236: -mnormal-toc   -mminimal-toc  -mno-fop-in-toc }\
        !           237: \
        !           238: {\f1\fs24 {\i RT Options} }\
        !           239: {\f1\fs24 
        !           240: -mcall-lib-mul  -mfp-arg-in-fpregs  -mfp-arg-in-gregs }\
        !           241: {\f1\fs24 
        !           242: -mfull-fp-blocks  -mhc-struct-return  -min-line-mul }\
        !           243: {\f1\fs24 
        !           244: -mminimum-fp-blocks  -mnohc-struct-return }\
        !           245: \
        !           246: {\f1\fs24 {\i MIPS Options} }\
        !           247: {\f1\fs24 -mcpu={\i cpu  type}
        !           248:   -mips2  -mips3  -mint64 }\
        !           249: {\f1\fs24 -mlong64  -mlonglong128  -mmips-as  -mgas  -mrnames }\
        !           250: {\f1\fs24 
        !           251: -mno-rnames  -mgpopt  -mno-gpopt  -mstats  -mno-stats }\
        !           252: {\f1\fs24 
        !           253: -mmemcpy  -mno-memcpy  -mno-mips-tfile  -mmips-tfile }\
        !           254: {\f1\fs24 
        !           255: -msoft-float  -mhard-float  -mabicalls  -mno-abicalls }\
        !           256: {\f1\fs24 
        !           257: -mhalf-pic  -mno-half-pic -mlong-calls -mno-long-calls }\
        !           258: {\f1\fs24 -G  {\i num}  -nocpp }\
        !           259: \
        !           260: {\f1\fs24 {\i 
        !           261: i386 Options} }\
        !           262: {\f1\fs24 -m486  -mno-486  -msoft-float  -msvr3-shlib  -mieee-fp }\
        !           263: {\f1\fs24 
        !           264: -mno-fp-ret-in-387 }\
        !           265: \
        !           266: {\f1\fs24 {\i HPPA Options} }\
        !           267: {\f1\fs24 -mpa-risc-1-0 }\
        !           268: {\f1\fs24 -mpa-risc-1-1 }\
        !           269: {\f1\fs24 -mlong-calls }\
        !           270: {\f1\fs24 
        !           271: -mdisable-fpregs }\
        !           272: {\f1\fs24 -mdisable-indexing }\
        !           273: {\f1\fs24 -mtrailing-colon }\
        !           274: \
        !           275: {\f1\fs24 {\i Intel 960 Options} }\
        !           276: {\f1\fs24 -m{\i 
        !           277: cpu type} }\
        !           278: {\f1\fs24 -mnumerics  -msoft-float }\
        !           279: {\f1\fs24 -mcode-align  -mno-code-align }\
        !           280: {\f1\fs24 
        !           281: -mleaf-procedures  -mno-leaf-procedures }\
        !           282: {\f1\fs24 -mtail-call  -mno-tail-call }\
        !           283: {\f1\fs24 
        !           284: -mcomplex-addr  -mno-complex-addr }\
        !           285: {\f1\fs24 -mclean-linkage  -mno-clean-linkage }\
        !           286: {\f1\fs24 
        !           287: -mic-compat  -mic2.0-compat  -mic3.0-compat }\
        !           288: {\f1\fs24 -masm-compat  -mintel-asm }\
        !           289: {\f1\fs24 
        !           290: -mstrict-align  -mno-strict-align }\
        !           291: {\f1\fs24 -mold-align  -mno-old-align }\
        !           292: \
        !           293: {\f1\fs24 {\i 
        !           294: DEC Alpha Options} }\
        !           295: {\f1\fs24 -mfp-regs  -mno-fp-regs  -mno-soft-float }\
        !           296: {\f1\fs24 -msoft-float }\
        !           297: \
        !           298: {\f1\fs24 {\i 
        !           299: Clipper Options} }\
        !           300: {\f1\fs24 -mc300 -mc400 }\
        !           301: \
        !           302: {\f1\fs24 {\i System V Options} }\
        !           303: {\f1\fs24 -G  -Qy  -Qn  -YP,{\i paths}  -Ym,{\i 
        !           304: dir} }\
        !           305: \
        !           306: \
        !           307: {\i Code Generation Options} {See `Options for Code Generation Conventions' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Code Gen Options;}
        !           308: ,}.. {\f1\fs24 -fcall-saved-{\i reg}  -fcall-used-{\i reg}  }\
        !           309: {\f1\fs24 -ffixed-{\i reg}
        !           310:   -finhibit-size-directive  }\
        !           311: {\f1\fs24 -fno-common  -fno-ident }\
        !           312: {\f1\fs24 
        !           313: -fno-gnu-linker  -fpcc-struct-return  -fpic  -fPIC  }\
        !           314: {\f1\fs24 
        !           315: -freg-struct-return  -fshared-data  -fshort-enums }\
        !           316: {\f1\fs24 
        !           317: -fshort-double  -fvolatile  -fvolatile-global }\
        !           318: {\f1\fs24 -fverbose-asm }\
        !           319: \
        !           320: \
        !           321:  \
        !           322: {{\NeXTHelpMarker \markername Overall Options;}
        !           323: ,}{\b\fs48\f4 1.2 Options 
        !           324: Controlling the Kind of Output}\
        !           325: \
        !           326: Compilation can involve up to four stages: 
        !           327: preprocessing, compilation proper, assembly and linking, always in that order. 
        !           328: The first three stages apply to an individual source file, and end by 
        !           329: producing an object file; linking combines all the object files (those newly 
        !           330: compiled, and those specified as input) into an executable file. \
        !           331: For any given 
        !           332: input file, the file name suffix determines what kind of compilation is done: \
        !           333: \
        !           334: {\f1\fs24 {\i 
        !           335: file}.c} C source code which must be preprocessed. \
        !           336: \
        !           337: {\f1\fs24 {\i file}.i} C source code which 
        !           338: should not be preprocessed. \
        !           339: \
        !           340: {\f1\fs24 {\i file}.ii} C++ source code which should not be 
        !           341: preprocessed. \
        !           342: \
        !           343: {\f1\fs24 {\i file}.m} Objective-C source code. Note that you must link with the 
        !           344: library `{\f1\fs24 libobjc.a}' to make an Objective-C program work. \
        !           345: \
        !           346: {\f1\fs24 {\i file}.h} C header file 
        !           347: (not to be compiled or linked). \
        !           348: \
        !           349: {\f1\fs24 {\i file}.cc} \
        !           350: {\f1\fs24 {\i file}.cxx} \
        !           351: {\f1\fs24 {\i file}.C} C++ source code which 
        !           352: must be preprocessed. Note that in {\f4\fs24 .cxx}, the last two letters must both be 
        !           353: literally {\f4\fs24 x}. Likewise, {\f4\fs24 .C} refers to a literal capital C. \
        !           354: \
        !           355: {\f1\fs24 {\i file}.s} Assembler 
        !           356: code. \
        !           357: \
        !           358: {\f1\fs24 {\i file}.S} Assembler code which must be preprocessed. \
        !           359: \
        !           360: {\f1\fs24 {\i other}} An object file 
        !           361: to be fed straight into linking. Any file name with no recognized suffix is 
        !           362: treated this way. \
        !           363: \
        !           364: You can specify the input language explicitly with the {\f4\fs24 -x} 
        !           365: option: \
        !           366: \
        !           367: {\f1\fs24 -x {\i language}} Specify explicitly the {\i language} for the following input 
        !           368: files (rather than letting the compiler choose a default based on the file 
        !           369: name suffix). This option applies to all following input files until the next {\f4\fs24 
        !           370: -x} option. Possible values for {\i language} are: {\f1\fs24 c  objective-c  c++ }\
        !           371: {\f1\fs24 
        !           372: c-header  cpp-output  c++-cpp-output }\
        !           373: {\f1\fs24 assembler  assembler-with-cpp }\
        !           374: \
        !           375: \
        !           376: {\f1\fs24 -x none} 
        !           377: Turn off any specification of a language, so that subsequent files are handled 
        !           378: according to their file name suffixes (as they are if {\f4\fs24 -x} has not been used at 
        !           379: all). \
        !           380: \
        !           381: If you only want some of the stages of compilation, you can use {\f4\fs24 -x} (or 
        !           382: filename suffixes) to tell {\f1\fs24 gcc} where to start, and one of the options {\f4\fs24 -c}, {\f4\fs24 -S}, 
        !           383: or {\f4\fs24 -E} to say where {\f1\fs24 gcc} is to stop. Note that some combinations (for example, {\f4\fs24 
        !           384: -x cpp-output -E} instruct {\f1\fs24 gcc} to do nothing at all. \
        !           385: \
        !           386: {\f1\fs24 -c} Compile or assemble the 
        !           387: source files, but do not link. The linking stage simply is not done. The 
        !           388: ultimate output is in the form of an object file for each source file. \
        !           389: By 
        !           390: default, the object file name for a source file is made by replacing the 
        !           391: suffix {\f4\fs24 .c}, {\f4\fs24 .i}, {\f4\fs24 .s}, etc., with {\f4\fs24 .o}. \
        !           392: Unrecognized input files, not requiring 
        !           393: compilation or assembly, are ignored. \
        !           394: \
        !           395: {\f1\fs24 -S} Stop after the stage of compilation 
        !           396: proper; do not assemble. The output is in the form of an assembler code file 
        !           397: for each non-assembler input file specified. \
        !           398: By default, the assembler file 
        !           399: name for a source file is made by replacing the suffix {\f4\fs24 .c}, {\f4\fs24 .i}, etc., with {\f4\fs24 .s}. \
        !           400: 
        !           401: Input files that don't require compilation are ignored. \
        !           402: \
        !           403: {\f1\fs24 -E} Stop after the 
        !           404: preprocessing stage; do not run the compiler proper. The output is in the form 
        !           405: of preprocessed source code, which is sent to the standard output. \
        !           406: Input files 
        !           407: which don't require preprocessing are ignored. \
        !           408: \
        !           409: {\f1\fs24 -o {\i file}} Place output in file {\i 
        !           410: file}. This applies regardless to whatever sort of output is being produced, 
        !           411: whether it be an executable file, an object file, an assembler file or 
        !           412: preprocessed C code. \
        !           413: Since only one output file can be specified, it does not 
        !           414: make sense to use {\f4\fs24 -o} when compiling more than one input file, unless you are 
        !           415: producing an executable file as output. \
        !           416: If {\f4\fs24 -o} is not specified, the default is 
        !           417: to put an executable file in `{\f1\fs24 a.out}', the object file for `{\f1\fs24 {\i source}.{\i suffix}}' in `{\f1\fs24 {\i 
        !           418: source}.o}', its assembler file in `{\f1\fs24 {\i source}.s}', and all preprocessed C source on 
        !           419: standard output. \
        !           420: \
        !           421: {\f1\fs24 -v} Print (on standard error output) the commands executed to 
        !           422: run the stages of compilation. Also print the version number of the compiler 
        !           423: driver program and of the preprocessor and the compiler proper. \
        !           424: \
        !           425: {\f1\fs24 -pipe} Use 
        !           426: pipes rather than temporary files for communication between the various stages 
        !           427: of compilation. This fails to work on some systems where the assembler is 
        !           428: unable to read from a pipe; but the GNU assembler has no trouble. \
        !           429: \
        !           430: {{\NeXTHelpMarker \markername Invoking G++;}
        !           431: ,}{\b\fs48\f4 1.3 Compiling 
        !           432: C++ Programs}\
        !           433: \
        !           434: C++ source files conventionally use one of the suffixes {\f4\fs24 .C}, {\f4\fs24 .cc}, 
        !           435: or {\f4\fs24 .cxx}; preprocessed C++ files use the suffix {\f4\fs24 .ii}. GNU CC recognizes files 
        !           436: with these names and compiles them as C++ programs even if you call the 
        !           437: compiler the same way as for compiling C programs (usually with the name {\f1\fs24 gcc}). \
        !           438: 
        !           439: However, C++ programs often require class libraries as well as a compiler that 
        !           440: understands the C++ language---and under some circumstances, you might want to 
        !           441: compile programs from standard input, or otherwise without a suffix that flags 
        !           442: them as C++ programs. {\f1\fs24 g++} is a shell script that calls GNU CC with the default 
        !           443: language set to C++, and automatically specifies linking against the GNU class 
        !           444: library libg++. {\fs18 Prior to release 2 of the compiler, there was a separate {\f1\fs24 g++} 
        !           445: compiler. That version was based on GNU CC, but not integrated with it. 
        !           446: Versions of {\f1\fs24 g++} with a {\f4\fs24 1.{\i xx}} version number---for example, {\f1\fs24 g++} version 1.37 or 
        !           447: 1.42---are much less reliable than the versions integrated with GCC 2. 
        !           448: Moreover, combining G++ {\f4\fs24 1.{\i xx}} with a version 2 GCC will simply not work.} On 
        !           449: many systems, the script {\f1\fs24 g++} is also installed with the name {\f1\fs24 c++}. \
        !           450: When you 
        !           451: compile C++ programs, you may specify many of the same command-line options 
        !           452: that you use for compiling programs in any language; or command-line options 
        !           453: meaningful for C and related languages; or options that are meaningful only 
        !           454: for C++ programs. {See `Options Controlling C Dialect' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C Dialect Options;}
        !           455: ,}., for explanations of options for languages related to C. {See `Options Controlling C++ Dialect' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C++ Dialect Options;}
        !           456: ,}., 
        !           457: for explanations of options that are meaningful only for C++ programs. \
        !           458: {{\NeXTHelpMarker \markername C Dialect Options;}
        !           459: ,}{\b\fs48\f4 1.4 Options 
        !           460: Controlling C Dialect}\
        !           461: \
        !           462: The following options control the dialect of C (or 
        !           463: languages derived from C, such as C++ and Objective C) that the compiler 
        !           464: accepts: \
        !           465: \
        !           466: {\f1\fs24 -ansi} Support all ANSI standard C programs. \
        !           467: This turns off certain 
        !           468: features of GNU C that are incompatible with ANSI C, such as the {\f1\fs24 asm}, {\f1\fs24 inline} 
        !           469: and {\f1\fs24 typeof} keywords, and predefined macros such as {\f1\fs24 unix} and {\f1\fs24 vax} that identify 
        !           470: the type of system you are using. It also enables the undesirable and rarely 
        !           471: used ANSI trigraph feature, and disallows {\f4\fs24 $} as part of identifiers. \
        !           472: The 
        !           473: alternate keywords {\f1\fs24 __asm__}, {\f1\fs24 __extension__}, {\f1\fs24 __inline__} and {\f1\fs24 __typeof__} continue 
        !           474: to work despite {\f4\fs24 -ansi}. You would not want to use them in an ANSI C program, of 
        !           475: course, but it useful to put them in header files that might be included in 
        !           476: compilations done with {\f4\fs24 -ansi}. Alternate predefined macros such as {\f1\fs24 __unix__} and {\f1\fs24 
        !           477: __vax__} are also available, with or without {\f4\fs24 -ansi}. \
        !           478: The {\f4\fs24 -ansi} option does not 
        !           479: cause non-ANSI programs to be rejected gratuitously. For that, {\f4\fs24 -pedantic} is 
        !           480: required in addition to {\f4\fs24 -ansi}. {See `' {\NeXTHelpLink \markername ;\linkFilename .
        !           481: is required in
        !           482: h or
        !           483: d
        !           484: g++} compiler.  That version was based on GNU
        !           485: CC;\linkMarkername {Warning Options;}
        !           486: ,}.. \
        !           487: The macro {\f1\fs24 __STRICT_ANSI__} is predefined when 
        !           488: the {\f4\fs24 -ansi} option is used. Some header files may notice this macro and refrain 
        !           489: from declaring certain functions or defining certain macros that the ANSI 
        !           490: standard doesn't call for; this is to avoid interfering with any programs that 
        !           491: might use these names for other things. \
        !           492: The functions {\f1\fs24 alloca}, {\f1\fs24 abort}, {\f1\fs24 exit}, and {\f1\fs24 
        !           493: _exit} are not builtin functions when {\f4\fs24 -ansi} is used. \
        !           494: \
        !           495: {\f1\fs24 -fno-asm} Do not recognize {\f1\fs24 
        !           496: asm}, {\f1\fs24 inline} or {\f1\fs24 typeof} as a keyword. These words may then be used as 
        !           497: identifiers. You can use the keywords {\f1\fs24 __asm__}, {\f1\fs24 __inline__} and {\f1\fs24 __typeof__} 
        !           498: instead. {\f4\fs24 -ansi} implies {\f4\fs24 -fno-asm}. \
        !           499: \
        !           500: {\f1\fs24 -fno-builtin} Don't recognize builtin 
        !           501: functions that do not begin with two leading underscores. Currently, the 
        !           502: functions affected include {\f1\fs24 abort}, {\f1\fs24 abs}, {\f1\fs24 alloca}, {\f1\fs24 cos}, {\f1\fs24 exit}, {\f1\fs24 fabs}, {\f1\fs24 ffs}, {\f1\fs24 labs}, {\f1\fs24 
        !           503: memcmp}, {\f1\fs24 memcpy}, {\f1\fs24 sin}, {\f1\fs24 sqrt}, {\f1\fs24 strcmp}, {\f1\fs24 strcpy}, and {\f1\fs24 strlen}. \
        !           504: GCC normally generates 
        !           505: special code to handle certain builtin functions more efficiently; for 
        !           506: instance, calls to {\f1\fs24 alloca} may become single instructions that adjust the stack 
        !           507: directly, and calls to {\f1\fs24 memcpy} may become inline copy loops. The resulting code 
        !           508: is often both smaller and faster, but since the function calls no longer 
        !           509: appear as such, you cannot set a breakpoint on those calls, nor can you change 
        !           510: the behavior of the functions by linking with a different library. \
        !           511: The {\f4\fs24 -ansi} 
        !           512: option prevents {\f1\fs24 alloca} and {\f1\fs24 ffs} from being builtin functions, since these 
        !           513: functions do not have an ANSI standard meaning. \
        !           514: \
        !           515: {\f1\fs24 -trigraphs} Support ANSI C 
        !           516: trigraphs. You don't want to know about this brain-damage. The {\f4\fs24 -ansi} option 
        !           517: implies {\f4\fs24 -trigraphs}. \
        !           518: \
        !           519: {\f1\fs24 -traditional} Attempt to support some aspects of 
        !           520: traditional C compilers. Specifically: \
        !           521: All {\f1\fs24 extern} declarations take effect 
        !           522: globally even if they are written inside of a function definition. This 
        !           523: includes implicit declarations of functions. \
        !           524: The newer keywords {\f1\fs24 typeof}, {\f1\fs24 inline}
        !           525: , {\f1\fs24 signed}, {\f1\fs24 const} and {\f1\fs24 volatile} are not recognized. (You can still use the 
        !           526: alternative keywords such as {\f1\fs24 __typeof__}, {\f1\fs24 __inline__}, and so on.) \
        !           527: Comparisons 
        !           528: between pointers and integers are always allowed. \
        !           529: Integer types {\f1\fs24 unsigned short} 
        !           530: and {\f1\fs24 unsigned char} promote to {\f1\fs24 unsigned int}. \
        !           531: Out-of-range floating point 
        !           532: literals are not an error. \
        !           533: Certain constructs which ANSI regards as a single 
        !           534: invalid preprocessing number, such as {\f4\fs24 0xe-0xd}, are treated as expressions 
        !           535: instead. \
        !           536: String ``constants'' are not necessarily constant; they are stored in 
        !           537: writable space, and identical looking constants are allocated separately. 
        !           538: (This is the same as the effect of {\f4\fs24 -fwritable-strings}.) \
        !           539: All automatic 
        !           540: variables not declared {\f1\fs24 register} are preserved by {\f1\fs24 longjmp}. Ordinarily, GNU C 
        !           541: follows ANSI C: automatic variables not declared {\f1\fs24 volatile} may be clobbered. \
        !           542: In 
        !           543: the preprocessor, comments convert to nothing at all, rather than to a space. 
        !           544: This allows traditional token concatenation. \
        !           545: In the preprocessor, macro 
        !           546: arguments are recognized within string constants in a macro definition (and 
        !           547: their values are stringified, though without additional quote marks, when they 
        !           548: appear in such a context). The preprocessor always considers a string constant 
        !           549: to end at a newline. \
        !           550: The predefined macro {\f1\fs24 __STDC__} is not defined when you use {\f4\fs24 
        !           551: -traditional}, but {\f1\fs24 __GNUC__} is (since the GNU extensions which {\f1\fs24 __GNUC__} 
        !           552: indicates are not affected by {\f4\fs24 -traditional}). If you need to write header files 
        !           553: that work differently depending on whether {\f4\fs24 -traditional} is in use, by testing 
        !           554: both of these predefined macros you can distinguish four situations: GNU C, 
        !           555: traditional GNU C, other ANSI C compilers, and other old C compilers. {See `Standard Predefined
        !           556: Macros,cpp.info,The C Preprocessor' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Standard Predefined;}
        !           557: ,}., for 
        !           558: more discussion of these and other predefined macros. \
        !           559: The preprocessor 
        !           560: considers a string constant to end at a newline (unless the newline is escaped 
        !           561: with {\f4\fs24 \\}). (Without {\f4\fs24 -traditional}, string constants can contain the newline 
        !           562: character as typed.) \
        !           563: The character escape sequences {\f4\fs24 \\x} and {\f4\fs24 \\a} evaluate as 
        !           564: the literal characters {\f4\fs24 x} and {\f4\fs24 a} respectively. Without {\f4\fs24 -traditional}, {\f4\fs24 \\x} is a 
        !           565: prefix for the hexadecimal representation of a character, and {\f4\fs24 \\a} produces a 
        !           566: bell. \
        !           567: In C++ programs, assignment to {\f1\fs24 this} is permitted with {\f4\fs24 -traditional}. (The 
        !           568: option {\f4\fs24 -fthis-is-variable} also has this effect.) \
        !           569: \
        !           570: You may wish to use {\f4\fs24 
        !           571: -fno-builtin} as well as {\f4\fs24 -traditional} if your program uses names that are 
        !           572: normally GNU C builtin functions for other purposes of its own. \
        !           573: \
        !           574: {\f1\fs24 
        !           575: -traditional-cpp} Attempt to support some aspects of traditional C 
        !           576: preprocessors. This includes the last three items in the table immediately 
        !           577: above, but none of the other effects of {\f4\fs24 -traditional}. \
        !           578: \
        !           579: {\f1\fs24 -fcond-mismatch} Allow 
        !           580: conditional expressions with mismatched types in the second and third 
        !           581: arguments. The value of such an expression is void. \
        !           582: \
        !           583: {\f1\fs24 -funsigned-char} Let the 
        !           584: type {\f1\fs24 char} be unsigned, like {\f1\fs24 unsigned char}. \
        !           585: Each kind of machine has a default 
        !           586: for what {\f1\fs24 char} should be. It is either like {\f1\fs24 unsigned char} by default or like {\f1\fs24 
        !           587: signed char} by default. \
        !           588: Ideally, a portable program should always use {\f1\fs24 signed 
        !           589: char} or {\f1\fs24 unsigned char} when it depends on the signedness of an object. But many 
        !           590: programs have been written to use plain {\f1\fs24 char} and expect it to be signed, or 
        !           591: expect it to be unsigned, depending on the machines they were written for. 
        !           592: This option, and its inverse, let you make such a program work with the 
        !           593: opposite default. \
        !           594: The type {\f1\fs24 char} is always a distinct type from each of {\f1\fs24 signed 
        !           595: char} or {\f1\fs24 unsigned char}, even though its behavior is always just like one of 
        !           596: those two. \
        !           597: \
        !           598: {\f1\fs24 -fsigned-char} Let the type {\f1\fs24 char} be signed, like {\f1\fs24 signed char}. \
        !           599: Note 
        !           600: that this is equivalent to {\f4\fs24 -fno-unsigned-char}, which is the negative form of {\f4\fs24 
        !           601: -funsigned-char}. Likewise, the option {\f4\fs24 -fno-signed-char} is equivalent to {\f4\fs24 
        !           602: -funsigned-char}. \
        !           603: \
        !           604: {\f1\fs24 -fsigned-bitfields} \
        !           605: {\f1\fs24 -funsigned-bitfields} \
        !           606: {\f1\fs24 -fno-signed-bitfields} \
        !           607: {\f1\fs24 
        !           608: -fno-unsigned-bitfields} These options control whether a bitfield is signed or 
        !           609: unsigned, when the declaration does not use either {\f1\fs24 signed} or {\f1\fs24 unsigned}. By 
        !           610: default, such a bitfield is signed, because this is consistent: the basic 
        !           611: integer types such as {\f1\fs24 int} are signed types. \
        !           612: However, when {\f4\fs24 -traditional} is 
        !           613: used, bitfields are all unsigned no matter what. \
        !           614: \
        !           615: {\f1\fs24 -fwritable-strings} Store 
        !           616: string constants in the writable data segment and don't uniquize them. This is 
        !           617: for compatibility with old programs which assume they can write into string 
        !           618: constants. The option {\f4\fs24 -traditional} also has this effect. \
        !           619: Writing into string 
        !           620: constants is a very bad idea; ``constants'' should be constant. \
        !           621: \
        !           622: {\f1\fs24 
        !           623: -fallow-single-precision} Do not promote single precision math operations to 
        !           624: double precision, even when compiling with {\f4\fs24 -traditional}. \
        !           625: Traditional K&R C 
        !           626: promotes all floating point operations to double precision, regardless of the 
        !           627: sizes of the operands. On the architecture for which you are compiling, single 
        !           628: precision may be faster than double precision. If you must use {\f4\fs24 -traditional}, 
        !           629: but want to use single precision operations when the operands are single 
        !           630: precision, use this option. This option has no effect when compiling with ANSI 
        !           631: or GNU C conventions (the default). \
        !           632: \
        !           633: \
        !           634: {{\NeXTHelpMarker \markername C++ Dialect Options;}
        !           635: ,}{\b\fs48\f4 1.5 Options Controlling C++ Dialect}\
        !           636: \
        !           637: This 
        !           638: section describes the command-line options that are only meaningful for C++ 
        !           639: programs; but you can also use most of the GNU compiler options regardless of 
        !           640: what language your program is in. For example, you might compile a file {\f1\fs24 
        !           641: firstClass.C} like this: \
        !           642: {\f1\fs24 g++ -g -felide-constructors -O -c firstClass.C }\
        !           643: \
        !           644:  In 
        !           645: this example, only {\f4\fs24 -felide-constructors} is an option meant only for C++ 
        !           646: programs; you can use the other options with any language supported by GNU CC. \
        !           647: 
        !           648: Here is a list of options that are {\i only} for compiling C++ programs: \
        !           649: \
        !           650: {\f1\fs24 
        !           651: -fall-virtual} Treat all possible member functions as virtual, implicitly. All 
        !           652: member functions (except for constructor functions and {\f1\fs24 new} or {\f1\fs24 delete} member 
        !           653: operators) are treated as virtual functions of the class where they appear. \
        !           654: 
        !           655: This does not mean that all calls to these member functions will be made 
        !           656: through the internal table of virtual functions. Under some circumstances, the 
        !           657: compiler can determine that a call to a given virtual function can be made 
        !           658: directly; in these cases the calls are direct in any case. \
        !           659: \
        !           660: {\f1\fs24 
        !           661: -fdollars-in-identifiers} Accept {\f4\fs24 $} in identifiers. You can also explicitly 
        !           662: prohibit use of {\f4\fs24 $} with the option {\f4\fs24 -fno-dollars-in-identifiers}. (GNU C++ allows {\f4\fs24 
        !           663: $} by default on some target systems but not others.) Traditional C allowed the 
        !           664: character {\f4\fs24 $} to form part of identifiers. However, ANSI C and C++ forbid {\f4\fs24 $} in 
        !           665: identifiers. \
        !           666: \
        !           667: {\f1\fs24 -felide-constructors} Elide constructors when this seems 
        !           668: plausible. With this option, GNU C++ initializes {\f1\fs24 y} directly from the call to {\f1\fs24 
        !           669: foo} without going through a temporary in the following code: \
        !           670: {\f1\fs24 A foo (); }\
        !           671: {\f1\fs24 
        !           672: A y = foo (); }\
        !           673: \
        !           674: Without this option, GNU C++ (1) initializes {\f1\fs24 y} by calling the 
        !           675: appropriate constructor for type {\f1\fs24 A}; (2) assigns the result of {\f1\fs24 foo} to a 
        !           676: temporary; and, finally, (3) replaces the initial value of {\f1\fs24 y} with the 
        !           677: temporary. \
        !           678: The default behavior ({\f4\fs24 -fno-elide-constructors}) is specified by the 
        !           679: draft ANSI C++ standard. If your program's constructors have side effects, {\f4\fs24 
        !           680: -felide-constructors} can change your program's behavior, since some 
        !           681: constructor calls may be omitted. \
        !           682: \
        !           683: {\f1\fs24 -fenum-int-equiv} Permit implicit conversion 
        !           684: of {\f1\fs24 int} to enumeration types. Normally GNU C++ allows conversion of {\f1\fs24 enum} to {\f1\fs24 int}
        !           685: , but not the other way around. \
        !           686: \
        !           687: {\f1\fs24 -fexternal-templates} Produce smaller code for 
        !           688: template declarations, by generating only a single copy of each template 
        !           689: function where it is defined. To use this option successfully, you must also 
        !           690: mark all files that use templates with either {\f4\fs24 #pragma implementation} (the 
        !           691: definition) or {\f4\fs24 #pragma interface} (declarations). {See `Declarations and Definitions in One Header' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C++
        !           692: Interface;}
        !           693: ,}., for more discussion of 
        !           694: these pragmas. \
        !           695: When your code is compiled with {\f4\fs24 -fexternal-templates}, all 
        !           696: template instantiations are external. You must arrange for all necessary 
        !           697: instantiations to appear in the implementation file; you can do this with a {\f1\fs24 
        !           698: typedef} that references each instantiation needed. Conversely, when you 
        !           699: compile using the default option {\f4\fs24 -fno-external-templates}, all template 
        !           700: instantiations are explicitly internal. \
        !           701: You do not need to specify {\f4\fs24 
        !           702: -fexternal-templates} when compiling a file that does not define and 
        !           703: instantiate templates used in other files, even if your file {\i uses} templates 
        !           704: defined in other files that are compiled with {\f4\fs24 -fexternal-templates}. The only 
        !           705: side effect is an increase in object size for each file that you compile 
        !           706: without {\f4\fs24 -fexternal-templates}. \
        !           707: \
        !           708: {\f1\fs24 -fmemoize-lookups} \
        !           709: {\f1\fs24 -fsave-memoized} Use heuristics 
        !           710: to compile faster. These heuristics are not enabled by default, since they are 
        !           711: only effective for certain input files. Other input files compile more slowly. \
        !           712: 
        !           713: The first time the compiler must build a call to a member function (or 
        !           714: reference to a data member), it must (1) determine whether the class 
        !           715: implements member functions of that name; (2) resolve which member function to 
        !           716: call (which involves figuring out what sorts of type conversions need to be 
        !           717: made); and (3) check the visibility of the member function to the caller. All 
        !           718: of this adds up to slower compilation. Normally, the second time a call is 
        !           719: made to that member function (or reference to that data member), it must go 
        !           720: through the same lengthy process again. This means that code like this: \
        !           721: {\f1\fs24 
        !           722: cout << "This " << p << " has " << n << " legs.\\n"; }\
        !           723: \
        !           724:  makes six passes through 
        !           725: all three steps. By using a software cache, a ``hit'' significantly reduces 
        !           726: this cost. Unfortunately, using the cache introduces another layer of 
        !           727: mechanisms which must be implemented, and so incurs its own overhead. {\f4\fs24 
        !           728: -fmemoize-lookups} enables the software cache. \
        !           729: Because access privileges 
        !           730: (visibility) to members and member functions may differ from one function 
        !           731: context to the next, G++ may need to flush the cache. With the {\f4\fs24 
        !           732: -fmemoize-lookups} flag, the cache is flushed after every function that is 
        !           733: compiled. The {\f4\fs24 -fsave-memoized} flag enables the same software cache, but when 
        !           734: the compiler determines that the context of the last function compiled would 
        !           735: yield the same access privileges of the next function to compile, it preserves 
        !           736: the cache. This is most helpful when defining many member functions for the 
        !           737: same class: with the exception of member functions which are friends of other 
        !           738: classes, each member function has exactly the same access privileges as every 
        !           739: other, and the cache need not be flushed. \
        !           740: \
        !           741: {\f1\fs24 -fno-strict-prototype} Treat a 
        !           742: function declaration with no arguments, such as {\f4\fs24 int foo ();}, as C would treat 
        !           743: it---as saying nothing about the number of arguments or their types. Normally, 
        !           744: such a declaration in C++ means that the function {\f1\fs24 foo} takes no arguments. \
        !           745: \
        !           746: {\f1\fs24 
        !           747: -fnonnull-objects} Assume that objects reached through references are not null. \
        !           748: 
        !           749: Normally, GNU C++ makes conservative assumptions about objects reached through 
        !           750: references. For example, the compiler must check that {\f1\fs24 a} is not null in code 
        !           751: like the following: \
        !           752: {\f1\fs24 obj &a = g (); }\
        !           753: {\f1\fs24 a.f (2); }\
        !           754: \
        !           755: Checking that references of this 
        !           756: sort have non-null values requires extra code, however, and it is unnecessary 
        !           757: for many programs. You can use {\f4\fs24 -fnonnull-objects} to omit the checks for null, 
        !           758: if your program doesn't require checking. \
        !           759: \
        !           760: {\f1\fs24 -fthis-is-variable} Permit assignment 
        !           761: to {\f1\fs24 this}. The incorporation of user-defined free store management into C++ has 
        !           762: made assignment to {\f4\fs24 this} an anachronism. Therefore, by default it is invalid to 
        !           763: assign to {\f1\fs24 this} within a class member function; that is, GNU C++ treats the 
        !           764: type of {\f4\fs24 this} in a member function of class {\f1\fs24 X} to be {\f4\fs24 X *const}. However, for 
        !           765: backwards compatibility, you can make it valid with {\f4\fs24 -fthis-is-variable}. \
        !           766: \
        !           767: {\f1\fs24 
        !           768: -nostdinc++} Do not search for header files in the standard directories 
        !           769: specific to C++, but do still search the other standard directories. (This 
        !           770: option is used when building libg++.) \
        !           771: \
        !           772: {\f1\fs24 -traditional} For C++ programs (in 
        !           773: addition to the effects that apply to both C and C++), this has the same 
        !           774: effect as {\f4\fs24 -fthis-is-variable}. {See ` Options Controlling C Dialect' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C Dialect Options;}
        !           775: ,}.. \
        !           776: \
        !           777: In addition, these optimization, warning, and 
        !           778: code generation options have meanings only for C++ programs: \
        !           779: \
        !           780: {\f1\fs24 
        !           781: -fno-default-inline} Do not assume {\f4\fs24 inline} for functions defined inside a class 
        !           782: scope. {See `Options That Control Optimization' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Optimize Options;}
        !           783: ,}.. \
        !           784: \
        !           785: {\f1\fs24 -Wenum-clash} \
        !           786: {\f1\fs24 -Woverloaded-virtual} \
        !           787: {\f1\fs24 -Wtemplate-debugging} Warnings that 
        !           788: apply only to C++ programs. {See `Options to Request or Suppress Warnings' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Warning
        !           789: Options;}
        !           790: ,}.. \
        !           791: \
        !           792: {\f1\fs24 +e{\i n}} Control how virtual function definitions are 
        !           793: used, in a fashion compatible with {\f1\fs24 cfront} 1.x. {See `Options for
        !           794: Code Generation Conventions' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Code Gen Options;}
        !           795: ,}.. \
        !           796: \
        !           797: {{\NeXTHelpMarker \markername Warning Options;}
        !           798: ,}{\b\fs48\f4 1.6 Options to Request or 
        !           799: Suppress Warnings}\
        !           800: \
        !           801: Warnings are diagnostic messages that report constructions 
        !           802: which are not inherently erroneous but which are risky or suggest there may 
        !           803: have been an error. \
        !           804: You can request many specific warnings with options 
        !           805: beginning {\f4\fs24 -W}, for example {\f4\fs24 -Wimplicit} to request warnings on implicit 
        !           806: declarations. Each of these specific warning options also has a negative form 
        !           807: beginning {\f4\fs24 -Wno-} to turn off warnings; for example, {\f4\fs24 -Wno-implicit}. This manual 
        !           808: lists only one of the two forms, whichever is not the default. \
        !           809: These options 
        !           810: control the amount and kinds of warnings produced by GNU CC: \
        !           811: \
        !           812: {\f1\fs24 -fsyntax-only} 
        !           813: Check the code for syntax errors, but don't do anything beyond that. \
        !           814: \
        !           815: {\f1\fs24 -w} 
        !           816: Inhibit all warning messages. \
        !           817: \
        !           818: {\f1\fs24 -Wno-import} Inhibit warning messages about the 
        !           819: use of {\f4\fs24 #import}. \
        !           820: \
        !           821: {\f1\fs24 -pedantic} Issue all the warnings demanded by strict ANSI 
        !           822: standard C; reject all programs that use forbidden extensions. \
        !           823: Valid ANSI 
        !           824: standard C programs should compile properly with or without this option 
        !           825: (though a rare few will require {\f4\fs24 -ansi}). However, without this option, certain 
        !           826: GNU extensions and traditional C features are supported as well. With this 
        !           827: option, they are rejected. \
        !           828: {\f4\fs24 -pedantic} does not cause warning messages for use 
        !           829: of the alternate keywords whose names begin and end with {\f4\fs24 __}. Pedantic warnings 
        !           830: are also disabled in the expression that follows {\f1\fs24 __extension__}. However, only 
        !           831: system header files should use these escape routes; application programs 
        !           832: should avoid them. {See `' {\NeXTHelpLink \markername ;\linkFilename .
        !           833: ation programs should avoid them.
        !           834: ld use
        !           835: ic
        !           836: ;\linkMarkername {Alternate Keywords;}
        !           837: ,}.. \
        !           838: This option is not intended to be ; it exists only to 
        !           839: satisfy \
        !           840: \
        !           841: \
        !           842: \
        !           843: \
        !           844: \
        !           845: \
        !           846: \
        !           847: \
        !           848: \
        !           849: \
        !           850: \
        !           851: \
        !           852: \
        !           853: \
        !           854: \
        !           855: \
        !           856: \
        !           857: \
        !           858: \
        !           859: \
        !           860: \
        !           861: \
        !           862: \
        !           863: \
        !           864: \
        !           865: \
        !           866: \
        !           867: \
        !           868: \
        !           869: \
        !           870: \
        !           871: \
        !           872: \
        !           873: \
        !           874: \
        !           875: \
        !           876: \
        !           877: \
        !           878: \
        !           879: \
        !           880: \
        !           881: \
        !           882: \
        !           883: \
        !           884: \
        !           885: \
        !           886: \
        !           887: \
        !           888: \
        !           889: \
        !           890: \
        !           891: \
        !           892: \
        !           893: \
        !           894: \
        !           895: \
        !           896: \
        !           897: \
        !           898: \
        !           899: \
        !           900: \
        !           901: \
        !           902: \
        !           903: \
        !           904: \
        !           905: \
        !           906: \
        !           907: \
        !           908: \
        !           909: \
        !           910: \
        !           911: \
        !           912: \
        !           913: \
        !           914: \
        !           915: \
        !           916: \
        !           917: \
        !           918: \
        !           919: \
        !           920: \
        !           921: \
        !           922: \
        !           923: \
        !           924: \
        !           925: \
        !           926: \
        !           927: \
        !           928: \
        !           929: \
        !           930: \
        !           931: \
        !           932: \
        !           933: \
        !           934: \
        !           935: \
        !           936: \
        !           937: \
        !           938: \
        !           939: \
        !           940: \
        !           941: \
        !           942: \
        !           943: \
        !           944: \
        !           945: \
        !           946: \
        !           947: \
        !           948: \
        !           949: \
        !           950: \
        !           951: \
        !           952: \
        !           953: \
        !           954: \
        !           955: \
        !           956: \
        !           957: \
        !           958: \
        !           959: \
        !           960: \
        !           961: \
        !           962: \
        !           963: \
        !           964: \
        !           965: \
        !           966: \
        !           967: \
        !           968: \
        !           969: \
        !           970: \
        !           971: \
        !           972: \
        !           973: \
        !           974: \
        !           975: \
        !           976: \
        !           977: \
        !           978: \
        !           979: \
        !           980: \
        !           981: \
        !           982: \
        !           983: \
        !           984: \
        !           985: \
        !           986: \
        !           987: \
        !           988: \
        !           989: \
        !           990: \
        !           991: \
        !           992: \
        !           993: \
        !           994: \
        !           995: \
        !           996: \
        !           997: \
        !           998: \
        !           999: \
        !          1000: \
        !          1001: \
        !          1002: \
        !          1003: \
        !          1004: \
        !          1005: \
        !          1006: \
        !          1007: \
        !          1008: \
        !          1009: \
        !          1010: \
        !          1011: \
        !          1012: \
        !          1013: \
        !          1014: \
        !          1015: \
        !          1016: \
        !          1017: \
        !          1018: \
        !          1019: \
        !          1020: \
        !          1021: \
        !          1022: \
        !          1023: \
        !          1024: \
        !          1025: \
        !          1026: \
        !          1027: \
        !          1028: \
        !          1029: \
        !          1030: \
        !          1031: \
        !          1032: \
        !          1033: \
        !          1034: \
        !          1035: \
        !          1036: \
        !          1037: \
        !          1038: \
        !          1039: \
        !          1040: \
        !          1041: \
        !          1042: \
        !          1043: \
        !          1044: \
        !          1045: \
        !          1046: \
        !          1047: \
        !          1048: \
        !          1049: \
        !          1050: \
        !          1051: \
        !          1052: \
        !          1053: \
        !          1054: \
        !          1055: \
        !          1056: \
        !          1057: \
        !          1058: \
        !          1059: \
        !          1060: {{\NeXTHelpMarker \markername M680x0 Options;}
        !          1061: ,}{\b\fs32\f4 M680x0 Options}\
        !          1062: \
        !          1063: These are the {\f4\fs24 -m} options defined for the 68000 series. 
        !          1064: The default values for these options depends on which style of 68000 was 
        !          1065: selected when the compiler was configured; the defaults for the most common 
        !          1066: choices are given below. \
        !          1067: \
        !          1068: {\f1\fs24 -m68000} \
        !          1069: {\f1\fs24 -mc68000} Generate output for a 68000. This is 
        !          1070: the default when the compiler is configured for 68000-based systems. \
        !          1071: \
        !          1072: {\f1\fs24 -m68020} \
        !          1073: {\f1\fs24 
        !          1074: -mc68020} Generate output for a 68020. This is the default when the compiler is 
        !          1075: configured for 68020-based systems. \
        !          1076: \
        !          1077: {\f1\fs24 -m68881} Generate output containing 68881 
        !          1078: instructions for floating point. This is the default for most 68020 systems 
        !          1079: unless {\f4\fs24 -nfp} was specified when the compiler was configured. \
        !          1080: \
        !          1081: {\f1\fs24 -m68030} Generate 
        !          1082: output for a 68030. This is the default when the compiler is configured for 
        !          1083: 68030-based systems. \
        !          1084: \
        !          1085: {\f1\fs24 -m68040} Generate output for a 68040. This is the default 
        !          1086: when the compiler is configured for 68040-based systems. \
        !          1087: This option inhibits 
        !          1088: the use of 68881/68882 instructions that have to be emulated by software on 
        !          1089: the 68040. If your 68040 does not have code to emulate those instructions, use {\f4\fs24 
        !          1090: -m68040}. \
        !          1091: \
        !          1092: {\f1\fs24 -m68020-40} Generate output for a 68040, without using any of the new 
        !          1093: instructions. This results in code which can run relatively efficiently on 
        !          1094: either a 68020/68881 or a 68030 or a 68040. The generated code does use the 
        !          1095: 68881 instructions that are emulated on the 68040. \
        !          1096: \
        !          1097: {\f1\fs24 -mfpa} Generate output 
        !          1098: containing Sun FPA instructions for floating point. \
        !          1099: \
        !          1100: {\f1\fs24 -msoft-float} Generate 
        !          1101: output containing library calls for floating point. {\b Warning:} the requisite 
        !          1102: libraries are not part of GNU CC. Normally the facilities of the machine's 
        !          1103: usual C compiler are used, but this can't be done directly in 
        !          1104: cross-compilation. You must make your own arrangements to provide suitable 
        !          1105: library functions for cross-compilation. \
        !          1106: \
        !          1107: {\f1\fs24 -mshort} Consider type {\f1\fs24 int} to be 16 
        !          1108: bits wide, like {\f1\fs24 short int}. \
        !          1109: \
        !          1110: {\f1\fs24 -mnobitfield} Do not use the bit-field instructions. 
        !          1111: The {\f4\fs24 -m68000} option implies {\f4\fs24 -mnobitfield}. \
        !          1112: \
        !          1113: {\f1\fs24 -mbitfield} Do use the bit-field 
        !          1114: instructions. The {\f4\fs24 -m68020} option implies {\f4\fs24 -mbitfield}. This is the default if 
        !          1115: you use a configuration designed for a 68020. \
        !          1116: \
        !          1117: {\f1\fs24 -mrtd} Use a different 
        !          1118: function-calling convention, in which functions that take a fixed number of 
        !          1119: arguments return with the {\f1\fs24 rtd} instruction, which pops their arguments while 
        !          1120: returning. This saves one instruction in the caller since there is no need to 
        !          1121: pop the arguments there. \
        !          1122: This calling convention is incompatible with the one 
        !          1123: normally used on Unix, so you cannot use it if you need to call libraries 
        !          1124: compiled with the Unix compiler. \
        !          1125: Also, you must provide function prototypes 
        !          1126: for all functions that take variable numbers of arguments (including {\f1\fs24 printf}); 
        !          1127: otherwise incorrect code will be generated for calls to those functions. \
        !          1128: In 
        !          1129: addition, seriously incorrect code will result if you call a function with too 
        !          1130: many arguments. (Normally, extra arguments are harmlessly ignored.) \
        !          1131: The {\f1\fs24 rtd} 
        !          1132: instruction is supported by the 68010 and 68020 processors, but not by the 
        !          1133: 68000. \
        !          1134: \
        !          1135: {{\NeXTHelpMarker \markername VAX Options;}
        !          1136: ,}{\b\fs32\f4 VAX Options}\
        !          1137: \
        !          1138: These {\f4\fs24 -m} options are defined for the Vax: \
        !          1139: \
        !          1140: {\f1\fs24 -munix} Do not 
        !          1141: output certain jump instructions ({\f1\fs24 aobleq} and so on) that the Unix assembler 
        !          1142: for the Vax cannot handle across long ranges. \
        !          1143: \
        !          1144: {\f1\fs24 -mgnu} Do output those jump 
        !          1145: instructions, on the assumption that you will assemble with the GNU assembler. \
        !          1146: \
        !          1147: {\f1\fs24 
        !          1148: -mg} Output code for g-format floating point numbers instead of d-format. \
        !          1149: \
        !          1150: {{\NeXTHelpMarker \markername SPARC Options;}
        !          1151: ,}{\b\fs32\f4 SPARC 
        !          1152: Options}\
        !          1153: \
        !          1154: These {\f4\fs24 -m} switches are supported on the SPARC: \
        !          1155: \
        !          1156: {\f1\fs24 -mfpu} \
        !          1157: {\f1\fs24 -mhard-float} 
        !          1158: Generate output containing floating point instructions. This is the default. \
        !          1159: \
        !          1160: {\f1\fs24 
        !          1161: -mno-fpu} \
        !          1162: {\f1\fs24 -msoft-float} Generate output containing library calls for floating 
        !          1163: point. {\b Warning:} there is no GNU floating-point library for SPARC. Normally the 
        !          1164: facilities of the machine's usual C compiler are used, but this cannot be done 
        !          1165: directly in cross-compilation. You must make your own arrangements to provide 
        !          1166: suitable library functions for cross-compilation. \
        !          1167: {\f4\fs24 -msoft-float} changes the 
        !          1168: calling convention in the output file; therefore, it is only useful if you 
        !          1169: compile {\i all} of a program with this option. In particular, you need to compile `{\f1\fs24 
        !          1170: libgcc.a}', the library that comes with GNU CC, with {\f4\fs24 -msoft-float} in order for 
        !          1171: this to work. \
        !          1172:  \
        !          1173: \
        !          1174: \
        !          1175: \
        !          1176: \
        !          1177: \
        !          1178: \
        !          1179: \
        !          1180: \
        !          1181: \
        !          1182: \
        !          1183: \
        !          1184: \
        !          1185: \
        !          1186: \
        !          1187: \
        !          1188: \
        !          1189: \
        !          1190: \
        !          1191: \
        !          1192: \
        !          1193: \
        !          1194: \
        !          1195: \
        !          1196: \
        !          1197: \
        !          1198: \
        !          1199: \
        !          1200: \
        !          1201: \
        !          1202: \
        !          1203: \
        !          1204: \
        !          1205: \
        !          1206: \
        !          1207: \
        !          1208: \
        !          1209: \
        !          1210: \
        !          1211: \
        !          1212: \
        !          1213: \
        !          1214: \
        !          1215: \
        !          1216: \
        !          1217: \
        !          1218: \
        !          1219: \
        !          1220: \
        !          1221: \
        !          1222: \
        !          1223: \
        !          1224: \
        !          1225: \
        !          1226: \
        !          1227: \
        !          1228: \
        !          1229: \
        !          1230: \
        !          1231: \
        !          1232: \
        !          1233: \
        !          1234: \
        !          1235: \
        !          1236: \
        !          1237: \
        !          1238: \
        !          1239: \
        !          1240: \
        !          1241: \
        !          1242: \
        !          1243: \
        !          1244: \
        !          1245: \
        !          1246: \
        !          1247: \
        !          1248: \
        !          1249: \
        !          1250: \
        !          1251: \
        !          1252: \
        !          1253: \
        !          1254: \
        !          1255: \
        !          1256: \
        !          1257: \
        !          1258: \
        !          1259: \
        !          1260: \
        !          1261: \
        !          1262: \
        !          1263: \
        !          1264: \
        !          1265: \
        !          1266: \
        !          1267: \
        !          1268: \
        !          1269: \
        !          1270: \
        !          1271: \
        !          1272: \
        !          1273: \
        !          1274: \
        !          1275: \
        !          1276: \
        !          1277: \
        !          1278: \
        !          1279: \
        !          1280: \
        !          1281: \
        !          1282: \
        !          1283: \
        !          1284: \
        !          1285: \
        !          1286: \
        !          1287: \
        !          1288: \
        !          1289: \
        !          1290: \
        !          1291: \
        !          1292: \
        !          1293: \
        !          1294: \
        !          1295: \
        !          1296: \
        !          1297: \
        !          1298: \
        !          1299: \
        !          1300: \
        !          1301: \
        !          1302: \
        !          1303: \
        !          1304: \
        !          1305: \
        !          1306: \
        !          1307: \
        !          1308: \
        !          1309: \
        !          1310: \
        !          1311: \
        !          1312: \
        !          1313: \
        !          1314: \
        !          1315: \
        !          1316: \
        !          1317: \
        !          1318: \
        !          1319: \
        !          1320: \
        !          1321: \
        !          1322: \
        !          1323: \
        !          1324: \
        !          1325: \
        !          1326: \
        !          1327: \
        !          1328: \
        !          1329: \
        !          1330: \
        !          1331: \
        !          1332: \
        !          1333: \
        !          1334: \
        !          1335: \
        !          1336: \
        !          1337: \
        !          1338: \
        !          1339: \
        !          1340: \
        !          1341: \
        !          1342: \
        !          1343: \
        !          1344: \
        !          1345: \
        !          1346: \
        !          1347: \
        !          1348: \
        !          1349: \
        !          1350: \
        !          1351: \
        !          1352: \
        !          1353: \
        !          1354: \
        !          1355: \
        !          1356: \
        !          1357: \
        !          1358: \
        !          1359: \
        !          1360: \
        !          1361: \
        !          1362: \
        !          1363: \
        !          1364: \
        !          1365: \
        !          1366: \
        !          1367: \
        !          1368: \
        !          1369: \
        !          1370: \
        !          1371: \
        !          1372: \
        !          1373: \
        !          1374: \
        !          1375: \
        !          1376: \
        !          1377: \
        !          1378: \
        !          1379: \
        !          1380: \
        !          1381: \
        !          1382: \
        !          1383: \
        !          1384: \
        !          1385: \
        !          1386: \
        !          1387: \
        !          1388: \
        !          1389: \
        !          1390: \
        !          1391: \
        !          1392: \
        !          1393: \
        !          1394: \
        !          1395: \
        !          1396: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.