Bug 15962 – [REG2.069] Don't strip off asserts to check internal compiler errors
Status
RESOLVED
Resolution
DUPLICATE
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2016-04-27T12:44:06Z
Last change time
2020-03-21T03:56:32Z
Keywords
ice, pull
Assigned to
No Owner
Creator
Kenji Hara
Comments
Comment #0 by k.hara.pg — 2016-04-27T12:44:06Z
From 2.069, dmd code base is switched to D. But today, a released dmd is compiled with -release switch. It means, the built dmd binary no longer contain any asserts.
By that, all internal errors in front end no longer reported. Actually it would hide some serious regressions.
See issue 15961 as a real example.
Can someone confirm that this is not true anymore ?
Comment #3 by bugzilla — 2019-12-17T10:14:09Z
It's still true.
Comment #4 by b2.temp — 2019-12-18T10:15:46Z
I've noticed a couple of times in the past months that some cases of "accept-invalid" bug reports were actually leading to ICE (due to assert) when tested with the debug built.
Maybe that really important `assert()` should be turned into ICE using a dedicated function which would itself call `fatal()`. This looks easy at first glance but what would have to be refactored or not is something that should be verified, otherwise it's the same as to stop using "-release" for official binaries.
Comment #5 by b2.temp — 2019-12-19T12:30:43Z
*** This issue has been marked as a duplicate of issue 20457 ***