diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3dc292b9421..6f3504e5ec6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Oct 4 02:12:41 1999 Mark Mitchell + + * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that + are always have side-effects. + Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com) * cppinit.c (is_idchar initializer): Tighten tests for when diff --git a/gcc/tree.c b/gcc/tree.c index 25e2680e1b3..221afba5184 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -1078,6 +1078,27 @@ make_node (code) case 'c': TREE_CONSTANT (t) = 1; break; + + case 'e': + switch (code) + { + case INIT_EXPR: + case MODIFY_EXPR: + case VA_ARG_EXPR: + case RTL_EXPR: + case PREDECREMENT_EXPR: + case PREINCREMENT_EXPR: + case POSTDECREMENT_EXPR: + case POSTINCREMENT_EXPR: + /* All of these have side-effects, no matter what their + operands are. */ + TREE_SIDE_EFFECTS (t) = 1; + break; + + default: + break; + } + break; } return t;