diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-11-27 14:47:23 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-11-27 14:47:23 +0000 |
commit | c4b2c7714c6d5ca9220a45716665796859de8911 (patch) | |
tree | b8ae72b86b8ae408235956a931501621c226ccf1 /gcc/expr.c | |
parent | b3879786c0b5fe09d64e0842c4c97e2681aab986 (diff) | |
download | gcc-c4b2c7714c6d5ca9220a45716665796859de8911.tar.gz |
* expr.c (store_constructor): Don't clobber TARGET if CLEARED.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30676 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index 69c6f56bced..5fc55e52572 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)); |