X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FTransforms%2FTailCallElim%2Fsetjmp.ll;h=4ce6ac7965e9995dd53be9fd439d016973f5ef83;hb=cd56727b555fd009c691d1c4ae308fbaf50e0c4f;hp=35bb75dddb30ea55633ee0dfd4774fcd64202d97;hpb=25456ef74ca7ac9bf46451f28d995f785e2596de;p=oota-llvm.git diff --git a/test/Transforms/TailCallElim/setjmp.ll b/test/Transforms/TailCallElim/setjmp.ll index 35bb75dddb3..4ce6ac7965e 100644 --- a/test/Transforms/TailCallElim/setjmp.ll +++ b/test/Transforms/TailCallElim/setjmp.ll @@ -1,10 +1,14 @@ ; RUN: opt < %s -tailcallelim -S | FileCheck %s -; Test that we don't tail call in a functions that calls setjmp. +; Test that we don't tail call in a functions that calls returns_twice +; functions. +declare void @bar() + +; CHECK: foo1 ; CHECK-NOT: tail call void @bar() -define void @foo(i32* %x) { +define void @foo1(i32* %x) { bb: %tmp75 = tail call i32 @setjmp(i32* %x) call void @bar() @@ -13,4 +17,13 @@ bb: declare i32 @setjmp(i32*) returns_twice -declare void @bar() +; CHECK: foo2 +; CHECK-NOT: tail call void @bar() + +define void @foo2(i32* %x) { +bb: + %tmp75 = tail call i32 @zed2(i32* %x) + call void @bar() + ret void +} +declare i32 @zed2(i32*) returns_twice