digitalmars.D.bugs - [Issue 20693] New: align(N): larger than 2^^30 causes unexpected
- d-bugmail puremagic.com (29/29) Mar 22 2020 https://issues.dlang.org/show_bug.cgi?id=20693
https://issues.dlang.org/show_bug.cgi?id=20693 Issue ID: 20693 Summary: align(N): larger than 2^^30 causes unexpected behavior Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: kubo39 gmail.com Both 2^^30 and 2^^31 are integers positive power of 2, but forbidden. ---- // OK. align(2 ^^ 30) struct S1 {}; pragma(msg, S1.sizeof); // 1073741824LU // Error: alignment must be an integer positive power of 2, not -2147483648. align(2 ^^ 31) struct S2 {}; // Error: alignment must be an integer positive power of 2, not 0. align(2 ^^ 32) struct S3 {}; --- 2^^32 + 1 is not an integer positive power of 2, but allowed. --- align(2 ^^ 32 + 1) struct S4 {}; pragma(msg, S4.sizeof); // 1LU ---- --
Mar 22 2020