From: Richard Henderson Date: Mon, 4 Oct 1999 23:57:47 +0000 (-0700) Subject: tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that always have side-effects. X-Git-Tag: prereleases/libstdc++-2.92~10210 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1fef02f64a6dd30c90d829df4de8b8706e4e3c02;p=thirdparty%2Fgcc.git tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that always have side-effects. * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that always have side-effects. Use memset not bzero. (make_node): Likewise. From-SVN: r29817 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a03ab5dd3eb6..a8a273419030 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Mon Oct 4 16:56:11 1999 Richard Henderson + + * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that + always have side-effects. Use memset not bzero. + (make_node): Likewise. + Mon Oct 4 16:22:20 1999 Mark Mitchell * stmt.c (expand_anon_union_decl): When any of the elements of the @@ -36,7 +42,7 @@ Mon Oct 4 02:31:20 1999 Mark Mitchell 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. + always have side-effects. Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com) diff --git a/gcc/tree.c b/gcc/tree.c index 221afba5184c..8f707474d237 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -1028,7 +1028,7 @@ make_node (code) else { t = (tree) obstack_alloc (obstack, length); - bzero ((PTR) t, length); + memset ((PTR) t, 0, length); } #ifdef GATHER_STATISTICS @@ -3115,8 +3115,10 @@ build1 (code, type, node) if (ggc_p) t = ggc_alloc_tree (length); else - t = (tree) obstack_alloc (obstack, length); - bzero ((PTR) t, length); + { + t = (tree) obstack_alloc (obstack, length); + memset ((PTR) t, 0, length); + } #ifdef GATHER_STATISTICS tree_node_counts[(int)kind]++; @@ -3138,6 +3140,25 @@ build1 (code, type, node) TREE_RAISES (t) = 1; } + 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; + } + return t; }