aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/SplitKit.cpp
diff options
context:
space:
mode:
authorHeejin Ahn <aheejin@gmail.com>2021-08-06 21:43:55 -0700
committerHeejin Ahn <aheejin@gmail.com>2021-08-12 16:19:04 -0700
commitaca198cf748e32205a835fba2d6d68f95ba1dfdd (patch)
tree5bb053eb848683a1bb9bf03462b8854f57aa0321 /llvm/lib/CodeGen/SplitKit.cpp
parentbf6000dc98df82d9b493e0b5d247538f51d6b9ac (diff)
downloadllvm-aca198cf748e32205a835fba2d6d68f95ba1dfdd.zip
llvm-aca198cf748e32205a835fba2d6d68f95ba1dfdd.tar.gz
llvm-aca198cf748e32205a835fba2d6d68f95ba1dfdd.tar.bz2
[WebAssembly] Error out when Emscripten SjLj setjmp is used with Wasm EH
Currently, when Wasm EH is used with Emscripten SjLj, Emscripten SjLj cannot handle `invoke` instructions - it assumes all `invoke`s have been lowered away with Emscripten EH. But in Wasm EH they are lowered in instruction selection, so they are still present in the IR stage. This happens when 1. Wasm EH and Emscripten SjLj are used together 2. A function that calls `setjmp` uses exceptions, i.e., has `invoke`s We were already erroring out with an assertion failure in this case, but this CL makes it error out more properly with a valid error message. Wasm EH + Wasm SjLj will not have this restrictions. (it will have another restriction though, e.g., `setjmp` cannot be called within `catch`. But why would anyone do that..) Reviewed By: dschuff Differential Revision: https://reviews.llvm.org/D107687
Diffstat (limited to 'llvm/lib/CodeGen/SplitKit.cpp')
0 files changed, 0 insertions, 0 deletions