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.ll34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/Integer/forwardreftest_bt.ll b/test/Integer/forwardreftest_bt.ll
new file mode 100644
index 0000000..d6011b0
--- /dev/null
+++ b/test/Integer/forwardreftest_bt.ll
@@ -0,0 +1,34 @@
+; 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) *
+implementation
+
+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
+