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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144235
138bc75d-0d04-0410-961f-
82ee72b054a4
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
* langhooks.c (lhd_print_error_function): Check for NULL block.
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
* gcc.dg/torture/pr39204.c: New testcase.
--- /dev/null
+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;
+}
+
{
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;