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.
TARGET_MEM_REFTMR_SYMBOL and must be a VAR_DECL of an object with
a fixed address. The second argument is TMR_BASE and the
third one is TMR_INDEX. The fourth argument is
TMR_STEP and must be an INTEGER_CST. The fifth
argument is TMR_OFFSET and must be an INTEGER_CST.
Any of the arguments may be NULL if the appropriate component
does not appear in the address. Address of the TARGET_MEM_REF
is determined in the following way.
&TMR_SYMBOL + TMR_BASE + TMR_INDEX * TMR_STEP + TMR_OFFSET
The sixth argument is the reference to the original memory access, which
is preserved for the purposes of the RTL alias analysis. The seventh
argument is a tag representing the results of tree level alias analysis.
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_REFCOMPONENT_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.