Previous: Statements for C++, Up: C and C++ Trees   [Contents][Index]


11.10.6 C++ Expressions

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_EXPRs have a representation similar to that of CALL_EXPRs. 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.