From e907a2e9049269c0c0e8368347485bb137d70944 Mon Sep 17 00:00:00 2001
From: mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 17 Aug 2001 04:32:09 +0000
Subject: [PATCH] 	* cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 
 on COMPOUND_EXPRs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44956 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/cp/ChangeLog | 5 +++++
 gcc/cp/cvt.c     | 9 +++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e50446cb0e07..441735e7cc9f 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2001-08-16  Mark Mitchell  <mark@codesourcery.com>
+
+	* cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
+	on COMPOUND_EXPRs.
+
 2001-08-14  Richard Henderson  <rth@redhat.com>
 
 	* class.c, cp-tree.h (build_vfn_ref): Remove.
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index 5b153efff179..f8845b29d7fd 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -950,8 +950,13 @@ convert_to_void (expr, implicit)
         tree new_op1 = convert_to_void (op1, implicit);
         
         if (new_op1 != op1)
-          expr = build (COMPOUND_EXPR, TREE_TYPE (new_op1),
-                        TREE_OPERAND (expr, 0), new_op1);
+	  {
+	    tree t = build (COMPOUND_EXPR, TREE_TYPE (new_op1),
+			    TREE_OPERAND (expr, 0), new_op1);
+	    TREE_SIDE_EFFECTS (t) = TREE_SIDE_EFFECTS (expr);
+	    expr = t;
+	  }
+
         break;
       }
     
-- 
GitLab