On Tuesday, 20 June 2017 at 02:14:06 UTC, Era Scarecrow wrote:
To note, looking in compiler explorer (GDC 5.2.0), the following output is present (for the above line):
Apparently on GDC 6.3 this doesn't fail. So likely an old compiler bug.
Adding the following after the shift more or less confirms the unsigned shift is the error.
t >>= uint.sizeof*8;
version(GNU) {
if (t)
t |= 0xffffffff_00000000L;
}
