|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.