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

--- Comment #5 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2011-02-16 
00:53:18 UTC ---
Created attachment 23358
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23358
Patch that fixes the problem

The problem is that we lost track at the first padding bit within a word,
narrowing the accessed word to it rather than past the field after that word. 
We're trying to expand the range 24..31, starting out with the range 0..31,
skipping the first two fields to 7..31, and then get to the field that starts
at bit 8.  We currently decide that's past the relevant range because fbit (8)
is not <= mbit (7), but it is < bit (24), so we should have taken the path that
advances mbit instead of truncating msize.

Reply via email to