Bug 4758 – --gc-sections breaks exception handling on Linux

Status
RESOLVED
Resolution
DUPLICATE
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
Other
OS
Linux
Creation time
2010-08-29T11:07:00Z
Last change time
2015-06-09T05:11:50Z
Assigned to
nobody
Creator
nfxjfg

Comments

Comment #0 by nfxjfg — 2010-08-29T11:07:50Z
$ cat exc.d void main() { try { throw new Exception("muh"); } catch (Exception e) { } } $ dmd exc.d -L--gc-sections -L--print-gc-sections 2>&1 |grep exc /usr/bin/ld: Removing unused section '.deh_eh' in file 'exc.o' /usr/bin/ld: Removing unused section '.tdata' in file 'exc.o' $ ./exc unhandled exception This "unhandled exception" thing is printed when the D runtime (Tango; based on Phobos1 runtime) doesn't find any exception records. It seems --gc-sections removes all D sections (including the bottom most exception handler in the runtime). It seems the linker removes all entries from section .deh_eh. I wonder if this can be fixed. It works in g++.
Comment #1 by braddr — 2010-08-29T12:35:37Z
*** This issue has been marked as a duplicate of issue 879 ***