re PR tree-optimization/39202 (internal compiler error: in collapse_rest_of_var, at tree-ssa-structalias.c:3296)
2009-02-17 Richard Guenther <rguenther@suse.de> PR tree-optimization/39202 * tree-ssa-structalias.c (do_structure_copy): Before collapsing a var make sure to follow existing collapses. * gcc.c-torture/compile/pr39202.c: New testcase. From-SVN: r144235
This commit is contained in:
parent
91ab2c868e
commit
6b24ee26e5
4 changed files with 46 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2009-02-17 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/39202
|
||||
* tree-ssa-structalias.c (do_structure_copy): Before collapsing
|
||||
a var make sure to follow existing collapses.
|
||||
|
||||
2009-02-17 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/39214
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2009-02-17 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/39202
|
||||
* gcc.c-torture/compile/pr39202.c: New testcase.
|
||||
|
||||
2009-02-17 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/39204
|
||||
|
|
33
gcc/testsuite/gcc.c-torture/compile/pr39202.c
Normal file
33
gcc/testsuite/gcc.c-torture/compile/pr39202.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
typedef struct
|
||||
{
|
||||
union
|
||||
{
|
||||
int * aaa;
|
||||
} u;
|
||||
} t_a;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned bbb : 1;
|
||||
} t_b;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int ccc;
|
||||
t_a ddd;
|
||||
t_b eee;
|
||||
int fff;
|
||||
} t_c;
|
||||
|
||||
typedef struct t_d
|
||||
{
|
||||
t_c f1;
|
||||
t_c f2;
|
||||
} t_d;
|
||||
|
||||
void foo (void)
|
||||
{
|
||||
t_d ggg;
|
||||
ggg.f1 = ggg.f2;
|
||||
}
|
||||
|
|
@ -3405,8 +3405,8 @@ do_structure_copy (tree lhsop, tree rhsop)
|
|||
{
|
||||
if (!do_simple_structure_copy (lhs, rhs, MIN (lhssize, rhssize)))
|
||||
{
|
||||
lhs.var = collapse_rest_of_var (lhs.var);
|
||||
rhs.var = collapse_rest_of_var (rhs.var);
|
||||
lhs.var = collapse_rest_of_var (get_varinfo_fc (lhs.var)->id);
|
||||
rhs.var = collapse_rest_of_var (get_varinfo_fc (rhs.var)->id);
|
||||
lhs.offset = 0;
|
||||
rhs.offset = 0;
|
||||
lhs.type = SCALAR;
|
||||
|
|
Loading…
Add table
Reference in a new issue