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