summaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-22 18:51:28 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-22 18:51:28 +0000
commite8d1dcf24753c1011fb85892b609a00550b18224 (patch)
tree6600ebacfc0a26ca7afe0a15a806c900c5ca85bd /gcc/expr.c
parentd5e1a003126ef7d0c38642baeef9d1131e868378 (diff)
downloadgcc-e8d1dcf24753c1011fb85892b609a00550b18224.tar.gz
PR middle-end/32374
* expr.c (store_constructor): Do not clobber non-zeroed memory. testsuite/ChangeLog: PR middle-end/32374 * gcc.dg/pr32374.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125955 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 3f0caf117d5..0739b0533bc 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -5062,7 +5062,7 @@ store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size)
cleared = 1;
}
- if (! cleared)
+ if (REG_P (target) && !cleared)
emit_insn (gen_rtx_CLOBBER (VOIDmode, target));
/* Store each element of the constructor into the