aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2007-06-22 20:51:28 +0200
committerUros Bizjak <uros@gcc.gnu.org>2007-06-22 20:51:28 +0200
commit58f7fcc3628dbe04c9cfd53da71351c21e6bf03c (patch)
tree6600ebacfc0a26ca7afe0a15a806c900c5ca85bd /gcc/expr.c
parent23bc73b56313bcae5095f1258710bd1485ead15d (diff)
downloadgcc-58f7fcc3628dbe04c9cfd53da71351c21e6bf03c.zip
gcc-58f7fcc3628dbe04c9cfd53da71351c21e6bf03c.tar.gz
gcc-58f7fcc3628dbe04c9cfd53da71351c21e6bf03c.tar.bz2
re PR middle-end/32374 (internal compiler error: in reload_cse_simplify_operands, at postreload.c:396)
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. From-SVN: r125955
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 3f0caf1..0739b05 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