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