Bug 19463 – DIP1008 - _d_newclass is called instead of _d_newThrowable

Status
RESOLVED
Resolution
FIXED
Severity
major
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2018-12-03T13:54:28Z
Last change time
2019-03-26T04:46:58Z
Keywords
EH, industry, pull, wrong-code
Assigned to
No Owner
Creator
Mihails Strasuns
See also
https://issues.dlang.org/show_bug.cgi?id=19317

Comments

Comment #0 by mihails.strasuns — 2018-12-03T13:54:28Z
Results in `@nogc` annotation being ignored while GC allocations still happens: ``` void main () @nogc { throw new Exception("wat"); } ``` ``` dmd -g -dip1008 test.d ``` ``` Breakpoint 1, 0x0000555555589ddc in gc_malloc () (gdb) bt #0 0x0000555555589ddc in gc_malloc () #1 0x0000555555587d76 in _d_newclass () #2 0x0000555555586a24 in D main () at test.d:3 ```
Comment #1 by ilyayaroshenko — 2018-12-03T14:37:16Z
Confirmed for LDC too. _d_allocclass is called on Windows and Linux.
Comment #2 by atila.neves — 2018-12-03T15:33:24Z
I looked into this as well with dmd 2.083.0. The `d_newThrowable` symbol doesn't even show up in the final binary, much less get called.
Comment #3 by dlang-bot — 2019-03-24T05:31:14Z
@WalterBright created dlang/dmd pull request #9481 "fix Issue 19463 - DIP1008 - _d_newclass is called instead of _d_newTh…" fixing this issue: - fix Issue 19463 - DIP1008 - _d_newclass is called instead of _d_newThrowable https://github.com/dlang/dmd/pull/9481
Comment #4 by bugzilla — 2019-03-24T05:31:42Z
Comment #5 by bugzilla — 2019-03-26T04:30:35Z
*** Issue 19317 has been marked as a duplicate of this issue. ***
Comment #6 by dlang-bot — 2019-03-26T04:46:58Z
dlang/dmd pull request #9481 "fix Issue 19463 - DIP1008 - _d_newclass is called instead of _d_newTh…" was merged into master: - 3101a054c11d3a5f30508724b7e1132b4e2631ea by Walter Bright: fix Issue 19463 - DIP1008 - _d_newclass is called instead of _d_newThrowable https://github.com/dlang/dmd/pull/9481