Hi,

Thanks Aaron! Joey also looked at it on IRC and noticed that the testcase
would fail in release mode. I've fixed that and committed in r208231.

Cheers,

James


On 7 May 2014 16:36, Aaron Ballman <[email protected]> wrote:

> LGTM! But this is far enough outside of my area of expertise, you may
> want to wait for a second confirmation.
>
> ~Aaron
>
> On Wed, May 7, 2014 at 10:45 AM, James Molloy <[email protected]>
> wrote:
> > Hi,
> >
> > When doing int<->ptr coercion for big-endian architectures, the shift
> amount
> > is currently incorrectly calculated.
> >
> > The shift amount is based upon DataLayout::getTypeAllocSizeInBits. This
> will
> > only work for legal types - types such as i24 that are created as part of
> > structs for bitfields will return "32" from that function. This patch
> > changes to using getTypeSizeInBits.
> >
> > It turns out that AArch64 didn't run across this problem because it
> always
> > returned [1 x i64] as the type for a bitfield, whereas ARM64 returns i64
> so
> > goes down this (better, but wrong) codepath.
> >
> > I'm almost certain this change is good, but as I'm not a clang expert and
> > this is generic (big-endian only though) code, I'd appreciate if someone
> > else would also give it the once-over.
> >
> > Cheers,
> >
> > James
> >
> > _______________________________________________
> > cfe-commits mailing list
> > [email protected]
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> >
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to