Link declaration lazily.
[oota-llvm.git] / test / Linker / 2003-05-31-LinkerRename.ll
index c3661ae9aa3b222d934c2ba2fd6c1275163c00cc..f511be1bf22f1d1cbcf6e14f553d157b25db2de3 100644 (file)
@@ -1,17 +1,21 @@
-; The funcresolve pass will (intentionally) llvm-link an _internal_ function 
-; body with an external declaration.  Because of this, if we LINK an internal 
-; function body into a program that already has an external declaration for 
-; the function name, we must rename the internal function to something that 
-; does not conflict.
+; RUN: llvm-link %S/Inputs/2003-05-31-LinkerRename.ll %s -S | FileCheck %s
 
-; RUN: echo { define internal i32 @foo() \{ ret i32 7 \} } | llvm-as > %t.1.bc
-; RUN: llvm-as < %s > %t.2.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep internal | not grep @foo(
+; CHECK: @bar = global i32 ()* @foo.2
 
-declare i32 @foo() 
+; CHECK:      define internal i32 @foo.2() {
+; CHECK-NEXT:   ret i32 7
+; CHECK-NEXT: }
 
-define i32 @test() { 
+; CHECK:      define i32 @test() {
+; CHECK-NEXT:   %X = call i32 @foo()
+; CHECK-NEXT:   ret i32 %X
+; CHECK-NEXT: }
+
+; CHECK: declare i32 @foo()
+
+declare i32 @foo()
+
+define i32 @test() {
   %X = call i32 @foo()
   ret i32 %X
 }
-