Bug 20903 – seg fault on long signed divide overflow

Status
RESOLVED
Resolution
FIXED
Severity
major
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2020-06-07T09:27:12Z
Last change time
2020-06-07T11:37:47Z
Keywords
pull, wrong-code
Assigned to
No Owner
Creator
Walter Bright

Comments

Comment #0 by bugzilla — 2020-06-07T09:27:12Z
The following: long test() { long r = 0x8000_0000_0000_0000L; long x = -1L; return r / x; // crashes here } import core.stdc.stdio; int main() { printf("result: %llx\n", test()); return 0; } crashes when compiled with -O on 64 bit code.
Comment #1 by dlang-bot — 2020-06-07T09:35:28Z
@WalterBright created dlang/dmd pull request #11244 "fix Issue 20903 - seg fault on long signed divide overflow" fixing this issue: - fix Issue 20903 - seg fault on long signed divide overflow https://github.com/dlang/dmd/pull/11244
Comment #2 by dlang-bot — 2020-06-07T11:37:47Z
dlang/dmd pull request #11244 "fix Issue 20903 - seg fault on long signed divide overflow" was merged into master: - 11c846737fc38474efdcaec3a9211babd43fc8a6 by Walter Bright: fix Issue 20903 - seg fault on long signed divide overflow https://github.com/dlang/dmd/pull/11244