-; The funcresolve pass will (intentionally) 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-as %S/Inputs/2003-05-31-LinkerRename.ll -o %t.1.bc
+; RUN: llvm-as %s -o %t.2.bc
+; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
-; RUN: echo "implementation internal int %foo() { ret int 7 }" | as > Output/%s.1.bc
-; RUN: as < %s > Output/%s.2.bc
-; RUN: link Output/%s.[12].bc | dis | grep 'internal' | not grep '%foo('
+; CHECK: @bar = global i32 ()* @foo2
-implementation
-declare int %foo()
+; CHECK: define internal i32 @foo2() {
+; CHECK-NEXT: ret i32 7
+; CHECK-NEXT: }
-int %test() {
- %X = call int %foo()
- ret int %X
-}
+; CHECK: declare i32 @foo()
+
+; CHECK: define i32 @test() {
+; CHECK-NEXT: %X = call i32 @foo()
+; CHECK-NEXT: ret i32 %X
+; CHECK-NEXT: }
+declare i32 @foo()
+
+define i32 @test() {
+ %X = call i32 @foo()
+ ret i32 %X
+}