mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-22 22:11:50 +00:00
Fix PR26152.
Fix the condition for when the new global takes over the name of the existing one to be the negation of the condition for the new global to get internal linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258355 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2da1416c6e
commit
c97b26586f
@ -1087,7 +1087,7 @@ Constant *IRLinker::linkGlobalValueProto(GlobalValue *SGV, bool ForAlias) {
|
||||
return nullptr;
|
||||
|
||||
NewGV = copyGlobalValueProto(SGV, ShouldLink);
|
||||
if (!ForAlias)
|
||||
if (ShouldLink || !ForAlias)
|
||||
forceRenaming(NewGV, SGV->getName());
|
||||
}
|
||||
if (ShouldLink || ForAlias) {
|
||||
|
7
test/Linker/Inputs/alias-2.ll
Normal file
7
test/Linker/Inputs/alias-2.ll
Normal file
@ -0,0 +1,7 @@
|
||||
define void @B() {
|
||||
call void @A()
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @A()
|
||||
|
24
test/Linker/alias-2.ll
Normal file
24
test/Linker/alias-2.ll
Normal file
@ -0,0 +1,24 @@
|
||||
; RUN: llvm-link %s %S/Inputs/alias-2.ll -S -o - | FileCheck %s
|
||||
; RUN: llvm-link %S/Inputs/alias-2.ll %s -S -o - | FileCheck %s
|
||||
|
||||
; Test the fix for PR26152, where A from the second module is
|
||||
; erroneously renamed to A.1 and not linked to the declaration from
|
||||
; the first module
|
||||
|
||||
@C = alias void (), void ()* @A
|
||||
|
||||
define void @D() {
|
||||
call void @C()
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @A() {
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-DAG: @C = alias void (), void ()* @A
|
||||
; CHECK-DAG: define void @B()
|
||||
; CHECK-DAG: call void @A()
|
||||
; CHECK-DAG: define void @D()
|
||||
; CHECK-DAG: call void @C()
|
||||
; CHECK-DAG: define void @A()
|
Loading…
x
Reference in New Issue
Block a user