gcc(1)
NAME
gcc, g++ - GNU project C and C++ Compiler (gcc-2.95)
SYNOPSIS
gcc [ option | filename ]... g++ [ option | filename ]...
WARNING
Array2.0). Both are made from the Texinfo source file gcc.texinfo.
DESCRIPTION
Array.c C source; preprocess, compile, assemble
.C C++ source; preprocess, compile, assemble
.cc C++ source; preprocess, compile, assemble
.cxx C++ source; preprocess, compile, assemble
.m Objective-C source; preprocess, compile, assemble
.i preprocessed C; compile, assemble
.ii preprocessed C++; compile, assemble
.s Assembler source; assemble
.S Assembler source; preprocess, assemble
.h Preprocessor file; not usually named on command line
Array.o Object file
.a Archive file
Arraystop the whole process). For the link stage, all .o files corresponding to source files, -l libraries, unrecognized filenames
(including named .o object files and .a archives) are passed to
the linker in command-line order.
OPTIONS
Array-msoft-float
VAX Options
-mg -mgnu -munix
ArrayConvex Options
-margcount -mc1 -mc2 -mnoargcount
Arraydivision -mno-ocs-debug-info -mno-ocs-frame-position -mno-optimize-arg-area -mno-serialize-volatile -mno-underscores -mocs-debug-info -mocs-frame-position -moptimize-arg-area -mserializevolatile -mshort-data-num -msvr3 -msvr4 -mtrap-large-shift -musediv-instruction -mversion-03.00 -mwarn-passed-structs
RS6000 Options
-mfp-in-toc -mno-fop-in-toc
Arraygpopt -mstats -mno-stats -mmemcpy -mno-memcpy -mno-mips-tfile
-mmips-tfile -msoft-float -mhard-float -mabicalls -mno-abicalls
-mhalf-pic -mno-half-pic -G num -nocpp
i386 Options
-m486 -mno-486 -msoft-float -mno-fp-ret-in-387
Arrayaddr -mno-complex-addr -mcode-align -mno-code-align -mic-compat
-mic2.0-compat -mic3.0-compat -masm-compat -mintel-asm -mstrictalign -mno-strict-align -mold-align -mno-old-align
DEC Alpha Options
-mfp-regs -mno-fp-regs -mno-soft-float -msoft-float
Array-fno-gnu-linker -fpcc-struct-return -fpic -fPIC -freg-struct-return -fshared-data -fshort-enums -fshort-double -fvolatile
-fvolatile-global -fverbose-asm
OVERALL OPTIONS
Arraywork on some systems where the assembler cannot read from a pipe;
but the GNU assembler has no trouble.
LANGUAGE OPTIONS
Array`-funsigned-char'. Likewise, `-fno-signed-char' is equivalent to
`-funsigned-char'.
-fsigned-bitfields
-funsigned-bitfields
-fno-signed-bitfields
- Arraygrams which assume they can write into string constants.
`-traditional' also has this effect.
Writing into string constants is a very bad idea; - "constants" should be constant.
PREPROCESSOR OPTIONS
Arraysource file, the preprocessor outputs one make-rule whose target
is the object file name for that source file and whose dependencies are all the files `#include'd in it. This rule may be a
single line or may be continued with ´-newline if it is long.
The list of rules is printed on standard output instead of the
preprocessed C program.
`-M' implies `-E'.
Arrayput.
ASSEMBLER OPTION
Arraycommas.
LINKER OPTIONS
Arrayple times with different symbols to force loading of additional
library modules.
DIRECTORY OPTIONS
Arraya prefix in the same way. If both the `-B' option and the
GCC_EXEC_PREFIX
first and the environment variable value second.
WARNING OPTIONS
Array-w Inhibit all warning messages.
- Arraywas given.
-Werror - Treat warnings as errors; abort compilation after
- any warning.
DEBUGGING OPTIONS
ArrayGNU debugger (GDB). The use of these extensions is likely to
make other debuggers crash or refuse to read the program.
-glevel
-ggdblevel
-gstabslevel
-gcofflevel -gxcofflevel
Array-dN Dump all macro names, at the end of preprocessing.
Array-dr Dump after RTL generation, to `file.rtl'.
Array-dj Dump after first jump optimization, to `file.jump'.
Array-dL Dump after loop optimization, to `file.loop'.
Array-df Dump after flow analysis, to `file.flow'.
Array-dJ Dump after last jump optimization, to `file.jump2'.
Array-da Produce all the dumps listed above.
- Arrayelse. With this option, GNU CC does not compile or link anything; it just prints the file name.
-print-libgcc-file-name - Same as `-print-file-name=libgcc.a'.
- -print-prog-name=program
- Like `-print-file-name', but searches for a program
- such as `cpp'.
OPTIMIZATION OPTIONS
These options control various sorts of optimizations:
-O
Arrayfloating point. Use `-ffloat-store' for such programs.
-fmemoize-lookups
Arraydles the frame pointer and nothing is saved by pretending it
doesn't exist. The machine-description macro
FRAME_POINTER_REQUIRED
Arraycall to foo without going through a temporary in the following
code:
A foo (); A y = foo ();
Arrayhas been done. This is especially useful on machines with a relatively small number of registers and where memory load instructions take more than one cycle.
TARGET OPTIONS
Arraybe a version that is recommended for general use.
MACHINE DEPENDENT OPTIONS
Arrayother compilers on the same platform.
These are the `-m' options defined for the 68000 series:
-m68000
Array-m68020
ArrayThese `-m' options are defined for the Vax:
ArrayThese `-m' switches are supported on the SPARC:
-mfpu
Array-mno-fpu
Arrayprogram with this option.
-mno-epilogue
Array-mno-v8
-mv8
Arraystructions which exist in SPARClite but not in SPARC v7.
-mcypress
Arrayseries. This flag also enables use of the full SPARC v8 instruction set.
These `-m' options are defined for the Convex:
ArrayThese `-m' options are defined for the AMD Am29000:
Arrayhardware. This is the default.
-mnodw Generate code that assumes the DW bit is not set.
ArrayThe default is to use an underscore as prefix on each name.
-mno-check-zero-division
ArrayUse these options to avoid including (or to include explicitly)
additional code to detect division by zero and signal an exception. All GCC configurations for the 88K use
`-mcheck-zero-division' by default.
-mocs-debug-info
Array88Open Object Compatibility Standard, "OCS". This extra information is not needed by GDB. The default for DG/UX, SVr4, and
Delta 88 SVr3.2 is to include this information; other 88k configurations omit this information by default.
-mocs-frame-position
ArrayOCS. The DG/UX, Delta88 SVr3.2, and BCS configurations use
`-mocs-frame-position'; other 88k configurations have the default
`-mno-ocs-frame-position'.
-moptimize-arg-area
Arraystruction (rather than the usual two). You control which data
references are affected by specifying num with this option. For
example, if you specify `-mshort-data-512', then the data references affected are those involving displacements of less than 512
bytes. `-mshort-data-num' is not effective for num greater than
64K.
-mserialize-volatile
Arrayuse `-mserialize-volatile'.
-msvr4
Array-mtrap-large-shift
Arrayevolution of the C language, and are often the source of portability problems. By default, GCC issues no such warning.
These options are defined for the IBM RS6000:
-mfp-in-toc
Arrayand function addresses. By default GCC puts floating-point constants there; if the TOC overflows, `-mno-fp-in-toc' will reduce
the size of the TOC, which may avoid the overflow.
These `-m' options are defined for the IBM RT PC:
Arrayjunction with -mips2.
-mint64
-mlong64
Arrayject format.
-mrnames
Arraynames (ie, a0 instead of $4). The GNU assembler does not support
the -mrnames switch, and the MIPS assembler will be instructed to
run the MIPS C preprocessor over the source file. The
-mno-rnames switch is default.
-mgpopt
Arraythe MIPS assembler to generate one word memory references instead
of using two words for short global or static data items. This
is on by default if optimization is selected.
-mstats
Arrayfile to print statistics about the program (number of registers
saved, stack size, etc.).
-mmemcpy
Arraygenerating inline code.
-mmips-tfile
Array-mabicalls
Arrayposition independent code.
-mhalf-pic
ArrayThe default cpu-type is kb; other choices are ka, mc, ca, cf, sa,
and sb.
-mnumerics
Arraytion indicates that floating-point support should not be assumed.
-mleaf-procedures
Arrayresult in more efficient code for explicit calls when the bal instruction can be substituted by the assembler or linker, but less
efficient code in other cases, such as calls via function pointers, or using a linker that doesn't support this optimization.
-mtail-call
Arraytimize tail-recursive calls into branches. You may not want to
do this because the detection of cases where this is not valid is
not totally complete. The default is -mno-tail-call.
-mcomplex-addr
ArrayComplex addressing modes may not be worthwhile on the K-series,
but they definitely are on the C-series. The default is currently -mcomplex-addr for all processors except the CB and CC.
-mcode-align
Arrayimplementations only.
-mic-compat
-mic2.0-compat
Array-mno-soft-float
Array-mfp-reg
- Arrayin dirs from one another with colons.
-Ym,dir - Look in the directory dir to find the M4 preproces
- sor. The assembler uses this option.
CODE GENERATION OPTIONS
Arraypiler must check that a is not null in code like the following:
obj &a = g (); a.f (2);
- Arraystack pointer, frame pointer or in some other fixed role).
reg must be the name of a register. The register - names accepted are machine-specific and are defined in the
REGISTER_NAMES
- Arrayreturned.
This flag does not have a negative form, because it - specifies a three-way choice.
PRAGMAS
Arrayfiles that use those classes. Normally, local copies of certain
information (backup copies of inline member functions, debugging
information, and the internal tables that implement virtual functions) must be kept in each object file that includes class definitions. You can use this pragma to avoid such duplication.
When a header file containing `#pragma interface' is included in
a compilation, this auxiliary information will not be generated
(unless the main input source file itself uses `#pragma
implementation'). Instead, the object files will contain references to be resolved at link time.
#pragma implementation
- Arrayyour source file; for example, in `allclass.cc', `#pragma
implementation' by itself is equivalent to `#pragma
implementation "allclass.h"'. Use the string argument if you
want a single implementation file to include code from multiple
header files.
There is no way to split up the contents of a sin - gle header file into multiple implementation files.
FILES
ArrayLIBDIR/g++-include additional g++ directory for #include
- LIBDIR is usually /usr/local/lib/machine/version. TMPDIR comes from the environment variable TMPDIR (default
- /usr/tmp if available, else /tmp).
EXIT STATUS
Arraywarning as an error.
SEE ALSO
ArrayGDB: the GNU Source-Level Debugger, Richard M. Stallman and
Roland H. Pesch; Using as: the GNU Assembler, Dean Elsner, Jay
Fenlason & friends; ld: the GNU linker, Steve Chamberlain and
Roland Pesch.
BUGS
For instructions on reporting bugs, see the GCC manual.
COPYING
Copyright 1991, 1992, 1993 Free Software Foundation, Inc.
Arrayfor modified versions, except that this permission notice may be
included in translations approved by the Free Software Foundation
instead of in the original English.