From dd1db5ec31260c6bd45dbb01ba9f830b0e8f7334 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 27 Nov 1999 14:47:23 +0000 Subject: * expr.c (store_constructor): Don't clobber TARGET if CLEARED. From-SVN: r30676 --- gcc/expr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'gcc/expr.c') diff --git a/gcc/expr.c b/gcc/expr.c index 69c6f56..5fc55e5 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -4088,8 +4088,9 @@ store_constructor (exp, target, align, cleared) register tree elt; /* Inform later passes that the whole union value is dead. */ - if (TREE_CODE (type) == UNION_TYPE - || TREE_CODE (type) == QUAL_UNION_TYPE) + if ((TREE_CODE (type) == UNION_TYPE + || TREE_CODE (type) == QUAL_UNION_TYPE) + && ! cleared) { emit_insn (gen_rtx_CLOBBER (VOIDmode, target)); @@ -4125,7 +4126,7 @@ store_constructor (exp, target, align, cleared) cleared = 1; } - else + else if (! cleared) /* Inform later passes that the old value is dead. */ emit_insn (gen_rtx_CLOBBER (VOIDmode, target)); -- cgit v1.1