aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.1
diff options
context:
space:
mode:
authorJoseph Myers <jsm28@cam.ac.uk>2001-02-19 20:03:42 +0000
committerJoseph Myers <jsm28@gcc.gnu.org>2001-02-19 20:03:42 +0000
commit7539316943c17368ce5ef876a9baba6b8c2e64f6 (patch)
treef4e7da9c26759f75f5c830b88792fc97cb4ecdb3 /gcc/gcc.1
parent51d0f328ba4dff5c9e8866a7bca24f45c578314d (diff)
downloadgcc-7539316943c17368ce5ef876a9baba6b8c2e64f6.zip
gcc-7539316943c17368ce5ef876a9baba6b8c2e64f6.tar.gz
gcc-7539316943c17368ce5ef876a9baba6b8c2e64f6.tar.bz2
Version.c, [...]: Update G77 version number to 0.5.27.
libf2c: * libF77/Version.c, libI77/Version.c, libU77/Version.c: Update G77 version number to 0.5.27. gcc: * README, cpp.texi, gcc.texi, version.c: Update version number to 3.1. * cpp.1, gcov.1, gcc.1: Regenerate. gcc/f: * version.c, root.texi: Update GCC version number to 3.1. Update G77 version number to 0.5.27. * BUGS, NEWS: Regenerate. From-SVN: r39901
Diffstat (limited to 'gcc/gcc.1')
-rw-r--r--gcc/gcc.1181
1 files changed, 103 insertions, 78 deletions
diff --git a/gcc/gcc.1 b/gcc/gcc.1
index c78214a..a8832d0 100644
--- a/gcc/gcc.1
+++ b/gcc/gcc.1
@@ -1,5 +1,5 @@
.\" Automatically generated by Pod::Man version 1.1
-.\" Wed Jan 24 19:43:11 2001
+.\" Mon Feb 19 19:32:03 2001
.\"
.\" Standard preamble:
.\" ======================================================================
@@ -138,7 +138,7 @@
.\" ======================================================================
.\"
.IX Title "GCC 1"
-.TH GCC 1 "gcc-2.97" "2001-01-24" "GNU"
+.TH GCC 1 "gcc-3.1" "2001-02-19" "GNU"
.UC
.SH "NAME"
gcc \- \s-1GNU\s0 project C and \*(C+ compiler
@@ -217,9 +217,9 @@ in the following sections.
\&\-fhuge-objects \-fno-implicit-templates
\&\-fno-implicit-inline-templates
\&\-fno-implement-inlines \-fms-extensions
-\&\-fname-mangling-version-\fR\fIn\fR \fB\-fno-operator-names
+\&\-fno-operator-names
\&\-fno-optional-diags \-fpermissive
-\&\-frepo \-fno-rtti \-fsquangle \-ftemplate-depth-\fR\fIn\fR
+\&\-frepo \-fno-rtti \-ftemplate-depth-\fR\fIn\fR
\&\fB\-fuse-cxa-atexit \-fvtable-thunks \-nostdinc++
\&\-fno-default-inline \-Wctor-dtor-privacy
\&\-Wnon-virtual-dtor \-Wreorder
@@ -261,8 +261,8 @@ in the following sections.
\&\-Wstrict-prototypes \-Wtraditional\fR
.Ip "\fIDebugging Options\fR" 4
.IX Item "Debugging Options"
-\&\fB\-a \-ax \-d\fR\fIletters\fR \fB\-fdump-unnumbered \-fdump-translation-unit-\fR\fIfile\fR
-\&\fB\-fpretend-float \-fprofile-arcs \-ftest-coverage
+\&\fB\-a \-ax \-d\fR\fIletters\fR \fB\-fdump-unnumbered \-fdump-translation-unit=\fR\fIfile\fR
+\&\fB\-fdump-class-layout=\fR\fIfile\fR \fB\-fpretend-float \-fprofile-arcs \-ftest-coverage
\&\-g \-g\fR\fIlevel\fR \fB\-gcoff \-gdwarf \-gdwarf-1 \-gdwarf-1+ \-gdwarf-2
\&\-ggdb \-gstabs \-gstabs+ \-gxcoff \-gxcoff+
\&\-p \-pg \-print-file-name=\fR\fIlibrary\fR \fB\-print-libgcc-file-name
@@ -290,7 +290,8 @@ in the following sections.
\&\-fsingle-precision-constant \-fssa
\&\-fstrength-reduce \-fstrict-aliasing \-fthread-jumps \-ftrapv
\&\-funroll-all-loops \-funroll-loops
-\&\-O \-O0 \-O1 \-O2 \-O3 \-Os\fR
+\&\-\-param\fR \fIname\fR\fB=\fR\fIvalue\fR
+\&\fB\-O \-O0 \-O1 \-O2 \-O3 \-Os\fR
.Ip "\fIPreprocessor Options\fR" 4
.IX Item "Preprocessor Options"
\&\fB\-$ \-A\fR\fIquestion\fR\fB=\fR\fIanswer\fR \fB\-A-\fR\fIquestion\fR[\fB=\fR\fIanswer\fR]
@@ -482,12 +483,11 @@ in the following sections.
\&\fB\-mintel-syntax \-mieee-fp \-mno-fancy-math-387
\&\-mno-fp-ret-in-387 \-msoft-float \-msvr3\-shlib
\&\-mno-wide-multiply \-mrtd \-malign-double
-\&\-mreg-alloc=\fR\fIlist\fR \fB\-mregparm=\fR\fInum\fR
-\&\fB\-malign-jumps=\fR\fInum\fR \fB\-malign-loops=\fR\fInum\fR
+\&\-malign-jumps=\fR\fInum\fR \fB\-malign-loops=\fR\fInum\fR
\&\fB\-malign-functions=\fR\fInum\fR \fB\-mpreferred-stack-boundary=\fR\fInum\fR
\&\fB\-mthreads \-mno-align-stringops \-minline-all-stringops
\&\-mpush-args \-maccumulate-outgoing-args \-m128bit-long-double
-\&\-m96bit-long-double\fR
+\&\-m96bit-long-double \-mregparm=\fR\fInum\fR
.Sp
\&\fI\s-1HPPA\s0 Options\fR
.Sp
@@ -1246,19 +1246,6 @@ errors if these functions are not inlined everywhere they are called.
.IX Item "-fms-extensions"
Disable pedantic warnings about constructs used in \s-1MFC\s0, such as implicit
int and getting a pointer to member function via non-standard syntax.
-.Ip "\fB\-fname-mangling-version-\fR\fIn\fR" 4
-.IX Item "-fname-mangling-version-n"
-Control the way in which names are mangled. Version 0 is compatible
-with versions of g++ before 2.8. Version 1 is the default. Version 1
-will allow correct mangling of function templates. For example,
-version 0 mangling does not mangle foo<int, double> and foo<int, char>
-given this declaration:
-.Sp
-.Vb 1
-\& template <class T, class U> void foo(T t);
-.Ve
-Like all options that change the \s-1ABI\s0, all \*(C+ code, \fIincluding
-libgcc\fR must be built with the same setting of this option.
.Ip "\fB\-fno-operator-names\fR" 4
.IX Item "-fno-operator-names"
Do not treat the operator name keywords \f(CW\*(C`and\*(C'\fR, \f(CW\*(C`bitand\*(C'\fR,
@@ -1287,21 +1274,6 @@ functions for use by the \*(C+ runtime type identification features
of the language, you can save some space by using this flag. Note that
exception handling uses the same information, but it will generate it as
needed.
-.Ip "\fB\-fsquangle\fR" 4
-.IX Item "-fsquangle"
-.PD 0
-.Ip "\fB\-fno-squangle\fR" 4
-.IX Item "-fno-squangle"
-.PD
-\&\fB\-fsquangle\fR will enable a compressed form of name mangling for
-identifiers. In particular, it helps to shorten very long names by recognizing
-types and class names which occur more than once, replacing them with special
-short \s-1ID\s0 codes. This option also requires any \*(C+ libraries being used to
-be compiled with this option as well. The compiler has this disabled (the
-equivalent of \fB\-fno-squangle\fR) by default.
-.Sp
-Like all options that change the \s-1ABI\s0, all \*(C+ code, \fIincluding
-libgcc.a\fR must be built with the same setting of this option.
.Ip "\fB\-ftemplate-depth-\fR\fIn\fR" 4
.IX Item "-ftemplate-depth-n"
Set the maximum instantiation depth for template classes to \fIn\fR.
@@ -1402,13 +1374,27 @@ new-style casts (\fBstatic_cast\fR, \fBreinterpret_cast\fR, and
\&\fBconst_cast\fR) are less vulnerable to unintended effects.
.Ip "\fB\-Woverloaded-virtual (\*(C+ only)\fR" 4
.IX Item "-Woverloaded-virtual ( only)"
-Warn when a derived class function declaration may be an error in
-defining a virtual function. In a derived class, the
-definitions of virtual functions must match the type signature of a
-virtual function declared in the base class. With this option, the
-compiler warns when you define a function with the same name as a
-virtual function, but with a type signature that does not match any
-declarations from the base class.
+Warn when a function declaration hides virtual functions from a
+base class. For example, in:
+.Sp
+.Vb 3
+\& struct A {
+\& virtual void f();
+\& };
+.Ve
+.Vb 3
+\& struct B: public A {
+\& void f(int);
+\& };
+.Ve
+the \f(CW\*(C`A\*(C'\fR class version of \f(CW\*(C`f\*(C'\fR is hidden in \f(CW\*(C`B\*(C'\fR, and code
+like this:
+.Sp
+.Vb 2
+\& B* b;
+\& b->f();
+.Ve
+will fail to compile.
.Ip "\fB\-Wno-pmf-conversions (\*(C+ only)\fR" 4
.IX Item "-Wno-pmf-conversions ( only)"
Disable the diagnostic for converting a bound pointer to member function
@@ -1941,9 +1927,31 @@ Warn about certain constructs that behave differently in traditional and
\&\s-1ISO\s0 C.
.RS 4
.Ip "\(bu" 4
-Macro arguments occurring within string constants in the macro body.
-These would substitute the argument in traditional C, but are part of
-the constant in \s-1ISO\s0 C.
+Macro parameters that appear within string literals in the macro body.
+In traditional C macro replacement takes place within string literals,
+but does not in \s-1ISO\s0 C.
+.Ip "\(bu" 4
+In traditional C, some preprocessor directives did not exist.
+Traditional preprocessors would only consider a line to be a directive
+if the \fB#\fR appeared in column 1 on the line. Therefore
+\&\fB\-Wtraditional\fR warns about directives that traditional C
+understands but would ignore because the \fB#\fR does not appear as the
+first character on the line. It also suggests you hide directives like
+\&\fB#pragma\fR not understood by traditional C by indenting them. Some
+traditional implementations would not recognise \fB#elif\fR, so it
+suggests avoiding it altogether.
+.Ip "\(bu" 4
+A function-like macro that appears without arguments.
+.Ip "\(bu" 4
+The unary plus operator.
+.Ip "\(bu" 4
+The `U' integer constant suffix, or the `F' or `L' floating point
+constant suffixes. (Traditonal C does support the `L' suffix on integer
+constants.) Note, these suffixes appear in macros defined in the system
+headers of most modern systems, e.g. the _MIN/_MAX macros in limits.h.
+Use of these macros can lead to spurious warnings as they do not
+necessarily reflect whether the code in question is any less portable to
+traditional C given that suitable backup definitions are provided.
.Ip "\(bu" 4
A function declared external in one block and then used after the end of
the block.
@@ -1960,10 +1968,6 @@ typically represent bit patterns, are not warned about.
.Ip "\(bu" 4
Usage of \s-1ISO\s0 string concatenation is detected.
.Ip "\(bu" 4
-A function macro appears without arguments.
-.Ip "\(bu" 4
-The unary plus operator.
-.Ip "\(bu" 4
Initialization of automatic aggregates.
.Ip "\(bu" 4
Identifier conflicts with labels. Traditional C lacks a separate
@@ -1974,14 +1978,6 @@ omitted. This is done under the assumption that the zero initializer in
user code appears conditioned on e.g. \f(CW\*(C`_\|_STDC_\|_\*(C'\fR to avoid missing
initializer warnings and relies on default initialization to zero in the
traditional C case.
-.Ip "\(bu" 4
-The `U' integer constant suffix, or the `F' or `L' floating point
-constant suffixes. (Traditonal C does support the `L' suffix on integer
-constants.) Note, these suffixes appear in macros defined in the system
-headers of most modern systems, e.g. the _MIN/_MAX macros in limits.h.
-Use of these macros can lead to spurious warnings as they do not
-necessarily reflect whether the code in question is any less portable to
-traditional C given that suitable backup definitions are provided.
.RE
.RS 4
.RE
@@ -2572,10 +2568,18 @@ When doing debugging dumps (see \-d option above), suppress instruction
numbers and line number note output. This makes it more feasible to
use diff on debugging dumps for compiler invocations with different
options, in particular with and without \-g.
-.Ip "\fB\-fdump-translation-unit-\fR\fIfile\fR \fB(C and \*(C+ only)\fR" 4
-.IX Item "-fdump-translation-unit-file (C and only)"
+.Ip "\fB\-fdump-translation-unit=\fR\fIfile\fR \fB(C and \*(C+ only)\fR" 4
+.IX Item "-fdump-translation-unit=file (C and only)"
Dump a representation of the tree structure for the entire translation
unit to \fIfile\fR.
+.Ip "\fB\-fdump-class_layout=\fR\fIfile\fR \fB(\*(C+ only)\fR" 4
+.IX Item "-fdump-class_layout=file ( only)"
+.PD 0
+.Ip "\fB\-fdump-class_layout (\*(C+ only)\fR" 4
+.IX Item "-fdump-class_layout ( only)"
+.PD
+Dump a representation of each class's heirarchy to \fIfile\fR, or
+\&\f(CW\*(C`stderr\*(C'\fR if not specified.
.Ip "\fB\-fpretend-float\fR" 4
.IX Item "-fpretend-float"
When running a cross-compiler, pretend that the target machine uses the
@@ -3130,6 +3134,25 @@ of registers left over after register allocation. This optimization
will most benefit processors with lots of registers. It can, however,
make debugging impossible, since variables will no longer stay in
a ``home register''.
+.Ip "\fB\*(--param\fR \fIname\fR\fB=\fR\fIvalue\fR" 4
+.IX Item "param name=value"
+In some places, \s-1GCC\s0 uses various constants to control the amount of
+optimization that is done. For example, \s-1GCC\s0 will not inline functions
+that contain more that a certain number of instructions. You can
+control some of these constants on the command-line using the
+\&\fB\*(--param\fR option.
+.Sp
+In each case, the \fIvalue\fR is a integer. The allowable choices for
+\&\fIname\fR are given in the following table:
+.RS 4
+.Ip "\fBmax-inline-insns\fR" 4
+.IX Item "max-inline-insns"
+If an function contains more than this many instructions, it
+will not be inlined. This option is precisely equivalent to
+\&\fB\-finline-limit\fR.
+.RE
+.RS 4
+.RE
.Sh "Options Controlling the Preprocessor"
.IX Subsection "Options Controlling the Preprocessor"
These options control the C preprocessor, which is run on each C source
@@ -3220,8 +3243,10 @@ Instead of outputting the result of preprocessing, output a rule
suitable for \f(CW\*(C`make\*(C'\fR describing the dependencies of the main source
file. The preprocessor outputs one \f(CW\*(C`make\*(C'\fR rule containing the
object file name for that source file, a colon, and the names of all the
-included files. If there are many included files then the rule is split
-into several lines using \fB\e\fR\-newline.
+included files. Unless overridden explicitly, the object file name
+consists of the basename of the source file with any suffix replaced with
+object file suffix. If there are many included files then the
+rule is split into several lines using \fB\e\fR\-newline.
.Sp
\&\fB\-M\fR implies \fB\-E\fR.
.Ip "\fB\-MM\fR" 4
@@ -3528,11 +3553,16 @@ of these is when the application wishes to throw and catch exceptions
across different shared libraries. In that case, each of the libraries
as well as the application itself should use the shared \fIlibgcc\fR.
.Sp
-At present the \s-1GCC\s0 driver makes no attempt to recognize the situations
-in which the shared \fIlibgcc\fR should be used, and defaults to using
-the static \fIlibgcc\fR always. This will likely change in the future,
-at which time \fB\-static-libgcc\fR becomes useful as a means for
-overriding \s-1GCC\s0's choice.
+Therefore, whenever you specify the \fB\-shared\fR option, the \s-1GCC\s0
+driver automatically adds \fB\-shared-libgcc\fR, unless you explicitly
+specify \fB\-static-libgcc\fR. The G++ driver automatically adds
+\&\fB\-shared-libgcc\fR when you build a main executable as well because
+for \*(C+ programs that is typically the right thing to do.
+(Exception-handling will not work reliably otherwise.)
+.Sp
+However, when linking a main executable written in C, you must
+explicitly say \fB\-shared-libgcc\fR if you want to use the shared
+\&\fIlibgcc\fR.
.Ip "\fB\-symbolic\fR" 4
.IX Item "-symbolic"
Bind references to global symbols when building a shared object. Warn
@@ -3569,8 +3599,10 @@ libraries and for parts of the compiler:
Add the directory \fIdir\fR to the head of the list of directories to be
searched for header files. This can be used to override a system header
file, substituting your own version, since these directories are
-searched before the system header file directories. If you use more
-than one \fB\-I\fR option, the directories are scanned in left-to-right
+searched before the system header file directories. However, you should
+not use this option to add directories that contain vendor-supplied
+system header files (use \fB\-isystem\fR for that). If you use more than
+one \fB\-I\fR option, the directories are scanned in left-to-right
order; the standard system directories come after.
.Ip "\fB\-I-\fR" 4
.IX Item "-I-"
@@ -5963,13 +5995,6 @@ functions.
In addition, seriously incorrect code will result if you call a
function with too many arguments. (Normally, extra arguments are
harmlessly ignored.)
-.Ip "\fB\-mreg-alloc=\fR\fIregs\fR" 4
-.IX Item "-mreg-alloc=regs"
-Control the default allocation order of integer registers. The
-string \fIregs\fR is a series of letters specifying a register. The
-supported letters are: \f(CW\*(C`a\*(C'\fR allocate \s-1EAX\s0; \f(CW\*(C`b\*(C'\fR allocate \s-1EBX\s0;
-\&\f(CW\*(C`c\*(C'\fR allocate \s-1ECX\s0; \f(CW\*(C`d\*(C'\fR allocate \s-1EDX\s0; \f(CW\*(C`S\*(C'\fR allocate \s-1ESI\s0;
-\&\f(CW\*(C`D\*(C'\fR allocate \s-1EDI\s0; \f(CW\*(C`B\*(C'\fR allocate \s-1EBP\s0.
.Ip "\fB\-mregparm=\fR\fInum\fR" 4
.IX Item "-mregparm=num"
Control how many registers are used to pass integer arguments. By