summaryrefslogtreecommitdiff
path: root/test/passes/dwarf_with_exceptions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/dwarf_with_exceptions.cpp')
-rw-r--r--test/passes/dwarf_with_exceptions.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/passes/dwarf_with_exceptions.cpp b/test/passes/dwarf_with_exceptions.cpp
new file mode 100644
index 000000000..283b30064
--- /dev/null
+++ b/test/passes/dwarf_with_exceptions.cpp
@@ -0,0 +1,14 @@
+void foo();
+void dwarf_with_exceptions() {
+ try {
+ foo();
+ } catch (...) {
+ foo();
+ }
+}
+// How to generate dwarf_with_exceptions.wasm:
+// $ clang++ -std=c++14 --target=wasm32-unknown-unknown -g -fwasm-exceptions -Xclang -disable-O0-optnone -c -S -emit-llvm dwarf_with_exceptions.cpp -o temp.ll
+// $ opt -S -mem2reg -simplifycfg temp.ll -o dwarf_with_exceptions.ll
+// Remove some personal info from dwarf_with_exceptions.ll
+// $ llc -exception-model=wasm -mattr=+exception-handling -filetype=obj dwarf_with_exceptions.ll -o dwarf_with_exceptions.o
+// $ wasm-ld --no-entry --no-gc-sections --allow-undefined dwarf_with_exceptions.o -o dwarf_with_exceptions.wasm