30 lines · plain
1; RUN: opt < %s -passes=tailcallelim -verify-dom-info -S | FileCheck %s2 3; Test that we don't tail call in a functions that calls returns_twice4; functions.5 6declare void @bar()7 8; CHECK: foo19; CHECK-NOT: tail call void @bar()10 11define void @foo1(ptr %x) {12bb:13 %tmp75 = tail call i32 @setjmp(ptr %x)14 call void @bar()15 ret void16}17 18declare i32 @setjmp(ptr) returns_twice19 20; CHECK: foo221; CHECK-NOT: tail call void @bar()22 23define void @foo2(ptr %x) {24bb:25 %tmp75 = tail call i32 @zed2(ptr %x)26 call void @bar()27 ret void28}29declare i32 @zed2(ptr) returns_twice30