digitalmars.D.bugs - [Issue 20421] New: Exceptions don't work when linking through lld-link
- d-bugmail puremagic.com (31/32) Nov 26 2019 https://issues.dlang.org/show_bug.cgi?id=20421
https://issues.dlang.org/show_bug.cgi?id=20421 Issue ID: 20421 Summary: Exceptions don't work when linking through lld-link Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: r.sagitario gmx.de import std.stdio; void main(){ try { throw new Exception("first"); } catch (Exception e) { writeln("catch ", e.msg); } writeln("done"); } Building this with against the mingw libs withdmd.exe -m32mscoff test.d -mscrtlib=msvcrt100generates an executable that doesn't produce any output, but silently crashes. When run in a debugger, it reports: Unhandled exception at 0x004010EF in x.exe: 0xC00001A5: An invalid exception handler routine has been detected (parameters: 0x00000001). This seems to happen when lld is used instead of the Microsoft linker. Using lld from LLVM 9 spits out errors "not compatible with SEH", but links using /SAFESEH:NO. The resulting executable then works. --
Nov 26 2019