[Bug tree-optimization/35518] [4.4 Regression] FAIL: gcc.c-torture/execute/20040709-1.c execution at -O2 and above

aoliva at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Thu Jun 26 00:35:00 GMT 2008



------- Comment #24 from aoliva at gcc dot gnu dot org  2008-06-26 00:33 -------
It's not just the result type that changed.  You actually changed the type of
the variable created to hold the group of bit fields, out of which we further
extract members that were not mapped to separate variables.  This might affect
bitfield simplifications based on mode size rather than type width.  I can't
say that's it, but I know I may have based some code on this assumption that
you broke.

It also seems to me that this change to the base type of the variable breaks
sra_build_elt_assignment(), because the by-design conditions might no longer be
met.  Finally, I don't see how you could assume that the else block for the if
full-width bit-field could be extracted with as little as a cast.

This is what jumped at me at first.  I haven't actually built compilers based
on the state before and after your patch to tell whether that's it, but these
are the most likely culprits.

I hope this helps,


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35518



More information about the Gcc-bugs mailing list