diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Feature/callingconventions.ll | 31 | ||||
-rw-r--r-- | test/Feature/calltest.ll | 30 |
2 files changed, 35 insertions, 26 deletions
diff --git a/test/Feature/callingconventions.ll b/test/Feature/callingconventions.ll index d2e9de4..192f07a 100644 --- a/test/Feature/callingconventions.ll +++ b/test/Feature/callingconventions.ll @@ -26,25 +26,30 @@ define coldcc void @bar2() { } define cc42 void @bar3() { - invoke fastcc void @foo( ) - to label %Ok unwind label %U + invoke fastcc void @foo( ) + to label %Ok unwind label %U -Ok: ; preds = %0 - ret void +Ok: + ret void -U: ; preds = %0 - unwind +U: + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup + resume { i8*, i32 } %exn } define void @bar4() { - call cc42 void @bar( ) - invoke cc42 void @bar3( ) - to label %Ok unwind label %U + call cc42 void @bar( ) + invoke cc42 void @bar3( ) + to label %Ok unwind label %U -Ok: ; preds = %0 - ret void +Ok: + ret void -U: ; preds = %0 - unwind +U: + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup + resume { i8*, i32 } %exn } +declare i32 @__gxx_personality_v0(...) diff --git a/test/Feature/calltest.ll b/test/Feature/calltest.ll index dcdb1a0..e7d8e8d 100644 --- a/test/Feature/calltest.ll +++ b/test/Feature/calltest.ll @@ -5,26 +5,30 @@ %FunTy = type i32 (i32) define void @invoke(%FunTy* %x) { - %foo = call i32 %x( i32 123 ) ; <i32> [#uses=0] - %foo2 = tail call i32 %x( i32 123 ) ; <i32> [#uses=0] - ret void + %foo = call i32 %x( i32 123 ) ; <i32> [#uses=0] + %foo2 = tail call i32 %x( i32 123 ) ; <i32> [#uses=0] + ret void } define i32 @main(i32 %argc) { - %retval = call i32 @test( i32 %argc ) ; <i32> [#uses=2] - %two = add i32 %retval, %retval ; <i32> [#uses=1] - %retval2 = invoke i32 @test( i32 %argc ) - to label %Next unwind label %Error ; <i32> [#uses=1] + %retval = call i32 @test( i32 %argc ) ; <i32> [#uses=2] + %two = add i32 %retval, %retval ; <i32> [#uses=1] + %retval2 = invoke i32 @test( i32 %argc ) + to label %Next unwind label %Error ; <i32> [#uses=1] -Next: ; preds = %0 - %two2 = add i32 %two, %retval2 ; <i32> [#uses=1] - call void @invoke( %FunTy* @test ) - ret i32 %two2 +Next: + %two2 = add i32 %two, %retval2 ; <i32> [#uses=1] + call void @invoke( %FunTy* @test ) + ret i32 %two2 -Error: ; preds = %0 - ret i32 -1 +Error: + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup + ret i32 -1 } define i32 @test(i32 %i0) { ret i32 %i0 } + +declare i32 @__gxx_personality_v0(...) |