[llvm-bugs] [Bug 26757] New: [WinEH] invalid exception object in catch handler
via llvm-bugs
llvm-bugs at lists.llvm.org
Sat Feb 27 01:47:30 PST 2016
https://llvm.org/bugs/show_bug.cgi?id=26757
Bug ID: 26757
Summary: [WinEH] invalid exception object in catch handler
Product: new-bugs
Version: trunk
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P
Component: new bugs
Assignee: unassignedbugs at nondot.org
Reporter: r.sagitario at gmx.de
CC: llvm-bugs at lists.llvm.org
Classification: Unclassified
The attached IR is generated by enabling optimization in the D compiler, but
generates code that crashes in the continuation of the catch handler because
the exception object is invalid.
The stack offset for the exception object in the handlerMap is 0, see the
respective asm:
$handlerMap$0$__D3enf15__unittestL11_1FZv:
.long 0
.long _Dobject.Exception at TypeDescriptor
.long 0
.long "?catch$4@?0?__D3enf15__unittestL11_1FZv at 4HA"
This is rejected by the VC runtime in int __BuildCatchObjectHelper(),
HT_DISPCATCH(*pCatch) is 0:
// If the catch is by ellipsis, then there is no object to construct.
// If the catch is by type(No Catch Object), then leave too!
if (HT_IS_TYPE_ELLIPSIS(*pCatch) ||
(!HT_DISPCATCH(*pCatch) && !HT_ISCOMPLUSEH(*pCatch))) {
EHTRACE_EXIT;
return 0;
}
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160227/a3e80c68/attachment.html>
More information about the llvm-bugs
mailing list