mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 12:19:53 +00:00
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:
parent
74ff8164d7
commit
b11d9944d9
@ -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
|
||||
}
|
||||
|
||||
|
5
test/Linker/Inputs/2003-05-31-LinkerRename.ll
Normal file
5
test/Linker/Inputs/2003-05-31-LinkerRename.ll
Normal file
@ -0,0 +1,5 @@
|
||||
@bar = global i32()* @foo
|
||||
|
||||
define internal i32 @foo() {
|
||||
ret i32 7
|
||||
}
|
Loading…
Reference in New Issue
Block a user