Annotation of researchv10dc/man/mana/gcc.1, revision 1.1.1.1

1.1       root        1: .\     " ======================
                      2: .\     " This version is 1.22
                      3: .\     " ======================
                      4: .TH GCC 1 "17 May 1988" "Version 1.22"
                      5: .SH NAME
                      6: gcc \- GNU project C Compiler
                      7: .SH SYNOPSIS
                      8: .B gcc
                      9: [ option ] ... file ...
                     10: .SH DESCRIPTION
                     11: The
                     12: .I GNU\ C\ compiler
                     13: uses a command syntax much like the Unix C compiler. The 
                     14: .I gcc
                     15: program accepts options and file names as operands. Multiple
                     16: single-letter options may
                     17: .I not
                     18: be grouped: `\fB\-dr\fR'
                     19: is very different from `\fB\-d\ \-r\fR'.
                     20: When you invoke
                     21: .I GNU\ CC
                     22: \, it normally does preprocessing, compilation,
                     23: assembly and linking. File names which end in `\fB.c\fR'
                     24: are taken as C
                     25: source to be preprocessed and compiled; compiler output files plus any
                     26: input files with names ending in `\fB.s\fR'
                     27: are assembled; then the
                     28: resulting object files, plus any other input files, are linked together to
                     29: produce an executable.
                     30: Command options allow you to stop this process at an intermediate stage.
                     31: For example, the `\fB\-c\fR'
                     32: option says not to run the linker.
                     33: Then the output consists of object files output by the assembler.
                     34: Other command options are passed on to one stage.
                     35: Some options control the preprocessor and others the compiler itself.
                     36: .SH OPTIONS
                     37: Here are the options to control the overall compilation process,
                     38: including those that say whether to link, whether to assemble, and so on.
                     39: .TP
                     40: .BI \-o "\ \ file"
                     41: Place linker output in file \fIfile\fR.
                     42: This applies regardless to whatever sort of output is being produced,
                     43: whether it be an executable file, an object file, an assembler file or
                     44: preprocessed C code.
                     45: If `\fB\-o\fR'
                     46: is not specified, the default is to put an executable file
                     47: in `a.out', the object file `\fIsource\fB.c\fR' in `\fIsource\fB.o\fR',
                     48: an assembler file in `\fIsource\fB.s\fR',
                     49: and preprocessed C on standard output.
                     50: .TP
                     51: .B \-c
                     52: Compile or assemble the source files, but do not link.
                     53: Produce object files with names made by replacing `\fB\.c\fR'
                     54: or `\fB\.s\fR'
                     55: with `\fB\.o\fR'
                     56: at the end of the input file names.
                     57: Do nothing at all for object files specified as input.
                     58: .TP
                     59: .B \-S
                     60: Compile into assembler code but do not assemble.
                     61: The assembler output file name is made by replacing `\fB\.c\fR'
                     62: with `\fB\.s\fR'
                     63: at the end of the input file name.
                     64: Do nothing at all for assembler source files or object files specified
                     65: as input.
                     66: .TP
                     67: .B \-E
                     68: Run only the C preprocessor.
                     69: Preprocess all the C source files specified
                     70: and output the results to standard output.
                     71: .TP
                     72: .B \-v
                     73: Compiler driver program prints the commands it executes as it runs
                     74: the preprocessor, compiler proper, assembler and linker.
                     75: Some of these are directed to print their own version numbers.
                     76: .TP
                     77: .BI \-B "prefix"
                     78: Compiler driver program tries \fIprefix\fR as a prefix for each program
                     79: it tries to run. These programs are `\fBcpp\fR', `\fBcc1\fR',
                     80: `\fBas\fR' and `\fBld\fR'.
                     81: For each subprogram to be run, the compiler driver first tries
                     82: the `\fB\-B\fR' prefix, if any.
                     83: If that name is not found, or if `\fB\-B\fR' was not specified,
                     84: the driver tries two standard prefixes,
                     85: which are `\fB/usr/lib/gcc-\fR' and `\fB/usr/local/lib/gcc-\fR'.
                     86: If neither of those results in a file name that is found,
                     87: the unmodified program name is searched for using the directories
                     88: specified in your `\fBPATH\fR' environment variable.
                     89: The run-time support file `\fBgnulib\fR' is also searched for using
                     90: the `\fB\-B\fR' prefix, if needed.
                     91: If it is not found there, the two standard prefixes above are tried,
                     92: and that is all. 
                     93: The file is left out of the link if it is not found by those means.
                     94: Most of the time, on most machines, you can do without it.
                     95: .PP
                     96: These options control the C preprocessor,
                     97: which is run on each C source file before actual compilation.
                     98: If you use the `\fB\-E\fR' option, nothing is done except C preprocessing.
                     99: Some of these options make sense only together with `\fB\-E\fR'
                    100: because they request preprocessor output that is not suitable
                    101: for actual compilation.
                    102: .TP
                    103: .B \-C
                    104: Tell the preprocessor not to discard comments. Used with the `\fB\-E\fR'
                    105: option.
                    106: .TP
                    107: .BI \-I "dir"
                    108: Search directory 
                    109: .I dir
                    110: for include files.
                    111: .TP
                    112: .B \-I\-
                    113: Any directories specified with `\fB\-I\fR' options before the `\fB\-I\-\fR'
                    114: option are searched only for the case of `\fB#include "\fIfile\fB"\fR';
                    115: they are not searched for `\fB#include <\fIfile\fB>\fR'.
                    116: If additional directories are specified with `\fB\-I\fR' options after
                    117: the `\fB\-I\-\fR', these directories are searched for all '\fB#include\fR'
                    118: directives. (Ordinally \fIall\fR '\fB\-I\fR' directories are used this
                    119: way.)
                    120: In addition, the `\fB\-I\-\fR' option inhibits the use of the current
                    121: directory as the first search directory for `\fB#include "\fIfile\fB"\fR'.
                    122: Therefore, the current directory is searched only if it is requested
                    123: explicitly with `\fB\-I.\fR'.
                    124: Specifying both `\fB\-I\-\fR' and `\fB\-I.\fR' allows you to control precisely
                    125: which directories are searched before the current one and which are
                    126: searched after.
                    127: .TP
                    128: .B \-nostdinc
                    129: Do not search the standard system directories for header files.
                    130: Only the directories you have specified with `\fB\-I\fR' options
                    131: (and the current directory, if appropriate) are searched.
                    132: Between `\fB\-nostdinc\fR' and `\fB\-I-\fR', you can eliminate all
                    133: directories from the search path except those you specify.
                    134: .TP
                    135: .B \-M
                    136: Tell the preprocessor to output a rule suitable for \fBmake\fR
                    137: describing the dependencies of each source file.
                    138: For each source file, the preprocessor outputs one \fBmake\fR-rule
                    139: whose target is the object file name for that source file and
                    140: whose dependencies are all the files `\fB#include\fR'd in it.
                    141: This rule may be a single line or may be continued `\fB\\\fR'-newline
                    142: if it is long.`\fB\-M\fR' implies `\fB\-E\fR'.
                    143: .TP
                    144: .B \-MM
                    145: Like `\fB\-M\fR' but the output mentions only the user-header files included
                    146: with `\fB#include "\fIfile\fB"\fR'.
                    147: System header files included with `\fB#include <\fIfile\fB>\fR'
                    148: are omitted.`\fB\-MM\fR' implies `\fB\-E\fR'.
                    149: .TP
                    150: .BI \-D "macro"
                    151: Define macro \fImacro\fR
                    152: with the empty string as its definition.
                    153: .TP
                    154: .B \-D\fImacro=defn\fR
                    155: Define macro \fImacro\fR as \fIdefn\fR.
                    156: .TP
                    157: .BI \-U "macro"
                    158: Undefine macro \fImacro\fR.
                    159: .TP
                    160: .B \-T
                    161: Support ANSI C trigraphs.
                    162: You don't want to know about this brain-damage.
                    163: The `\fB\-ansi\fR' option also has this effect.
                    164: .PP
                    165: These options control the details of C compilation itself.
                    166: .TP
                    167: .B \-ansi
                    168: Support all ANSI standard C programs.
                    169: This turns off certain features of GNU C that are incompatible with
                    170: ANSI C, such as the \fBasm\fR, \fBinline\fR and \fBtypeof\fR keywords, and
                    171: predefined macros such as \fBunix\fR and \fBvax\fR that identify
                    172: the type of system you are using.
                    173: It also enables the undesirable and rarely used ANSI trigraph feature.
                    174: The `\fB\-ansi\fR' option does not cause non-ANSI programs to be rejected
                    175: gratuitously.
                    176: For that, `\fB\-pedantic\fR' is required in addition to `\fB\-ansi\fR'.
                    177: The macro \fB__STRICT_ANSI__\fR
                    178: is predefined when the `-ansi' option is used.
                    179: Some header files may notice this macro and refrain from declaring
                    180: certain functions or defining certain macros that the ANSI standard
                    181: doesn't call for; this is to avoid interfering with any programs
                    182: that might use these names for other things.
                    183: .TP
                    184: .B \-traditional
                    185: Attempt to support some aspects of traditional C compilers.
                    186: Specifically:
                    187: .br
                    188: \(** All \fBextern\fR declarations take effect globally even if 
                    189: they are written inside of a function definition.
                    190: This includes implicit declarations of functions.
                    191: .br    
                    192: \(** The keywords \fBtypeof\fR, \fBinline\fR, \fBsigned\fR, \fBconst\fR
                    193: and \fBvolatile\fR are not recognized.
                    194: .br    
                    195: \(** Comparisons between pointers and integers are always allowed.
                    196: .br
                    197: \(** Integer types \fBunsigned short\fR and \fBunsigned char\fR
                    198: promote to \fBunsigned int\fR.
                    199: .br
                    200: \(** In the preprocessor, comments convert to nothing at all,
                    201: rather than to a space.
                    202: This allows traditional token concatenation.
                    203: .br
                    204: \(** In the preprocessor, single and double quote characters are
                    205: ignored when scanning macro definitions, so that macro arguments
                    206: can be replaced even within a string or character constant.
                    207: Quote characters are also ignored when skipping text inside
                    208: a failing conditional directive.
                    209: .TP
                    210: .B \-pedantic
                    211: Issue all the warnings demanded by strict ANSI standard C;
                    212: reject all programs that use forbidden extensions.
                    213: Valid ANSI standard C programs should compile properly with or
                    214: without this option (though a rare few will require `\fB\-ansi\fR'.
                    215: However, without this option, certain GNU extensions and
                    216: traditional C features are supported as well.
                    217: With this option, they are rejected.
                    218: There is no reason to \fIuse\fR
                    219: this option; it exists only to satisfy pedants.
                    220: .TP
                    221: .B \-O
                    222: Optimize.  Optimizing compilation takes somewhat more time, and a lot
                    223: more memory for a large function.
                    224: Without `\fB\-O\fR', the compiler's goal is to reduce the cost of
                    225: compilation and to make debugging produce the expected results.
                    226: Statements are independent: if you stop the program with a breakpoint
                    227: between statements, you can then assign a new value to any variable or
                    228: change the program counter to any other statement in the function and
                    229: get exactly the results you would expect from the source code.
                    230: Without `\fB\-O\fR', only variables declared \fBregister\fR
                    231: are allocated in registers.
                    232: The resulting compiled code is
                    233: a little worse than produced by PCC without `\fB\-O\fR'.
                    234: With `\fB\-O\fR', the compiler tries to reduce code size and execution time.
                    235: Some of the `\fB\-f\fR' options described below turn specific
                    236: kinds of optimization on or off.
                    237: .TP
                    238: .B \-g
                    239: Produce debugging information in DBX format.
                    240: Unlike most other C compilers,
                    241: GNU CC allows you to use `\fB\-g\fR' with `\fB\-O\fR'.
                    242: The shortcuts taken by optimized code may occasionally
                    243: produce surprising results: some variables you declared may not exist
                    244: at all; flow of control may briefly move where you did not expect it;
                    245: some statements may not be executed because they compute constant
                    246: results or their values were already at hand; some statements may
                    247: execute in different places because they were moved out of loops.
                    248: Nevertheless it proves possible to debug optimized output.
                    249: This makes it reasonable to use the optimizer for programs that might
                    250: have bugs.
                    251: .TP
                    252: .B \-gg
                    253: Produce debugging information in GDB(GNU Debugger)'s own format.
                    254: This requires the GNU assembler and linker
                    255: in order to work.
                    256: .TP
                    257: .B \-w
                    258: Inhibit all warning messages.
                    259: .TP
                    260: .B \-W
                    261: Print extra warning messages for these events:
                    262: .br
                    263: \(** An automatic variable is used without first being initialized.
                    264: These warnings are possible only in optimizing compilation, because 
                    265: they require data flow information that is computed only when
                    266: optimizing. 
                    267: They occur only for variables that are candidates for register
                    268: allocation. Therefore, they do not occur for a variable that is
                    269: declared
                    270: .B volatile,
                    271: or whose address is taken, or whose size is other than 
                    272: 1,2,4 or 8 bytes. Also, they do not occur for structures,
                    273: unions or arrays, even when they are in registers.
                    274: Note that there may be no warning about a variable that is used
                    275: only to compute a value that itself is never used, because such
                    276: computations may be deleted by the flow analysis pass before the
                    277: warnings are printed.
                    278: These warnings are made optional because GNU CC is not smart
                    279: enough to see all the reasons why the code might be correct
                    280: despite appearing to have an error.
                    281: .br
                    282: \(** A nonvolantile automatic variable might be changed
                    283: by a call to \fBlongjmp\fR.
                    284: These warnings as well are possible only in optimizing compilation.
                    285: The compiler sees only the calls to \fBsetjmp\fR.
                    286: It cannot know where \fBlongjmp\fR
                    287: will be called; in fact, a signal handler could call it at any point
                    288: in the code. As a result, you may get a warning even when there is
                    289: in fact no problem because \fBlongjmp\fR
                    290: cannot in fact be called at the place which would cause a problem.
                    291: .br
                    292: \(** A function can return either with or without a value.
                    293: (Falling off the end of the function body is considered returning
                    294: without a value.)
                    295: Spurious warning can occur because GNU CC does not realize that
                    296: certain functions (including \fBabort\fR
                    297: and \fBlongjmp\fR) will never return.
                    298: .TP
                    299: .B \-Wimplicit
                    300: Warn whenever a function is implicitly declared.
                    301: .TP
                    302: .B \-Wreturn-type
                    303: Warn whenever a function is defined with a return-type that
                    304: defaults to \fBint\fR. Also warn about any \fBreturn\fR
                    305: statement with no return-value in a function whose return-type
                    306: is not \fBvoid\fR.
                    307: .TP
                    308: .B \-Wcomment
                    309: Warn whenever a comment-start sequence `/*' appears in a comment.
                    310: .TP
                    311: .B \-p
                    312: Generate extra code to write profile information suitable for the
                    313: analysis program \fBprof\fR.
                    314: .TP
                    315: .B \-pg
                    316: Generate extra code to write profile information suitable for the
                    317: analysis program \fBgprof\fR.
                    318: .TP
                    319: .BI \-l "library"
                    320: Search a standard list of directories for a library named \fIlibrary\fR,
                    321: which is actually a file named `\fBlib\fIlibrary\fB.a\fR'.
                    322: The linker uses this file as if it had been specified precisely by name.
                    323: The directories searched include several standard system directories
                    324: plus any that you specify with `\fB\-L\fR'.
                    325: Normally the files found this way are library files - archive files whose
                    326: members are object files. The linker handles an archive file by through
                    327: it for members which define symbols that have so far been referenced
                    328: but not defined. But if the file that is found is an ordinary
                    329: object file, it is linked in the usual fashion. 
                    330: The only difference between an `\fB\-l\fR' option and the full file name of
                    331: the file that is found is syntactic and the fact that several directories
                    332: are searched.
                    333: .TP
                    334: .BI \-L "dir"
                    335: Add directory \fIdir\fR to the list of directories to be searched
                    336: for `\fB\-l\fR'.
                    337: .TP
                    338: .B \-nostdlib
                    339: Don't use the standard system libraries and startup files when
                    340: linking. Only the files you specify (plus `\fBgnulib\fR')
                    341: will be passed to the linker.
                    342: .TP
                    343: .BI \-m "machinespec"
                    344: Machine-dependent option specifying something about the type of target machine.
                    345: These options are defined by the macro \fBTARGET_SWITCHES\fR
                    346: in the machine description. The default for the options is also
                    347: defined by that macro, which enables you to change the defaults.
                    348: .IP
                    349: These are the `\fB\-m\fR' options defined in the 68000 machine description:
                    350: .TP 10
                    351: .B \ \ \ \ \ \ \ \ \-m68020
                    352: Generate output for a 68020 (rather than a 68000).
                    353: This is the default if you use the unmodified sources.
                    354: .TP 10
                    355: .B \ \ \ \ \ \ \ \ \-m68000
                    356: Generate output for a 68000 (rather than a 68020).
                    357: .TP 10
                    358: .B \ \ \ \ \ \ \ \ \-m68881
                    359: Generate output containing 68881 instructions for floating point.
                    360: This is the default if you use the unmodified sources.
                    361: .TP 10
                    362: .B \ \ \ \ \ \ \ \ \-msoft-float
                    363: Generate output containing library calls for floating point.
                    364: .TP 10
                    365: .B \ \ \ \ \ \ \ \ \-mshort
                    366: Consider type \fBint\fR to be 16 bits wide, like \fBshort int\fR.
                    367: .TP 10
                    368: .B \ \ \ \ \ \ \ \ \-mnobitfield
                    369: Do not use the bit-field instructions. 
                    370: .B '\-m68000'
                    371: implies
                    372: .B '\-mnobitfield'.
                    373: .TP 10
                    374: .B \ \ \ \ \ \ \ \ \-mbitfield
                    375: Do use the bit-field instructions. 
                    376: .B '\-m68020'
                    377: implies
                    378: .B '\-mbitfield'.
                    379: This is the default if you use the unmodified sources.
                    380: .TP 10
                    381: .B \ \ \ \ \ \ \ \ \-mrtd
                    382: Use a different function-calling convention, in which functions that
                    383: take a fixed number of arguments return with the \fBrtd\fR
                    384: instruction, which pops their arguments while returning.  This saves
                    385: one instruction in the caller since there is no need to pop the
                    386: arguments there.
                    387: This calling convention is incompatible with the one normally used on
                    388: Unix, so you cannot use it if you need to call libraries compiled with
                    389: the Unix compiler.
                    390: Also, you must provide function prototypes for all functions that take
                    391: variable numbers of arguments (including \fBprintf\fR); otherwise
                    392: incorrect code will be generated for calls to those functions.
                    393: In addition, seriously incorrect code will result if you call a
                    394: function with too many arguments.  (Normally, extra arguments are
                    395: harmlessly ignored.)
                    396: The \fBrtd\fR
                    397: instruction is supported by the 68010 and 68020
                    398: processors, but not by the 68000.
                    399: .IP
                    400: These are the `\fB\-m\fR' options defined in the VAX machine description:
                    401: .TP 10
                    402: .B \ \ \ \ \ \ \ \ \-munix
                    403: Do not output certain jump instructions (
                    404: .B aobleq
                    405: and so on) that the Unix assembler
                    406: for the VAX cannot handle across long ranges. 
                    407: .TP 10
                    408: .B \ \ \ \ \ \ \ \ \-mgnu
                    409: Do output those jump instructions, on the assumption
                    410: that you will assemble with the GNU assembler.
                    411: .TP 5
                    412: .BI \-f "flag"
                    413: Specify machine-independent flags. These are the flags:
                    414: .TP 10
                    415: .B \ \ \ \ \ \ \ \ \-ffloat-store
                    416: Do not store floating-point variables in registers.
                    417: This prevents undesirable excess precision on machines such as the 68000
                    418: where the floating registers (of the 68881) keep more precision
                    419: than a \fBdouble\fR is supposed to have.
                    420: For most programs, the excess precision does only good, but a few
                    421: programs rely on the precise definition of IEEE floating point.
                    422: Use `
                    423: .B \-ffloat-store'
                    424: for such programs.
                    425: .TP 10
                    426: .B \ \ \ \ \ \ \ \ \-frno-asm
                    427: Do not recognize \fBasm\fR, \fBinline\fR or \fBtypeof\fR
                    428: as a keyword. These words may then be used as identifiers.
                    429: .TP 10
                    430: .B \ \ \ \ \ \ \ \ \-fno-defer-pop
                    431: Always pop the arguments to each function call as soon as that
                    432: function returns.
                    433: Normally the compiler (when optimizing) lets arguments accumulate on the
                    434: stack for several function calls and pops them all at once.
                    435: .TP 10
                    436: .B \ \ \ \ \ \ \ \ \-fcombine-regs
                    437: Allow the combine pass to combine an instruction that copies one
                    438: register into another.
                    439: This might or might not produce better code when used in addition to `
                    440: .B \-O'.
                    441: .TP 10
                    442: .B \ \ \ \ \ \ \ \ \-fforce-mem
                    443: Force memory operands to be copied into registers before doing
                    444: arithmetic on them.
                    445: This may produce better code by making all
                    446: memory references potential common subexpressions.
                    447: When they are not common subexpressions,
                    448: instruction combination should eliminate the separate register-load.
                    449: .TP 10
                    450: .B \ \ \ \ \ \ \ \ \-fforce-addr
                    451: Force memory address constants to be copied into registers before
                    452: doing arithmetic on them.
                    453: This may produce better code just as `
                    454: .B \-fforce-mem'
                    455: may.
                    456: .TP 10
                    457: .B \ \ \ \ \ \ \ \ \-fomit-frame-pointer
                    458: Don't keep the frame pointer in a register for functions that don't
                    459: need one.  This avoids the instructions to save, set up and restore
                    460: frame pointers; it also makes an extra register available in many
                    461: functions. \fBIt\ also\ makes\ debugging\ impossible.\fR
                    462: On some machines, such as the VAX, this flag has no effect,
                    463: because the standard calling sequence automatically handles
                    464: the frame pointer and nothing is saved by pretending it doesn't exist.
                    465: The machine-description macro \fBFRAME_POINTER_REQUIRED\fR
                    466: controls whether a target machine supports this flag.
                    467: .TP 10
                    468: .B \ \ \ \ \ \ \ \ \-finline-functions
                    469: Integrate all simple functions into their callers.
                    470: The compiler heuristically decides which functions are simple enough
                    471: to be worth integrating in this way.
                    472: If all calls to a given function are integrated, and the function
                    473: is declared \fBstatic\fR,
                    474: then the function is normally not output as assembler code in its
                    475: own right.
                    476: .TP 10
                    477: .B \ \ \ \ \ \ \ \ \-fkeep-inline-functions
                    478: Even if all calls to a given function are integrated, and the
                    479: function is declared \fBstatic\fR,
                    480: nevertheless output a separate run-time callable version of
                    481: the function.
                    482: .TP 10
                    483: .B \ \ \ \ \ \ \ \ \-fwritable-strings
                    484: Store string constants in the writable data segment and don't uniquize them.
                    485: This is for compatibility with old programs which assume
                    486: they can write into string constants.  Writing into string constants
                    487: is a very bad idea; ``constants'' should be constant.
                    488: .TP 10
                    489: .B \ \ \ \ \ \ \ \ \-fno-function-cse
                    490: Do not put function addresses in registers; make each instruction that
                    491: calls a constant function contain the function's address explicitly.
                    492: This option results in less efficient code, but some strange hacks
                    493: that alter the assembler output may be confused by the optimizations
                    494: performed when this option is not used.
                    495: .TP 10
                    496: .B \ \ \ \ \ \ \ \ \-fvolatile
                    497: Consider all memory references through pointers to be volatile.
                    498: .TP 10
                    499: .B \ \ \ \ \ \ \ \ \-funsigned-char
                    500: Let the type \fBchar\f be the unsigned, like \fBunsigned char\fR.
                    501: Each kind of machine has a default for what \fBchar\fR
                    502: should be. It is either like \fBunsigned char\fR
                    503: by default of like \fBsigned char\fR
                    504: by default. (Actually, at present, the default is always signed.)
                    505: The type \fBchar\fR
                    506: is always a distinct type from either \fBsigned char\fR
                    507: or \fBunsigned char\fR,
                    508: even though its behavior is always just like one of those two.
                    509: .TP 10
                    510: .B \ \ \ \ \ \ \ \ \-fsigned-char
                    511: Let the type \fBchar\fR be the same as \fBsigned char\fR.
                    512: .TP 10
                    513: .B \ \ \ \ \ \ \ \ \-ffixed-\fIreg\fR
                    514: Treat the register named \fIreg\fR as a fixed register; generated
                    515: code should never refer to it (except perhaps as a stack pointer,
                    516: frame pointer or in some other fixed role). \fIreg\fR
                    517: must be the name of a register.
                    518: The register names accepted are machine-specific and are defined in
                    519: the \fBREGISTER_NAMES\fR
                    520: macro in the machine description macro file.
                    521: .TP 10
                    522: .B \ \ \ \ \ \ \ \ \-fcall-used-\fIreg\fR
                    523: Treat the register named \fIreg\fR
                    524: as an allocatable register that is clobberred by function calls.
                    525: It may be allocated for temporaries or variables
                    526: that do not live across a call.
                    527: Functions compiled this way will not save and restore the
                    528: register \fIreg\fR.
                    529: Use of this flag for a register that has a fixed pervasive role
                    530: in the machine's execution model, such as the stack pointer or
                    531: frame pointer, will produce disastrous results.
                    532: .TP 10
                    533: .B \ \ \ \ \ \ \ \ \-fcall-saved-\fIreg\fR
                    534: Treat the register named \fIreg\fR
                    535: as an allocatable register saved by functions.
                    536: It may be allocated even for temporaries or
                    537: variables that live across a call.  Functions compiled this way
                    538: will save and restore the register \fIreg\fR if they use it.
                    539: Use of this flag for a register that has a fixed pervasive role
                    540: in the machine's execution model, such as the stack pointer or
                    541: frame pointer, will produce disastrous results.
                    542: A different sort of disaster will result from the use of this
                    543: flag for a register in which function values are may be returned.
                    544: .TP
                    545: .BI \-d "letters"
                    546: Says to make debugging dumps at times specified by \fIletters\fR.
                    547: Here are the possible letters:
                    548: .TP 10
                    549: .B \ \ \ \ \ \ \ \ r
                    550: Dump after RTL generation.
                    551: .TP 10
                    552: .B \ \ \ \ \ \ \ \ j
                    553: Dump after first jump optimization.
                    554: .TP 10
                    555: .B \ \ \ \ \ \ \ \ J
                    556: Dump after last jump optimization.
                    557: .TP 10
                    558: .B \ \ \ \ \ \ \ \ s
                    559: Dump after CSE (including the jump optimization that sometimes
                    560: follows CSE).
                    561: .TP 10
                    562: .B \ \ \ \ \ \ \ \ L
                    563: Dump after loop optimization.
                    564: .TP 10
                    565: .B \ \ \ \ \ \ \ \ f
                    566: Dump after flow analysis.
                    567: .TP 10
                    568: .B \ \ \ \ \ \ \ \ c
                    569: Dump after instruction combination.
                    570: .TP 10
                    571: .B \ \ \ \ \ \ \ \ l
                    572: Dump after local register allocation.
                    573: .TP 10
                    574: .B \ \ \ \ \ \ \ \ g
                    575: Dump after global register allocation.
                    576: .TP 10
                    577: .B \ \ \ \ \ \ \ \ m
                    578: Print statistics on memory usage, at the end of the run.
                    579: .SH FILES
                    580: .ta \w'/usr/local/lib/gcc-gnulib 'u
                    581: file.c input file
                    582: .br
                    583: file.o object file
                    584: .br
                    585: a.out  loaded output
                    586: .br
                    587: /tmp/cc?       temporary
                    588: .br
                    589: /usr/local/lib/gcc-cpp preprocessor
                    590: .br
                    591: /usr/local/lib/gcc-cc1 compiler
                    592: .br
                    593: /usr/local/lib/gcc-gnulib      library need by GCC on some machines
                    594: .br
                    595: /lib/crt0.o    runtime startoff
                    596: .br
                    597: /lib/libc.a    standard library, see
                    598: .IR intro (3)
                    599: .br
                    600: /usr/include   standard directory for `#include' files
                    601: .br
                    602: .SH "SEE ALSO"
                    603: B. W. Kernighan and D. M. Ritchie,
                    604: .I The C Programming Language,
                    605: Prentice-Hall,
                    606: 1978
                    607: .br
                    608: B. W. Kernighan,
                    609: .I
                    610: Programming in C
                    611: .br
                    612: D. M. Ritchie,
                    613: .I
                    614: C Reference Manual
                    615: .br
                    616: adb(1), ld(1), dbx(1), as(1)
                    617: .SH BUGS
                    618: Bugs should be reported to [email protected]. Bugs tend actually to be
                    619: fixed if they can be isolated, so it is in your interest to report them
                    620: in such a way that they can be easily reproduced according to get newer version.
                    621: .SH COPYING
                    622: Copyright (C) 1988 Richard M. Stallman.
                    623: .br
                    624: Permission is granted to make and distribute verbatim copies of
                    625: this manual provided the copyright notice and this permission notice
                    626: are preserved on all copies.
                    627: .br
                    628: Permission is granted to copy and distribute modified versions of this
                    629: manual under the conditions for verbatim copying, provided also that the
                    630: section entitled "GNU CC General Public License" is included exactly as
                    631: in the original, and provided that the entire resulting derived work is
                    632: distributed under the terms of a permission notice identical to this one.
                    633: .br
                    634: Permission is granted to copy and distribute translations of this manual
                    635: into another language, under the above conditions for modified versions,
                    636: except that the section entitled "GNU CC General Public License" may be
                    637: included in a translation approved by the author instead of in the original
                    638: English.
                    639: .SH AUTHORS
                    640: Richard M. Stallman

unix.superglobalmegacorp.com

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