Other jumps are expressed by either GOTO_EXPR
or
RETURN_EXPR
.
The operand of a GOTO_EXPR
must be either a label or a
variable containing the address to jump to.
The operand of a RETURN_EXPR
is either NULL_TREE
,
RESULT_DECL
, or a MODIFY_EXPR
which sets the return
value. It would be nice to move the MODIFY_EXPR
into a
separate statement, but the special return semantics in
expand_return
make that difficult. It may still happen in
the future, perhaps by moving most of that logic into
expand_assignment
.