35 lines · plain
1; RUN: llvm-as < %s | llvm-dis > %t1.ll2; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll3; RUN: diff %t1.ll %t2.ll4 5%FunTy = type i32 (i32)6 7define void @invoke(ptr %x) {8 %foo = call i32 %x( i32 123 ) ; <i32> [#uses=0]9 %foo2 = tail call i32 %x( i32 123 ) ; <i32> [#uses=0]10 ret void11}12 13define i32 @main(i32 %argc) personality ptr @__gxx_personality_v0 {14 %retval = call i32 @test( i32 %argc ) ; <i32> [#uses=2]15 %two = add i32 %retval, %retval ; <i32> [#uses=1]16 %retval2 = invoke i32 @test( i32 %argc )17 to label %Next unwind label %Error ; <i32> [#uses=1]18 19Next:20 %two2 = add i32 %two, %retval2 ; <i32> [#uses=1]21 call void @invoke( ptr @test )22 ret i32 %two223 24Error:25 %exn = landingpad {ptr, i32}26 cleanup27 ret i32 -128}29 30define i32 @test(i32 %i0) {31 ret i32 %i032}33 34declare i32 @__gxx_personality_v0(...)35