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
This commit is contained in:
Uros Bizjak 2007-06-22 20:51:28 +02:00 committed by Uros Bizjak
parent 23bc73b563
commit 58f7fcc362
4 changed files with 31 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2007-06-19 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/32374
* expr.c (store_constructor): Do not clobber non-zeroed memory.
2007-06-22 Uros Bizjak <ubizjak@gmail.com>
PR target/32413

View file

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

View file

@ -1,3 +1,8 @@
2007-06-22 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/32374
* gcc.dg/pr32374.c: New test.
2007-06-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/32360

View file

@ -0,0 +1,20 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
extern int *stderr;
void f (int *, const char *, ...);
void g (const char *conf_name)
{
typedef struct
{
const char *label;
const int value;
} Section;
const Section sections[2] = { {"", 0}, {"", 1} };
f (stderr, "", "", conf_name, 0, sections[0]);
f (stderr, "", "", conf_name, 0, sections[0]);
}