From 629012c3f9a58ff2ecbac066788af57c16471969 Mon Sep 17 00:00:00 2001 From: Heejin Ahn Date: Fri, 19 Feb 2021 05:26:04 +0900 Subject: [EH] Change catch_all's opcode (#3574) We decided to change `catch_all`'s opcode from 0x05, which is the same as `else`, to 0x19, to avoid some complicated handling in the tools. See: https://github.com/WebAssembly/exception-handling/issues/147 lso this contains the original cpp file used to generate dwarf_with_exceptions.wasm; instructions to generate the wasm from that cpp file are in the comments. --- test/passes/dwarf_with_exceptions.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 test/passes/dwarf_with_exceptions.cpp (limited to 'test/passes/dwarf_with_exceptions.cpp') 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 -- cgit v1.2.3