OSDN Git Service

gcc/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Sep 2011 17:18:22 +0000 (17:18 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Sep 2011 17:18:22 +0000 (17:18 +0000)
PR middle-end/50386
PR middle-end/50326
* tree-sra.c (build_ref_for_model): Use the type of the field as
the type of the COMPONENT_REF.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179285 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-sra.c

index dbe8a60..5858138 100644 (file)
@@ -1,3 +1,10 @@
+2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       PR middle-end/50386
+       PR middle-end/50326
+       * tree-sra.c (build_ref_for_model): Use the type of the field as
+       the type of the COMPONENT_REF.
+
 2011-09-27  Jeff Law  <law@redhat.com>
 
        * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
index c85a7f5..39d0278 100644 (file)
@@ -1504,7 +1504,7 @@ build_ref_for_model (location_t loc, tree base, HOST_WIDE_INT offset,
       offset -= TREE_INT_CST_LOW (DECL_FIELD_BIT_OFFSET (fld));
       exp_type = TREE_TYPE (TREE_OPERAND (model->expr, 0));
       t = build_ref_for_offset (loc, base, offset, exp_type, gsi, insert_after);
-      return fold_build3_loc (loc, COMPONENT_REF, model->type, t, fld,
+      return fold_build3_loc (loc, COMPONENT_REF, TREE_TYPE (fld), t, fld,
                              TREE_OPERAND (model->expr, 2));
     }
   else