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
b98e139b
Commit
b98e139b
authored
Aug 03, 2000
by
Mark Mitchell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ChangeLog
From-SVN: r35463
parent
9897911d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
0 deletions
+43
-0
gcc/extend.texi
+43
-0
No files found.
gcc/extend.texi
View file @
b98e139b
...
...
@@ -184,6 +184,49 @@ If you don't know the type of the operand, you can still do this, but you
must
use
@
code
{
typeof
}
(@
pxref
{
Typeof
})
or
type
naming
(@
pxref
{
Naming
Types
}).
Statement
expressions
are
not
supported
fully
in
G
++,
and
their
fate
there
is
unclear
.
(
It
is
possible
that
they
will
become
fully
supported
at
some
point
,
or
that
they
will
be
deprecated
,
or
that
the
bugs
that
are
present
will
continue
to
exist
indefinitely
.)
Presently
,
statement
expressions
do
not
work
well
as
default
arguments
.
In
addition
,
there
are
semantic
issues
with
statement
-
expressions
in
C
++.
If
you
try
to
use
statement
-
expressions
instead
of
inline
functions
in
C
++,
you
may
be
surprised
at
the
way
object
destruction
is
handled
.
For
example
:
@
example
#
define
foo
(
a
)
(@{
int
b
=
(
a
);
b
+
3
;
@})
@
end
example
@
noindent
does
not
work
the
same
way
as
:
@
example
inline
int
foo
(
a
)
@{
int
b
=
a
;
return
b
+
3
;
@}
@
end
example
@
noindent
In
particular
,
if
the
expression
passed
into
@
code
{
foo
}
involves
the
creation
of
temporaries
,
the
destructors
for
those
temporaries
will
be
run
earlier
in
the
case
of
the
macro
than
in
the
case
of
the
function
.
These
considerations
mean
that
it
is
probably
a
bad
idea
to
use
statement
-
expressions
of
this
form
in
header
files
that
are
designed
to
work
with
C
++.
Note
that
the
GNU
C
Library
does
contain
header
files
using
statement
-
expressions
,
and
that
these
definitions
make
the
library
technically
non
-
conforming
.
For
example
,
when
optimization
is
turned
on
,
@
example
string
a
,
b
;
printf
(
"%s"
,
toupper
((
a
+
b
).
c_str
()[
0
]));
@
end
example
@
noindent
will
result
in
the
destructor
for
the
temporary
created
for
@
code
{
a
+
b
}
being
run
earlier
than
it
should
be
.
@
node
Local
Labels
@
section
Locally
Declared
Labels
@
cindex
local
labels
...
...
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