[gcc(refs/users/marxin/heads/marxin-gcc-benchmark-branch)] c++: Fix TREE_SIDE_EFFECTS after digest_init.
Martin Liska
marxin@gcc.gnu.org
Mon Mar 30 10:53:55 GMT 2020
https://gcc.gnu.org/g:c151a342b8bae48ce4c864e67913bc3a0346c4c7
commit c151a342b8bae48ce4c864e67913bc3a0346c4c7
Author: Jason Merrill <jason@redhat.com>
Date: Fri Feb 7 16:10:18 2020 -0500
c++: Fix TREE_SIDE_EFFECTS after digest_init.
* typeck2.c (process_init_constructor): Also clear TREE_SIDE_EFFECTS
if appropriate.
Diff:
---
gcc/cp/ChangeLog | 5 +++++
gcc/cp/typeck2.c | 8 ++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 9205b200cd6..a0542b2a5b8 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2020-02-08 Jason Merrill <jason@redhat.com>
+
+ * typeck2.c (process_init_constructor): Also clear TREE_SIDE_EFFECTS
+ if appropriate.
+
2020-02-08 Jakub Jelinek <jakub@redhat.com>
PR c++/93549
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 371b203c29b..48920894b3b 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -1929,11 +1929,15 @@ process_init_constructor (tree type, tree init, int nested, int flags,
TREE_SIDE_EFFECTS (init) = true;
}
else if (picflags & PICFLAG_NOT_ALL_CONSTANT)
- /* Make sure TREE_CONSTANT isn't set from build_constructor. */
- TREE_CONSTANT (init) = false;
+ {
+ /* Make sure TREE_CONSTANT isn't set from build_constructor. */
+ TREE_CONSTANT (init) = false;
+ TREE_SIDE_EFFECTS (init) = false;
+ }
else
{
TREE_CONSTANT (init) = 1;
+ TREE_SIDE_EFFECTS (init) = false;
if (!(picflags & PICFLAG_NOT_ALL_SIMPLE))
TREE_STATIC (init) = 1;
}
More information about the Gcc-cvs
mailing list