Bug 21995 – Struct with size uint.max or greater causes ICE
Status
RESOLVED
Resolution
FIXED
Severity
critical
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2021-06-06T03:18:24Z
Last change time
2024-10-02T22:56:41Z
Keywords
ice, pull
Assigned to
No Owner
Creator
Paul Backus
Comments
Comment #0 by snarwin+bugzilla — 2021-06-06T03:18:24Z
Attempting to compile the following program with DMD 2.097.0 results in an ICE:
---
// S.sizeof == uint.max (0xffffffff)
struct S
{
ubyte[0x7ffffffe] a;
ubyte[0x7ffffffe] b;
ubyte[3] c;
}
---
The compiler crashes with no output and an exit code of 132 ("Illegal instruction"), most likely as the result of hitting an `assert(0)`.
Comment #1 by dlang-bot — 2024-09-26T14:26:05Z
@WalterBright created dlang/dmd pull request #16885 "fix bugzilla 21995 Struct with size uint.max or greater causes ICE" fixing this issue:
- fix bugzilla 21995 Struct with size uint.max or greater causes ICE
https://github.com/dlang/dmd/pull/16885
Comment #2 by dlang-bot — 2024-10-02T22:56:41Z
dlang/dmd pull request #16885 "fix bugzilla 21995 Struct with size uint.max or greater causes ICE" was merged into master:
- 2595b71540a03bbeba55cf6f8d7a0a933deb1599 by Walter Bright:
fix bugzilla 21995 Struct with size uint.max or greater causes ICE
https://github.com/dlang/dmd/pull/16885