[llvm-bugs] [Bug 46396] New: WebAssembly exception handling catchpads cannot be addressed sometimes
via llvm-bugs
llvm-bugs at lists.llvm.org
Fri Jun 19 05:52:16 PDT 2020
https://bugs.llvm.org/show_bug.cgi?id=46396
Bug ID: 46396
Summary: WebAssembly exception handling catchpads cannot be
addressed sometimes
Product: libraries
Version: trunk
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P
Component: Backend: WebAssembly
Assignee: unassignedbugs at nondot.org
Reporter: sascha.braun.lpz at googlemail.com
CC: llvm-bugs at lists.llvm.org
Created attachment 23634
--> https://bugs.llvm.org/attachment.cgi?id=23634&action=edit
code sample (cpp)
-- I think this shall be forwarded to Heejin Ahn. --
Hi,
I'm in the process of implementing several WebAssembly VMs, including EH,
working with what is so far already present in LLVM.
I think there is a bug in how codegen is done when catchpads are nested. The EH
table I think is fine.
Please see attached cpp sample.
Function test23any_nest1_llvm: I think it is impossible to execute the code in
the inner catch for both test3class and test5class. One catchpad can be
executed if my _Unwind_CallPersonality() writes it's according EH table entry
back to memory address 0.
Function test23any_nest1: Here it is ok. Inner CPs for both types can be
exec'd, I think it is because catches for both types are also present in the
outer try/catch.
My assumption is it is related to how child catchpads are deleted in
'wasmehlateprepare'.
You can contact me directly sascha.braun.lpz at googlemail.com. If I am wrong I
would be grateful if you could point out what value _Unwind_CallPersonality
shall write to memory addr 0 to select the catch for test3class or test5class.
Many Thanks
Sascha
--
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/20200619/610099e0/attachment.html>
More information about the llvm-bugs
mailing list