Next: Unary and Binary Expressions, Previous: Constant expressions, Up: Expression trees
ARRAY_REFarray_ref_low_bound and array_ref_element_size
instead.
ARRAY_RANGE_REFARRAY_REF and have the same
meanings. The type of these expressions must be an array whose component
type is the same as that of the first operand. The range of that array
type determines the amount of data these expressions access.
COMPONENT_REFFIELD_DECL for the data member. The third operand represents
the byte offset of the field, but should not be used directly; call
component_ref_field_offset instead.
ADDR_EXPRAs an extension, GCC allows users to take the address of a label. In
this case, the operand of the ADDR_EXPR will be a
LABEL_DECL. The type of such an expression is void*.
If the object addressed is not an lvalue, a temporary is created, and
the address of the temporary is used.
INDIRECT_REFMEM_REFTARGET_MEM_REFTMR_BASE and is a pointer to the object being accessed.
The second argument is TMR_OFFSET which is a pointer constant
with dual purpose serving both as constant offset and holder of
the type used for type-based alias analysis. The first two operands
have exactly the same semantics as MEM_REF. The third
and fourth operand are TMR_INDEX and TMR_STEP where
the former is an integer and the latter an integer constant. The
fifth and last operand is TMR_INDEX2 which is an alternate
non-constant offset. Any of the third to last operands may be
NULL if the corresponding component does not appear in
the address, but TMR_INDEX and TMR_STEP shall be
always supplied in pair. The Address of the TARGET_MEM_REF
is determined in the following way.
TMR_BASE + TMR_OFFSET + TMR_INDEX * TMR_STEP + TMR_INDEX2
The type of the node specifies the alignment of the access.