diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-06-08 19:42:28 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-06-08 19:42:28 +0000 |
commit | da3d8613817010dc202dd5136f95781dda6f9158 (patch) | |
tree | 0adad3721c3db479eead6125fd982afcb2f534c4 /gcc/doc/gcc.texi | |
parent | b4e7aca6a3d9f9ab88b8bd6f1c665374409e664f (diff) | |
download | gcc-da3d8613817010dc202dd5136f95781dda6f9158.tar.gz |
* doc/gcc.texi, doc/invoke.texi: Add index of command line
options. Use @opindex to index them rather than other indexing
commands. Use @var{...} instead of <...>. Avoid spaces in names
inside @var. Don't use @kindex to index escape sequences in
source code.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43041 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc/gcc.texi')
-rw-r--r-- | gcc/doc/gcc.texi | 65 |
1 files changed, 64 insertions, 1 deletions
diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi index deb521002dd..b383c06db9b 100644 --- a/gcc/doc/gcc.texi +++ b/gcc/doc/gcc.texi @@ -75,6 +75,9 @@ @settitle Porting the GNU Compiler Collection @end ifclear +@c Create a separate index for command line options. +@defindex op +@c Merge the standard indexes into a single one. @syncodeindex fn cp @syncodeindex vr cp @syncodeindex ky cp @@ -264,6 +267,7 @@ bugs. It corresponds to GCC version 3.1. * GNU Free Documentation License:: How you can copy and share this manual. * Contributors:: People who have contributed to GCC. +* Option Index:: Index to command line options. * Index:: Index of concepts and symbol names. @end menu @@ -369,6 +373,10 @@ with some exceptions, and possibly with some extensions. GCC supports three versions of the C standard, although support for the most recent version is not yet complete. +@opindex std +@opindex ansi +@opindex pedantic +@opindex pedantic-errors The original ANSI C standard (X3.159-1989) was ratified in 1989 and published in 1990. This standard was ratified as an ISO standard (ISO/IEC 9899:1990) later in 1990. There were no technical @@ -404,6 +412,7 @@ standard, use @samp{-std=c99} or @samp{-std=iso9899:1999}. (While in development, drafts of this standard version were referred to as @dfn{C9X}.) +@opindex traditional GCC also has some limited support for traditional (pre-ISO) C with the @samp{-traditional} option. This support may be of use for compiling some very old programs that have not been updated to ISO C, but should @@ -443,6 +452,7 @@ char *[])}. An OS kernel would be a freestanding environment; a program using the facilities of an operating system would normally be in a hosted implementation. +@opindex ffreestanding GNU CC aims towards being usable as a conforming freestanding implementation, or as the compiler for a conforming hosted implementation. By default, it will act as the compiler for a hosted @@ -547,6 +557,7 @@ edit the offending file and place the typedef in front of the prototypes. @item +@opindex pedantic-errors When @samp{-pedantic-errors} is specified, GCC will incorrectly give an error message when a function name is specified in an expression involving the comma operator. @@ -852,6 +863,7 @@ If you have this problem, set the LANG environment variable to "C" or "En_US". @item +@opindex fdollars-in-identifiers Even if you specify @samp{-fdollars-in-identifiers}, you cannot successfully use @samp{$} in identifiers on the RS/6000 due to a restriction in the IBM assembler. GAS supports these @@ -863,6 +875,7 @@ version 1.3.0.1 or later fixes this problem. You can obtain XLC-1.3.0.2 by requesting PTF 421749 from IBM. @item +@opindex mno-serialize-volatile There is an assembler bug in versions of DG/UX prior to 5.4.2.01 that occurs when the @samp{fldcr} instruction is used. GCC uses @samp{fldcr} on the 88100 to serialize volatile memory references. Use @@ -896,6 +909,7 @@ what options are used. @cindex RT PC @cindex IBM RT PC @item +@opindex mhc-struct-return On the IBM RT PC, the MetaWare HighC compiler (hc) uses a different convention for structure and union returning. Use the option @samp{-mhc-struct-return} to tell GCC to use a convention compatible @@ -904,6 +918,7 @@ with it. @cindex Vax calling convention @cindex Ultrix calling convention @item +@opindex fcall-saved On Ultrix, the Fortran compiler expects registers 2 through 5 to be saved by function calls. However, the C compiler uses conventions compatible with BSD Unix: registers 2 through 5 may be clobbered by function calls. @@ -945,6 +960,7 @@ sometimes reorders instructions incorrectly when optimization is turned on. If you think this may be happening to you, try using the GNU assembler; GAS version 2.1 supports ECOFF on Irix. +@opindex noasmopt Or use the @samp{-noasmopt} option when you compile GCC with itself, and then again when you compile your program. (This is a temporary kludge to turn off assembler optimization on Irix.) If this proves to @@ -1003,6 +1019,7 @@ MALLOC=gmalloc.o @node Incompatibilities @section Incompatibilities of GCC @cindex incompatibilities of GCC +@opindex traditional There are several noteworthy incompatibilities between GNU C and K&R (non-ISO) versions of C. The @samp{-traditional} option @@ -1031,6 +1048,7 @@ when passed a string constant as its format control string or input. This is because @code{sscanf} incorrectly tries to write into the string constant. Likewise @code{fscanf} and @code{scanf}. +@opindex fwritable-strings The best solution to these problems is to change the program to use @code{char}-array variables with initialization strings for these purposes instead of string constants. But if this is not possible, @@ -1089,6 +1107,7 @@ Here @code{a} may or may not be restored to its first value when the its first value is restored; otherwise, it keeps the last value stored in it. +@opindex W If you use the @samp{-W} option with the @samp{-O} option, you will get a warning when GCC thinks such a problem might be possible. @@ -1240,6 +1259,7 @@ structure and union returning. GCC on most of these machines uses a compatible convention when returning structures and unions in memory, but still returns small structures and unions in registers. +@opindex fpcc-struct-return You can tell GCC to use a compatible convention for all structure and union returning with the option @samp{-fpcc-struct-return}. @@ -1318,6 +1338,7 @@ does mean that there's nothing for us to do about them. @node Standard Libraries @section Standard Libraries +@opindex Wall GCC by itself attempts to be a conforming freestanding implementation. @xref{Standards,,Language Standards Supported by GCC}, for details of what this means. Beyond the library facilities required of such an @@ -1424,6 +1445,7 @@ hold a few more bits of precision than fit in a @code{double} in memory. Compiled code moves values between memory and floating point registers at its convenience, and moving them into memory truncates them. +@opindex ffloat-store You can partially avoid this problem by using the @samp{-ffloat-store} option (@pxref{Optimize Options}). @@ -1644,6 +1666,7 @@ you are removing prototypes that were made with @code{protoize}; if the program worked before without any prototypes, it will work again without them. +@opindex Wconversion You can find all the places where this problem might occur by compiling the program with the @samp{-Wconversion} option. It prints a warning whenever an argument is converted. @@ -1735,6 +1758,7 @@ clutter the program with a cast to @code{void} whenever the value isn't useful. @item +@opindex fshort-enums Making @samp{-fshort-enums} the default. This would cause storage layout to be incompatible with most other C @@ -1751,6 +1775,8 @@ The ISO C standard leaves it up to the implementation whether a bitfield declared plain @code{int} is signed or not. This in effect creates two alternative dialects of C. +@opindex fsigned-bitfields +@opindex funsigned-bitfields The GNU C compiler supports both dialects; you can specify the signed dialect with @samp{-fsigned-bitfields} and the unsigned dialect with @samp{-funsigned-bitfields}. However, this leaves open the question of @@ -1800,6 +1826,9 @@ explicitly in each bitfield whether it is signed or not. In this way, they write programs which have the same meaning in both C dialects.) @item +@opindex ansi +@opindex traditional +@opindex std Undefining @code{__STDC__} when @samp{-ansi} is not used. Currently, GCC defines @code{__STDC__} as long as you don't use @@ -1868,6 +1897,7 @@ However, the rationale here is that optimization of a nonempty loop cannot produce an empty one, which holds for C but is not always the case for C++. +@opindex funroll-loops Moreover, with @samp{-funroll-loops} small ``empty'' loops are already removed, so the current behavior is both sub-optimal and inconsistent and will change in the future. @@ -1907,6 +1937,7 @@ Making certain warnings into errors by default. Some ISO C testsuites report failure when the compiler does not produce an error message for a certain program. +@opindex pedantic-errors ISO C requires a ``diagnostic'' message for certain kinds of invalid programs, but a warning is defined by GCC to count as a diagnostic. If GCC produces a warning but not an error, that is correct ISO C support. @@ -1946,6 +1977,8 @@ warnings are issued only if you ask for them, with one of the @samp{-W} options (for instance, @samp{-Wall} requests a variety of useful warnings). +@opindex pedantic +@opindex pedantic-errors GCC always tries to compile your program if possible; it never gratuitously rejects a program whose meaning is clear merely because (for instance) it fails to conform to a standard. In some cases, @@ -3052,6 +3085,7 @@ go in a register: @cindex arithmetic libraries @cindex math libraries +@opindex msoft-float Code compiled with GCC may call certain library routines. Most of them handle arithmetic for which there are no instructions. This includes multiply and divide on some machines, and floating point @@ -3225,6 +3259,7 @@ the code to save a function's rtl for later inlining and to inline that rtl when the function is called. The header file @file{integrate.h} is also used for this purpose. +@opindex dr The option @samp{-dr} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.rtl} to the input file name. @@ -3251,6 +3286,7 @@ optimizations described above. The source file of this pass is @file{jump.c}. +@opindex dj The option @samp{-dj} causes a debugging dump of the RTL code after this pass is run for the first time. This dump file's name is made by appending @samp{.jump} to the input file name. @@ -3263,6 +3299,7 @@ is in @file{regclass.c}. @cindex jump threading @item +@opindex fthread-jumps Jump threading. This pass detects a condition jump that branches to an identical or inverse test. Such jumps can be @samp{threaded} through the second conditional test. The source code for this pass is in @@ -3277,6 +3314,7 @@ propagation. Its source file is @file{cse.c}. If constant propagation causes conditional jumps to become unconditional or to become no-ops, jump optimization is run again when CSE is finished. +@opindex ds The option @samp{-ds} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.cse} to the input file name. @@ -3293,6 +3331,7 @@ and copy propagation. The source file for this pass is gcse.c. +@opindex dG The option @samp{-dG} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.gcse} to the input file name. @@ -3307,15 +3346,18 @@ Its source files are @file{loop.c} and @file{unroll.c}, plus the header @file{loop.h} used for communication between them. Loop unrolling uses some functions in @file{integrate.c} and the header @file{integrate.h}. +@opindex dL The option @samp{-dL} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.loop} to the input file name. @item +@opindex frerun-cse-after-loop If @samp{-frerun-cse-after-loop} was enabled, a second common subexpression elimination pass is performed after the loop optimization pass. Jump threading is also done again at this time if it was specified. +@opindex dt The option @samp{-dt} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.cse2} to the input file name. @@ -3335,6 +3377,7 @@ This pass also deletes computations whose results are never used, and combines memory references with add or subtract instructions to make autoincrement or autodecrement addressing. +@opindex df The option @samp{-df} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.flow} to the input file name. If stupid register allocation is in use, this @@ -3348,6 +3391,7 @@ flow into single instructions. It combines the RTL expressions for the instructions by substitution, simplifies the result using algebra, and then attempts to match the result against the machine description. +@opindex dc The option @samp{-dc} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.combine} to the input file name. @@ -3360,6 +3404,7 @@ this reload would be a register to register move. It then attempts to change the registers used by the instruction to avoid the move instruction. +@opindex dN The option @samp{-dN} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.regmove} to the input file name. @@ -3377,6 +3422,7 @@ use of items that otherwise would cause pipeline stalls. Instruction scheduling is performed twice. The first time is immediately after instruction combination and the second is immediately after reload. +@opindex dS The option @samp{-dS} causes a debugging dump of the RTL code after this pass is run for the first time. The dump file's name is made by appending @samp{.sched} to the input file name. @@ -3395,6 +3441,7 @@ hard registers to pseudo registers that are used only within one basic block. Because the basic block is linear, it can use fast and powerful techniques to do a very good job. +@opindex dl The option @samp{-dl} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.lreg} to the input file name. @@ -3422,6 +3469,7 @@ instructions to save and restore call-clobbered registers around calls. Source files are @file{reload.c} and @file{reload1.c}, plus the header @file{reload.h} used for communication between them. +@opindex dg The option @samp{-dg} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.greg} to the input file name. @@ -3432,6 +3480,7 @@ the input file name. Instruction scheduling is repeated here to try to avoid pipeline stalls due to memory loads generated for spilled pseudo registers. +@opindex dR The option @samp{-dR} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.sched2} to the input file name. @@ -3442,6 +3491,7 @@ to the input file name. Jump optimization is repeated, this time including cross-jumping and deletion of no-op move instructions. +@opindex dJ The option @samp{-dJ} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.jump2} to the input file name. @@ -3453,6 +3503,7 @@ Delayed branch scheduling. This optional pass attempts to find instructions that can go into the delay slots of other instructions, usually jumps and calls. The source file name is @file{reorg.c}. +@opindex dd The option @samp{-dd} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.dbr} to the input file name. @@ -3473,6 +3524,7 @@ stack may be done at this point. Currently, this is supported only for the floating-point registers of the Intel 80387 coprocessor. The source file name is @file{reg-stack.c}. +@opindex dk The options @samp{-dk} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.stack} to the input file name. @@ -4491,9 +4543,20 @@ Public License instead of this License. @include contrib.texi @c --------------------------------------------------------------------- -@c Node Index +@c Indexes @c --------------------------------------------------------------------- +@node Option Index +@unnumbered Option Index + +GCC's command line options are indexed here without any initial @samp{-} +or @samp{--}. Where an option has both positive and negative forms +(such as @option{-f@var{option}} and @option{-fno-@var{option}}), +relevant entries in the manual are indexed under the most appropriate +form; it may sometimes be useful to look up both forms. + +@printindex op + @node Index @unnumbered Index |