Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
1dc5fc4b
Commit
1dc5fc4b
authored
Sep 12, 1998
by
Jason Merrill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
From-SVN: r22398
parent
b91d2c10
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
64 additions
and
143 deletions
+64
-143
gcc/invoke.texi
+64
-143
No files found.
gcc/invoke.texi
View file @
1dc5fc4b
...
@@ -102,13 +102,14 @@ in the following sections.
...
@@ -102,13 +102,14 @@ in the following sections.
@item
C
++
Language
Options
@item
C
++
Language
Options
@xref
{
C
++
Dialect
Options
,,
Options
Controlling
C
++
Dialect
}.
@xref
{
C
++
Dialect
Options
,,
Options
Controlling
C
++
Dialect
}.
@smallexample
@smallexample
-
fall
-
virtual
-
fdollars
-
in
-
identifiers
-
felide
-
constructors
-
fno
-
access
-
control
-
fcheck
-
new
-
fconserve
-
space
-
fdollars
-
in
-
identifiers
-
fenum
-
int
-
equiv
-
fexternal
-
templates
-
ffor
-
scope
-
fno
-
elide
-
constructors
-
fexternal
-
templates
-
ffor
-
scope
-
fno
-
for
-
scope
-
fhandle
-
signatures
-
fhonor
-
std
-
fmemoize
-
lookups
-
fno
-
for
-
scope
-
fno
-
gnu
-
keywords
-
fguiding
-
decls
-
fhandle
-
signatures
-
fname
-
mangling
-
version
-
@var
{
n
}
-
fno
-
default
-
inline
-
fhonor
-
std
-
fhuge
-
objects
-
fno
-
implicit
-
templates
-
finit
-
priority
-
fno
-
gnu
-
keywords
-
fnonnull
-
objects
-
fguiding
-
decls
-
fno
-
implement
-
inlines
-
fname
-
mangling
-
version
-
@var
{
n
}
-
fno
-
default
-
inline
-
foperator
-
names
-
fno
-
optional
-
diags
-
fstrict
-
prototype
-
fthis
-
is
-
variable
-
foperator
-
names
-
fno
-
optional
-
diags
-
frepo
-
fstrict
-
prototype
-
ftemplate
-
depth
-
@var
{
n
}
-
nostdinc
++
-
traditional
+
e
@var
{
n
}
-
fsquangle
-
ftemplate
-
depth
-
@var
{
n
}
-
fthis
-
is
-
variable
-
fvtable
-
thunks
-
nostdinc
++
@end
smallexample
@end
smallexample
@item
Warning
Options
@item
Warning
Options
...
@@ -127,7 +128,7 @@ in the following sections.
...
@@ -127,7 +128,7 @@ in the following sections.
-
Wno
-
non
-
template
-
friend
-
Wold
-
style
-
cast
-
Woverloaded
-
virtual
-
Wno
-
non
-
template
-
friend
-
Wold
-
style
-
cast
-
Woverloaded
-
virtual
-
Wparentheses
-
Wpointer
-
arith
-
Wredundant
-
decls
-
Wreorder
-
Wparentheses
-
Wpointer
-
arith
-
Wredundant
-
decls
-
Wreorder
-
Wreturn
-
type
-
Wshadow
-
Wsign
-
compare
-
Wstrict
-
prototypes
-
Wreturn
-
type
-
Wshadow
-
Wsign
-
compare
-
Wstrict
-
prototypes
-
Wswitch
-
Wsynth
-
Wt
emplate
-
debugging
-
Wt
raditional
-
Wswitch
-
Wsynth
-
Wtraditional
-
Wtrigraphs
-
Wundef
-
Wuninitialized
-
Wunused
-
Wwrite
-
strings
-
Wtrigraphs
-
Wundef
-
Wuninitialized
-
Wunused
-
Wwrite
-
strings
-
Wunknown
-
pragmas
-
Wunknown
-
pragmas
@end
smallexample
@end
smallexample
...
@@ -404,7 +405,7 @@ in the following sections.
...
@@ -404,7 +405,7 @@ in the following sections.
-
fpcc
-
struct
-
return
-
fpic
-
fPIC
-
fpcc
-
struct
-
return
-
fpic
-
fPIC
-
freg
-
struct
-
return
-
fshared
-
data
-
fshort
-
enums
-
freg
-
struct
-
return
-
fshared
-
data
-
fshort
-
enums
-
fshort
-
double
-
fvolatile
-
fvolatile
-
global
-
fshort
-
double
-
fvolatile
-
fvolatile
-
global
-
fverbose
-
asm
-
fpack
-
struct
-
fstack
-
check
+
e0
+
e1
-
fverbose
-
asm
-
fpack
-
struct
-
fstack
-
check
-
fargument
-
alias
-
fargument
-
noalias
-
fargument
-
alias
-
fargument
-
noalias
-
fargument
-
noalias
-
global
-
fargument
-
noalias
-
global
@end
smallexample
@end
smallexample
...
@@ -764,12 +765,6 @@ literal characters @samp{x} and @samp{a} respectively. Without
...
@@ -764,12 +765,6 @@ literal characters @samp{x} and @samp{a} respectively. Without
@w
{
@samp
{
-
traditional
}},
@samp
{
\
x
}
is
a
prefix
for
the
hexadecimal
@w
{
@samp
{
-
traditional
}},
@samp
{
\
x
}
is
a
prefix
for
the
hexadecimal
representation
of
a
character
,
and
@samp
{
\
a
}
produces
a
bell
.
representation
of
a
character
,
and
@samp
{
\
a
}
produces
a
bell
.
@item
In
C
++
programs
,
assignment
to
@code
{
this
}
is
permitted
with
@samp
{
-
traditional
}.
(
The
option
@samp
{
-
fthis
-
is
-
variable
}
also
has
this
effect
.)
@end
itemize
You
may
wish
to
use
@samp
{
-
fno
-
builtin
}
as
well
as
@samp
{
-
traditional
}
You
may
wish
to
use
@samp
{
-
fno
-
builtin
}
as
well
as
@samp
{
-
traditional
}
if
your
program
uses
names
that
are
normally
GNU
C
builtin
functions
for
if
your
program
uses
names
that
are
normally
GNU
C
builtin
functions
for
other
purposes
of
its
own
.
other
purposes
of
its
own
.
...
@@ -908,11 +903,11 @@ regardless of what language your program is in. For example, you
...
@@ -908,11 +903,11 @@ regardless of what language your program is in. For example, you
might
compile
a
file
@code
{
firstClass
.
C
}
like
this
:
might
compile
a
file
@code
{
firstClass
.
C
}
like
this
:
@example
@example
g
++
-
g
-
f
elide
-
constructors
-
O
-
c
firstClass
.
C
g
++
-
g
-
f
repo
-
O
-
c
firstClass
.
C
@end
example
@end
example
@noindent
@noindent
In
this
example
,
only
@samp
{
-
f
elide
-
constructors
}
is
an
option
meant
In
this
example
,
only
@samp
{
-
f
repo
}
is
an
option
meant
only
for
C
++
programs
;
you
can
use
the
other
options
with
any
only
for
C
++
programs
;
you
can
use
the
other
options
with
any
language
supported
by
GNU
CC
.
language
supported
by
GNU
CC
.
...
@@ -923,24 +918,17 @@ Here is a list of options that are @emph{only} for compiling C++ programs:
...
@@ -923,24 +918,17 @@ Here is a list of options that are @emph{only} for compiling C++ programs:
Turn
off
all
access
checking
.
This
switch
is
mainly
useful
for
working
Turn
off
all
access
checking
.
This
switch
is
mainly
useful
for
working
around
bugs
in
the
access
control
code
.
around
bugs
in
the
access
control
code
.
@item
-
fall
-
virtual
Treat
all
possible
member
functions
as
virtual
,
implicitly
.
All
member
functions
(
except
for
constructor
functions
and
@code
{
new
}
or
@code
{
delete
}
member
operators
)
are
treated
as
virtual
functions
of
the
class
where
they
appear
.
This
does
not
mean
that
all
calls
to
these
member
functions
will
be
made
through
the
internal
table
of
virtual
functions
.
Under
some
circumstances
,
the
compiler
can
determine
that
a
call
to
a
given
virtual
function
can
be
made
directly
;
in
these
cases
the
calls
are
direct
in
any
case
.
@item
-
fcheck
-
new
@item
-
fcheck
-
new
Check
that
the
pointer
returned
by
@code
{
operator
new
}
is
non
-
null
Check
that
the
pointer
returned
by
@code
{
operator
new
}
is
non
-
null
before
attempting
to
modify
the
storage
allocated
.
The
current
Working
before
attempting
to
modify
the
storage
allocated
.
The
current
Working
Paper
requires
that
@code
{
operator
new
}
never
return
a
null
pointer
,
so
Paper
requires
that
@code
{
operator
new
}
never
return
a
null
pointer
,
so
this
check
is
normally
unnecessary
.
this
check
is
normally
unnecessary
.
An
alternative
to
using
this
option
is
to
specify
that
your
@code
{
operator
new
}
does
not
throw
any
exceptions
;
if
you
declare
it
@samp
{
throw
()},
g
++
will
check
the
return
value
.
See
also
@samp
{
new
(
nothrow
)}.
@item
-
fconserve
-
space
@item
-
fconserve
-
space
Put
uninitialized
or
runtime
-
initialized
global
variables
into
the
Put
uninitialized
or
runtime
-
initialized
global
variables
into
the
common
segment
,
as
C
does
.
This
saves
space
in
the
executable
at
the
common
segment
,
as
C
does
.
This
saves
space
in
the
executable
at
the
...
@@ -949,6 +937,9 @@ flag and your program mysteriously crashes after @code{main()} has
...
@@ -949,6 +937,9 @@ flag and your program mysteriously crashes after @code{main()} has
completed
,
you
may
have
an
object
that
is
being
destroyed
twice
because
completed
,
you
may
have
an
object
that
is
being
destroyed
twice
because
two
definitions
were
merged
.
two
definitions
were
merged
.
This
option
is
no
longer
useful
on
most
targets
,
now
that
support
has
been
added
for
putting
variables
into
BSS
without
making
them
common
.
@item
-
fdollars
-
in
-
identifiers
@item
-
fdollars
-
in
-
identifiers
Accept
@samp
{
$
}
in
identifiers
.
You
can
also
explicitly
prohibit
use
of
Accept
@samp
{
$
}
in
identifiers
.
You
can
also
explicitly
prohibit
use
of
@samp
{
$
}
with
the
option
@samp
{
-
fno
-
dollars
-
in
-
identifiers
}.
(
GNU
C
allows
@samp
{
$
}
with
the
option
@samp
{
-
fno
-
dollars
-
in
-
identifiers
}.
(
GNU
C
allows
...
@@ -956,10 +947,11 @@ Accept @samp{$} in identifiers. You can also explicitly prohibit use of
...
@@ -956,10 +947,11 @@ Accept @samp{$} in identifiers. You can also explicitly prohibit use of
Traditional
C
allowed
the
character
@samp
{
$
}
to
form
part
of
Traditional
C
allowed
the
character
@samp
{
$
}
to
form
part
of
identifiers
.
However
,
ANSI
C
and
C
++
forbid
@samp
{
$
}
in
identifiers
.
identifiers
.
However
,
ANSI
C
and
C
++
forbid
@samp
{
$
}
in
identifiers
.
@item
-
fenum
-
int
-
equiv
@item
-
fno
-
elide
-
constructors
Anachronistically
permit
implicit
conversion
of
@code{
int
}
to
The
C
++
standard
allows
an
implementation
to
omit
creating
a
temporary
enumeration
types
.
Current
C
++
allows
conversion
of
@code{
enum
}
to
which
is
only
used
to
initialize
another
object
of
the
same
type
.
@code{
int
}
,
but
not
the
other
way
around
.
Specifying
this
option
disables
that
optimization
,
and
forces
g
++
to
call
the
copy
constructor
in
all
cases
.
@item
-
fexternal
-
templates
@item
-
fexternal
-
templates
Cause
template
instantiations
to
obey
@samp
{
#
pragma
interface
}
and
Cause
template
instantiations
to
obey
@samp
{
#
pragma
interface
}
and
...
@@ -1008,12 +1000,9 @@ be instantiated. This behavior reflects the C++ language prior to
...
@@ -1008,12 +1000,9 @@ be instantiated. This behavior reflects the C++ language prior to
September
1996
,
when
guiding
declarations
were
removed
.
September
1996
,
when
guiding
declarations
were
removed
.
This
option
implies
@samp{
-
fname
-
mangling
-
version
-
0
}
,
and
will
not
work
This
option
implies
@samp{
-
fname
-
mangling
-
version
-
0
}
,
and
will
not
work
with
other
name
mangling
versions
.
with
other
name
mangling
versions
.
Like
all
options
that
change
the
ABI
,
all
C
++
code
,
@emph{
including
libgcc
.
a
}
must
be
built
with
the
same
@item
-
fno
-
implicit
-
templates
setting
of
this
option
.
Never
emit
code
for
templates
which
are
instantiated
implicitly
(
i
.
e
.
by
use
)
;
only
emit
code
for
explicit
instantiations
.
@xref{
Template
Instantiation
}
,
for
more
information
.
@item
-
fhandle
-
signatures
@item
-
fhandle
-
signatures
Recognize
the
@code{
signature
}
and
@code{
sigof
}
keywords
for
specifying
Recognize
the
@code{
signature
}
and
@code{
sigof
}
keywords
for
specifying
...
@@ -1031,12 +1020,18 @@ by default, ignore @code{namespace-declarations},
...
@@ -1031,12 +1020,18 @@ by default, ignore @code{namespace-declarations},
@item
-
fhuge
-
objects
@item
-
fhuge
-
objects
Support
virtual
function
calls
for
objects
that
exceed
the
size
Support
virtual
function
calls
for
objects
that
exceed
the
size
representable
by
a
@samp{
short
int
}
.
Users
should
not
use
this
flag
by
representable
by
a
@samp{
short
int
}
.
Users
should
not
use
this
flag
by
default
;
if
you
need
to
use
it
,
the
compiler
will
tell
you
so
.
If
you
default
;
if
you
need
to
use
it
,
the
compiler
will
tell
you
so
.
compile
any
of
your
code
with
this
flag
,
you
must
compile
@emph{
all
}
of
your
code
with
this
flag
(
including
the
C
++
library
,
if
you
use
it
).
This
flag
is
not
useful
when
compiling
with
-
fvtable
-
thunks
.
This
flag
is
not
useful
when
compiling
with
-
fvtable
-
thunks
.
Like
all
options
that
change
the
ABI
,
all
C
++
code
,
@emph{
including
libgcc
}
must
be
built
with
the
same
setting
of
this
option
.
@item
-
fno
-
implicit
-
templates
Never
emit
code
for
templates
which
are
instantiated
implicitly
(
i
.
e
.
by
use
)
;
only
emit
code
for
explicit
instantiations
.
@xref{
Template
Instantiation
}
,
for
more
information
.
@item
-
finit
-
priority
@item
-
finit
-
priority
Support
@samp{
__attribute__
((
init_priority
(
n
)))
}
for
controlling
the
Support
@samp{
__attribute__
((
init_priority
(
n
)))
}
for
controlling
the
order
of
initialization
of
file
-
scope
objects
.
On
ELF
targets
,
this
order
of
initialization
of
file
-
scope
objects
.
On
ELF
targets
,
this
...
@@ -1047,58 +1042,6 @@ To save space, do not emit out-of-line copies of inline functions
...
@@ -1047,58 +1042,6 @@ To save space, do not emit out-of-line copies of inline functions
controlled
by
@samp{#
pragma
implementation
}
.
This
will
cause
linker
controlled
by
@samp{#
pragma
implementation
}
.
This
will
cause
linker
errors
if
these
functions
are
not
inlined
everywhere
they
are
called
.
errors
if
these
functions
are
not
inlined
everywhere
they
are
called
.
@item
-
fmemoize
-
lookups
@itemx
-
fsave
-
memoized
Use
heuristics
to
compile
faster
.
These
heuristics
are
not
enabled
by
default
,
since
they
are
only
effective
for
certain
input
files
.
Other
input
files
compile
more
slowly
.
The
first
time
the
compiler
must
build
a
call
to
a
member
function
(
or
reference
to
a
data
member
),
it
must
(
1
)
determine
whether
the
class
implements
member
functions
of
that
name
;
(
2
)
resolve
which
member
function
to
call
(
which
involves
figuring
out
what
sorts
of
type
conversions
need
to
be
made
)
;
and
(
3
)
check
the
visibility
of
the
member
function
to
the
caller
.
All
of
this
adds
up
to
slower
compilation
.
Normally
,
the
second
time
a
call
is
made
to
that
member
function
(
or
reference
to
that
data
member
),
it
must
go
through
the
same
lengthy
process
again
.
This
means
that
code
like
this
:
@smallexample
cout
<<
"This "
<<
p
<<
" has "
<<
n
<<
" legs.
\n
"
;
@end
smallexample
@noindent
makes
six
passes
through
all
three
steps
.
By
using
a
software
cache
,
a
``
hit
''
significantly
reduces
this
cost
.
Unfortunately
,
using
the
cache
introduces
another
layer
of
mechanisms
which
must
be
implemented
,
and
so
incurs
its
own
overhead
.
@samp{
-
fmemoize
-
lookups
}
enables
the
software
cache
.
Because
access
privileges
(
visibility
)
to
members
and
member
functions
may
differ
from
one
function
context
to
the
next
,
G
++
may
need
to
flush
the
cache
.
With
the
@samp{
-
fmemoize
-
lookups
}
flag
,
the
cache
is
flushed
after
every
function
that
is
compiled
.
The
@samp{
-
fsave
-
memoized
}
flag
enables
the
same
software
cache
,
but
when
the
compiler
determines
that
the
context
of
the
last
function
compiled
would
yield
the
same
access
privileges
of
the
next
function
to
compile
,
it
preserves
the
cache
.
This
is
most
helpful
when
defining
many
member
functions
for
the
same
class:
with
the
exception
of
member
functions
which
are
friends
of
other
classes
,
each
member
function
has
exactly
the
same
access
privileges
as
every
other
,
and
the
cache
need
not
be
flushed
.
The
code
that
implements
these
flags
has
rotted
;
you
should
probably
avoid
using
them
.
@item
-
fstrict
-
prototype
Within
an
@samp{
extern
"C"
}
linkage
specification
,
treat
a
function
declaration
with
no
arguments
,
such
as
@samp{
int
foo
()
;}
,
as
declaring
the
function
to
take
no
arguments
.
Normally
,
such
a
declaration
means
that
the
function
@code{
foo
}
can
take
any
combination
of
arguments
,
as
in
C
.
@samp{
-
pedantic
}
implies
@samp{
-
fstrict
-
prototype
}
unless
overridden
with
@samp{
-
fno
-
strict
-
prototype
}
.
This
flag
no
longer
affects
declarations
with
C
++
linkage
.
@item
-
fname
-
mangling
-
version
-
@var{
n
}
@item
-
fname
-
mangling
-
version
-
@var{
n
}
Control
the
way
in
which
names
are
mangled
.
Version
0
is
compatible
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
with
versions
of
g
++
before
2
.
8
.
Version
1
is
the
default
.
Version
1
...
@@ -1110,15 +1053,6 @@ given this declaration:
...
@@ -1110,15 +1053,6 @@ given this declaration:
template
<
class
T
,
class
U
>
void
foo
(
T
t
);
template
<
class
T
,
class
U
>
void
foo
(
T
t
);
@end
example
@end
example
@item
-
fno
-
nonnull
-
objects
Don
'
t
assume
that
a
reference
is
initialized
to
refer
to
a
valid
object
.
Although
the
current
C
++
Working
Paper
prohibits
null
references
,
some
old
code
may
rely
on
them
,
and
you
can
use
@samp
{
-
fno
-
nonnull
-
objects
}
to
turn
on
checking
.
At
the
moment
,
the
compiler
only
does
this
checking
for
conversions
to
virtual
base
classes
.
@item
-
foperator
-
names
@item
-
foperator
-
names
Recognize
the
operator
name
keywords
@code
{
and
},
@code
{
bitand
},
Recognize
the
operator
name
keywords
@code
{
and
},
@code
{
bitand
},
@code
{
bitor
},
@code
{
compl
},
@code
{
not
},
@code
{
or
}
and
@code
{
xor
}
as
@code
{
bitor
},
@code
{
compl
},
@code
{
not
},
@code
{
or
}
and
@code
{
xor
}
as
...
@@ -1135,6 +1069,19 @@ Enable automatic template instantiation. This option also implies
...
@@ -1135,6 +1069,19 @@ Enable automatic template instantiation. This option also implies
@samp
{
-
fno
-
implicit
-
templates
}.
@xref
{
Template
Instantiation
},
for
more
@samp
{
-
fno
-
implicit
-
templates
}.
@xref
{
Template
Instantiation
},
for
more
information
.
information
.
@item
-
fstrict
-
prototype
Within
an
@samp
{
extern
"C"
}
linkage
specification
,
treat
a
function
declaration
with
no
arguments
,
such
as
@samp
{
int
foo
();},
as
declaring
the
function
to
take
no
arguments
.
Normally
,
such
a
declaration
means
that
the
function
@code
{
foo
}
can
take
any
combination
of
arguments
,
as
in
C
.
@samp
{
-
pedantic
}
implies
@samp
{
-
fstrict
-
prototype
}
unless
overridden
with
@samp
{
-
fno
-
strict
-
prototype
}.
Specifying
this
option
will
also
suppress
implicit
declarations
of
functions
.
This
flag
no
longer
affects
declarations
with
C
++
linkage
.
@item
-
fsquangle
@item
-
fsquangle
@itemx
-
fno
-
squangle
@itemx
-
fno
-
squangle
@samp
{
-
fsquangle
}
will
enable
a
compressed
form
of
name
mangling
for
@samp
{
-
fsquangle
}
will
enable
a
compressed
form
of
name
mangling
for
...
@@ -1144,6 +1091,15 @@ short ID codes. This option also requires any C++ libraries being used to
...
@@ -1144,6 +1091,15 @@ short ID codes. This option also requires any C++ libraries being used to
be
compiled
with
this
option
as
well
.
The
compiler
has
this
disabled
(
the
be
compiled
with
this
option
as
well
.
The
compiler
has
this
disabled
(
the
equivalent
of
@samp
{
-
fno
-
squangle
})
by
default
.
equivalent
of
@samp
{
-
fno
-
squangle
})
by
default
.
Like
all
options
that
change
the
ABI
,
all
C
++
code
,
@emph
{
including
libgcc
.
a
}
must
be
built
with
the
same
setting
of
this
option
.
@item
-
ftemplate
-
depth
-
@var
{
n
}
Set
the
maximum
instantiation
depth
for
template
classes
to
@var
{
n
}.
A
limit
on
the
template
instantiation
depth
is
needed
to
detect
endless
recursions
during
template
class
instantiation
.
ANSI
/
ISO
C
++
conforming
programs
must
not
rely
on
a
maximum
depth
greater
than
17
.
@item
-
fthis
-
is
-
variable
@item
-
fthis
-
is
-
variable
Permit
assignment
to
@code
{
this
}.
The
incorporation
of
user
-
defined
Permit
assignment
to
@code
{
this
}.
The
incorporation
of
user
-
defined
free
store
management
into
C
++
has
made
assignment
to
@samp
{
this
}
an
free
store
management
into
C
++
has
made
assignment
to
@samp
{
this
}
an
...
@@ -1161,26 +1117,13 @@ offsets for adjusting the @samp{this} pointer at the call site. Newer
...
@@ -1161,26 +1117,13 @@ offsets for adjusting the @samp{this} pointer at the call site. Newer
implementations
store
a
single
pointer
to
a
@samp
{
thunk
}
function
which
implementations
store
a
single
pointer
to
a
@samp
{
thunk
}
function
which
does
any
necessary
adjustment
and
then
calls
the
target
function
.
does
any
necessary
adjustment
and
then
calls
the
target
function
.
This
option
also
enables
a
heuristic
for
controlling
emission
of
Like
all
options
that
change
the
ABI
,
all
C
++
code
,
@emph
{
including
vtables
;
if
a
class
has
any
non
-
inline
virtual
functions
,
the
vtable
libgcc
.
a
}
must
be
built
with
the
same
setting
of
this
option
.
will
be
emitted
in
the
translation
unit
containing
the
first
one
of
those
.
@item
-
ftemplate
-
depth
-
@var
{
n
}
Set
the
maximum
instantiation
depth
for
template
classes
to
@var
{
n
}.
A
limit
on
the
template
instantiation
depth
is
needed
to
detect
endless
recursions
during
template
class
instantiation
.
ANSI
/
ISO
C
++
conforming
programs
must
not
rely
on
a
maximum
depth
greater
than
17
.
@item
-
nostdinc
++
@item
-
nostdinc
++
Do
not
search
for
header
files
in
the
standard
directories
specific
to
Do
not
search
for
header
files
in
the
standard
directories
specific
to
C
++
,
but
do
still
search
the
other
standard
directories
.
(
This
option
C
++
,
but
do
still
search
the
other
standard
directories
.
(
This
option
is
used
when
building
the
C
++
library
.)
is
used
when
building
the
C
++
library
.)
@item
-
traditional
For
C
++
programs
(
in
addition
to
the
effects
that
apply
to
both
C
and
C
++
),
this
has
the
same
effect
as
@samp
{
-
fthis
-
is
-
variable
}.
@xref
{
C
Dialect
Options
,,
Options
Controlling
C
Dialect
}.
@end
table
@end
table
In
addition
,
these
optimization
,
warning
,
and
code
generation
options
In
addition
,
these
optimization
,
warning
,
and
code
generation
options
...
@@ -1189,23 +1132,19 @@ have meanings only for C++ programs:
...
@@ -1189,23 +1132,19 @@ have meanings only for C++ programs:
@table
@code
@table
@code
@item
-
fno
-
default
-
inline
@item
-
fno
-
default
-
inline
Do
not
assume
@samp
{
inline
}
for
functions
defined
inside
a
class
scope
.
Do
not
assume
@samp
{
inline
}
for
functions
defined
inside
a
class
scope
.
@xref
{
Optimize
Options
,,
Options
That
Control
Optimization
}.
@xref
{
Optimize
Options
,,
Options
That
Control
Optimization
}.
Note
that
these
functions
will
have
linkage
like
inline
functions
;
they
just
won
'
t
be
inlined
by
default
.
@item
-
Wno
-
non
-
template
-
friend
@item
-
Wno
-
non
-
template
-
friend
@xref
{
Warning
Options
,,
Options
to
Request
or
Suppress
Warnings
}.
@xref
{
Warning
Options
,,
Options
to
Request
or
Suppress
Warnings
}.
@item
-
Wold
-
style
-
cast
@item
-
Wold
-
style
-
cast
@itemx
-
Woverloaded
-
virtual
@itemx
-
Woverloaded
-
virtual
@itemx
-
Wtemplate
-
debugging
Warnings
that
apply
only
to
C
++
programs
.
@xref
{
Warning
Warnings
that
apply
only
to
C
++
programs
.
@xref
{
Warning
Options
,,
Options
to
Request
or
Suppress
Warnings
}.
Options
,,
Options
to
Request
or
Suppress
Warnings
}.
@item
-
Weffc
++
@item
-
Weffc
++
Warn
about
violation
of
some
style
rules
from
Effective
C
++
by
Scott
Myers
.
Warn
about
violation
of
some
style
rules
from
Effective
C
++
by
Scott
Myers
.
@item
+
e
@var
{
n
}
Control
how
virtual
function
definitions
are
used
,
in
a
fashion
compatible
with
@code
{
cfront
}
1
.
x
.
@xref
{
Code
Gen
Options
,,
Options
for
Code
Generation
Conventions
}.
@end
table
@end
table
@node
Warning
Options
@node
Warning
Options
...
@@ -5986,24 +5925,6 @@ significant data size overhead, though it does not affect execution.
...
@@ -5986,24 +5925,6 @@ significant data size overhead, though it does not affect execution.
This
option
is
on
by
default
for
languages
that
support
exception
This
option
is
on
by
default
for
languages
that
support
exception
handling
(
such
as
C
++
),
and
off
for
those
that
don
'
t
(
such
as
C
).
handling
(
such
as
C
++
),
and
off
for
those
that
don
'
t
(
such
as
C
).
@item
+
e0
@itemx
+
e1
Control
whether
virtual
function
definitions
in
classes
are
used
to
generate
code
,
or
only
to
define
interfaces
for
their
callers
.
(
C
++
only
).
These
options
are
provided
for
compatibility
with
@code{
cfront
}
1
.
x
usage
;
the
recommended
alternative
GNU
C
++
usage
is
in
flux
.
@xref{
C
++
Interface
,,
Declarations
and
Definitions
in
One
Header
}
.
With
@samp{
+
e0
}
,
virtual
function
definitions
in
classes
are
declared
@code{
extern
};
the
declaration
is
used
only
as
an
interface
specification
,
not
to
generate
code
for
the
virtual
functions
(
in
this
compilation
).
With
@samp{
+
e1
}
,
G
++
actually
generates
the
code
implementing
virtual
functions
defined
in
the
code
,
and
makes
them
publicly
visible
.
@cindex
aliasing
of
parameters
@cindex
aliasing
of
parameters
@cindex
parameters
,
aliased
@cindex
parameters
,
aliased
@item
-
fargument
-
alias
@item
-
fargument
-
alias
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment