re PR tree-optimization/25860 (ice with -g -O2 -fPIC)

2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/25860
        * tree-ssa-pre.c (phi_translate): Return NULL
        for AGGREGATE_TYPE's.

2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/25860
        * gcc.c-torture/compile/pr25860.c: New test.

From-SVN: r110175
This commit is contained in:
Andrew Pinski 2006-01-24 16:27:44 +00:00 committed by Andrew Pinski
parent 46852b9b37
commit 0b63b11283
4 changed files with 33 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2006-01-24 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25860
* tree-ssa-pre.c (phi_translate): Return NULL
for AGGREGATE_TYPE's.
2006-01-24 Zack Weinberg <zackw@panix.com>
* genautomata.c (process_state_for_insn_equiv_partition):

View File

@ -1,3 +1,8 @@
2006-01-24 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25860
* gcc.c-torture/compile/pr25860.c: New test.
2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/25552

View File

@ -0,0 +1,20 @@
/* We used to ICE because PRE would try to PRE the load of *Note from the
loop. */
struct g
{
int i;
};
struct f
{
struct g i;
};
int GSM_RingNoteGetFullDuration(struct g)__attribute__((const));
void savewav(struct f *gg)
{
struct g *Note;
long i = 0,j,length=0;
Note = &gg->i;
for (j=0;j<GSM_RingNoteGetFullDuration(*Note);j++)
;
}

View File

@ -1159,7 +1159,8 @@ phi_translate (tree expr, value_set_t set, basic_block pred,
VEC (tree, gc) * oldvuses = NULL;
VEC (tree, gc) * newvuses = NULL;
if (TREE_CODE (expr) != INDIRECT_REF)
if (TREE_CODE (expr) != INDIRECT_REF
|| AGGREGATE_TYPE_P (TREE_TYPE (expr)))
return NULL;
newop1 = phi_translate (find_leader (set, oldop1),