The table below begins with constants, moves on to unary expressions, then proceeds to binary expressions, and concludes with various other kinds of expressions:
TREE_TYPE; they are not always of type
int. In particular,
charconstants are represented with
INTEGER_CSTnodes. The value of the integer constant
eis represented in an array of HOST_WIDE_INT. There are enough elements in the array to represent the value without taking extra elements for redundant 0s or -1. The number of elements used to represent
eis available via
ican be extracted by using
TREE_INT_CST_ELT (e, i).
TREE_INT_CST_LOWis a shorthand for
TREE_INT_CST_ELT (e, 0).
can be used to tell if the value is small enough to fit in a
signed HOST_WIDE_INT or an unsigned HOST_WIDE_INT respectively.
The value can then be extracted using
TREE_FIXED_CST_PTRpoints to a
TREE_FIXED_CSTreturns the structure itself.
datawith the size of two
modeas the associated fixed-point machine mode for
__complex__whose parts are constant nodes. The
TREE_IMAGPARTreturn the real and the imaginary parts respectively.
TREE_LISTof the constant nodes and is accessed through
TREE_STRING_LENGTHreturns the length of the string, as an
char*containing the string itself. The string may not be
NUL-terminated, and it may contain embedded
NULcharacters. Therefore, the
TREE_STRING_LENGTHincludes the trailing
NULif it is present.
For wide string constants, the
TREE_STRING_LENGTH is the number
of bytes in the string, and the
points to an array of the bytes of the string, as represented on the
target system (that is, as integers in the target endianness). Wide and
non-wide string constants are distinguished only by the
FIXME: The formats of string constants are not well-defined when the target system bytes are not the same width as host system bytes.