From c151a342b8bae48ce4c864e67913bc3a0346c4c7 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 7 Feb 2020 16:10:18 -0500 Subject: [PATCH] c++: Fix TREE_SIDE_EFFECTS after digest_init. * typeck2.c (process_init_constructor): Also clear TREE_SIDE_EFFECTS if appropriate. --- 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 + + * typeck2.c (process_init_constructor): Also clear TREE_SIDE_EFFECTS + if appropriate. + 2020-02-08 Jakub Jelinek 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; } -- 2.30.2