c++: Fix TREE_SIDE_EFFECTS after digest_init.

* typeck2.c (process_init_constructor): Also clear TREE_SIDE_EFFECTS
	if appropriate.
This commit is contained in:
Jason Merrill 2020-02-07 16:10:18 -05:00
parent c7c09af8ef
commit c151a342b8
2 changed files with 11 additions and 2 deletions

View File

@ -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

View File

@ -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;
}