1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/test/CodeGen/WebAssembly/lower-em-exceptions-resume-only.ll
Heejin Ahn eb1ea98648 [WebAssembly] Fix resume-only case in Emscripten EH
Summary:
D72308 incorrectly assumed `resume` cannot exist without a `landingpad`,
which is not true. This sets `Changed` to true whenever we make changes
to a function, including creating a call to `__resumeException` within a
function without a landing pad.

Reviewers: tlively

Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73308
2020-01-23 18:13:52 -08:00

18 lines
601 B
LLVM

; RUN: opt < %s -wasm-lower-em-ehsjlj -S | FileCheck %s
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
target triple = "wasm32-unknown-unknown"
; Checks if a module that only contains a resume but not an invoke works
; correctly and does not crash.
; CHECK-LABEL: @resume_only
; CHECK: call void @__resumeException
define void @resume_only() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%val0 = insertvalue { i8*, i32 } undef, i8* null, 0
%val1 = insertvalue { i8*, i32} %val0, i32 0, 1
resume { i8*, i32 } %val1
}
declare i32 @__gxx_personality_v0(...)