GNU Compiler Collection (GCC) Internals: C++ Expressions |
---|
Previous: Statements for C++, Up: C and C++ Trees [Contents][Index]
This section describes expressions specific to the C and C++ front ends.
TYPEID_EXPR
Used to represent a typeid
expression.
NEW_EXPR
VEC_NEW_EXPR
Used to represent a call to new
and new[]
respectively.
DELETE_EXPR
VEC_DELETE_EXPR
Used to represent a call to delete
and delete[]
respectively.
MEMBER_REF
Represents a reference to a member of a class.
THROW_EXPR
Represents an instance of throw
in the program. Operand 0,
which is the expression to throw, may be NULL_TREE
.
AGGR_INIT_EXPR
An AGGR_INIT_EXPR
represents the initialization as the return
value of a function call, or as the result of a constructor. An
AGGR_INIT_EXPR
will only appear as a full-expression, or as the
second operand of a TARGET_EXPR
. AGGR_INIT_EXPR
s have
a representation similar to that of CALL_EXPR
s. You can use
the AGGR_INIT_EXPR_FN
and AGGR_INIT_EXPR_ARG
macros to access
the function to call and the arguments to pass.
If AGGR_INIT_VIA_CTOR_P
holds of the AGGR_INIT_EXPR
, then
the initialization is via a constructor call. The address of the
AGGR_INIT_EXPR_SLOT
operand, which is always a VAR_DECL
,
is taken, and this value replaces the first argument in the argument
list.
In either case, the expression is void.