mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 07:11:49 +00:00
[Statepoints] Add test case to check that statepoint is marked with Throwable attribute.
Differential Revision: http://reviews.llvm.org/D10215 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239473 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
544d686bc0
commit
29a533515f
24
test/Transforms/SimplifyCFG/statepoint-invoke-unwind.ll
Normal file
24
test/Transforms/SimplifyCFG/statepoint-invoke-unwind.ll
Normal file
@ -0,0 +1,24 @@
|
||||
; RUN: opt < %s -simplifycfg -S | FileCheck %s
|
||||
; Test that statepoint intrinsic is marked with Throwable attribute and it is
|
||||
; not optimized into call
|
||||
|
||||
declare i64 addrspace(1)* @gc_call()
|
||||
declare i32 @llvm.experimental.gc.statepoint.p0f_p1i64f(i64, i32, i64 addrspace(1)* ()*, i32, i32, ...)
|
||||
declare i32* @fake_personality_function()
|
||||
|
||||
define i32 @test() gc "statepoint-example" {
|
||||
; CHECK-LABEL: test
|
||||
entry:
|
||||
; CHECK-LABEL: entry:
|
||||
; CHECK-NEXT: %sp = invoke i32 (i64, i32, i64 addrspace(1)* ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i64f
|
||||
%sp = invoke i32 (i64, i32, i64 addrspace(1)* ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i64f(i64 0, i32 0, i64 addrspace(1)* ()* @gc_call, i32 0, i32 0, i32 0, i32 0)
|
||||
to label %normal unwind label %exception
|
||||
|
||||
exception:
|
||||
%lpad = landingpad { i8*, i32 } personality i32* ()* @fake_personality_function
|
||||
cleanup
|
||||
ret i32 0
|
||||
|
||||
normal:
|
||||
ret i32 1
|
||||
}
|
Loading…
Reference in New Issue
Block a user