aboutsummaryrefslogtreecommitdiffstats
path: root/test/Integer/forwardreftest_bt.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Integer/forwardreftest_bt.ll')
-rw-r--r--test/Integer/forwardreftest_bt.ll33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/Integer/forwardreftest_bt.ll b/test/Integer/forwardreftest_bt.ll
new file mode 100644
index 0000000..5d73eff
--- /dev/null
+++ b/test/Integer/forwardreftest_bt.ll
@@ -0,0 +1,33 @@
+; RUN: llvm-as %s -o - | llvm-dis > %t1.ll
+; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
+; RUN: diff %t1.ll %t2.ll
+
+ %myty = type i55
+ %myfn = type float (i55,double,i55,i16)
+ type i55(%myfn*)
+ type i55(i55)
+ type i55(i55(i55)*)
+
+ %thisfuncty = type i55 (i55) *
+
+declare void @F(%thisfuncty, %thisfuncty, %thisfuncty)
+
+; This function always returns zero
+define i55 @zarro(i55 %Func)
+begin
+Startup:
+ add i55 0, 10
+ ret i55 0
+end
+
+define i55 @test(i55)
+begin
+ call void @F(%thisfuncty @zarro, %thisfuncty @test, %thisfuncty @foozball)
+ ret i55 0
+end
+
+define i55 @foozball(i55)
+begin
+ ret i55 0
+end
+