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;
    }

Reply via email to