This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/44891] non-trivial conversion ICE from early SRA
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Jul 2010 21:00:33 -0000
- Subject: [Bug tree-optimization/44891] non-trivial conversion ICE from early SRA
- References: <bug-44891-176@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from rguenth at gcc dot gnu dot org 2010-07-09 21:00 -------
Hm, somehow we loose the float typed access:
<L8>:
MEM[(struct SpecificAttrs *)&D.1966].mType = 0;
t_6 = MEM[(const struct SpecificAttrs *)&D.1966].mType;
t.0_7 = (int) t_6;
switch (t.0_7) <default: <L1>, case 1: <L3>>
<L3>:
D.2156_8 = MEM[(const int &)&D.1966];
D.2158_9(D)->dummy_ = D.2156_8;
D.2155_10 = MEM[(const float &)&D.1966];
MEM[(struct BarAttrs *)__v_2(D)].dummy_ = D.2155_10;
but the access tree just has
Access trees for D.1966 (UID: 1966):
access { base = (1966)'D.1966', offset = 0, size = 32, expr = MEM[(const int
&)&D.1966], type = const int, grp_write = 0, total_scalarization = 0, grp_read
= 1, grp_hint = 1, grp_assignment_read = 1,grp_covered = 0,
grp_unscalarizable_region = 0, grp_unscalarized_data = 0, grp_partial_lhs = 0,
grp_to_be_replaced = 0, grp_maybe_modified = 0,
grp_not_necessarilly_dereferenced = 0
access { base = (1966)'D.1966', offset = 32, size = 32, expr = MEM[(struct
SpecificAttrs *)&D.1966].mType, type = Type, grp_write = 1, total_scalarization
= 0, grp_read = 1, grp_hint = 0, grp_assignment_read = 1,grp_covered = 1,
grp_unscalarizable_region = 0, grp_unscalarized_data = 0, grp_partial_lhs = 0,
grp_to_be_replaced = 1, grp_maybe_modified = 0,
grp_not_necessarilly_dereferenced = 0
Hm. Martin, maybe you are faster spotting the problem - the code is quite
convoluted.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44891