From 1fef02f64a6dd30c90d829df4de8b8706e4e3c02 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 4 Oct 1999 16:57:47 -0700 Subject: [PATCH] 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 --- gcc/ChangeLog | 8 +++++++- gcc/tree.c | 27 ++++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a03ab5dd3eb..a8a27341903 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 221afba5184..8f707474d23 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; } -- 2.30.2