Make this test a bit stricter.

This now:
* Forces the linker to include the internal definition.
* Checks the full output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220495 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2014-10-23 18:52:46 +00:00
parent 74ff8164d7
commit b11d9944d9
2 changed files with 22 additions and 12 deletions

View File

@ -1,18 +1,23 @@
; 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: echo " define internal i32 @foo() { ret i32 7 } " | llvm-as > %t.1.bc
; RUN: llvm-as < %s > %t.2.bc
; 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
; CHECK: internal {{.*}} @foo{{[0-9]}}(
declare i32 @foo()
; CHECK: @bar = global i32 ()* @foo2
define i32 @test() {
; CHECK: define internal i32 @foo2() {
; CHECK-NEXT: ret i32 7
; CHECK-NEXT: }
; 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
}

View File

@ -0,0 +1,5 @@
@bar = global i32()* @foo
define internal i32 @foo() {
ret i32 7
}