mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-12 13:30:51 +00:00
Remember the unmangled name in the plugin.
This allows it to work with non trivial manglings like the one in COFF. Amusingly, this can be tested with gold, as emit-llvm causes the plugin to exit before any COFF is generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223790 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8eabcf7ce7
commit
f214fe8b32
22
test/tools/gold/coff.ll
Normal file
22
test/tools/gold/coff.ll
Normal file
@ -0,0 +1,22 @@
|
||||
; RUN: llvm-as %s -o %t.o
|
||||
; RUN: ld -plugin %llvmshlibdir/LLVMgold.so -plugin-opt=emit-llvm \
|
||||
; RUN: -shared %t.o -o %t2.o
|
||||
; RUN: llvm-dis %t2.o -o - | FileCheck %s
|
||||
|
||||
|
||||
target datalayout = "m:w"
|
||||
|
||||
; CHECK: define void @f() {
|
||||
define void @f() {
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: define internal void @g() {
|
||||
define hidden void @g() {
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: define internal void @h() {
|
||||
define linkonce_odr void @h() {
|
||||
ret void
|
||||
}
|
@ -625,7 +625,7 @@ getModuleForFile(LLVMContext &Context, claimed_file &F, raw_fd_ostream *ApiFile,
|
||||
// Since we use the regular lib/Linker, we cannot just internalize GV
|
||||
// now or it will not be copied to the merged module. Instead we force
|
||||
// it to be copied and then internalize it.
|
||||
Internalize.insert(Sym.name);
|
||||
Internalize.insert(GV->getName());
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -638,7 +638,7 @@ getModuleForFile(LLVMContext &Context, claimed_file &F, raw_fd_ostream *ApiFile,
|
||||
// Gold might have selected a linkonce_odr and preempted a weak_odr.
|
||||
// In that case we have to make sure we don't end up internalizing it.
|
||||
if (!GV->isDiscardableIfUnused())
|
||||
Maybe.erase(Sym.name);
|
||||
Maybe.erase(GV->getName());
|
||||
|
||||
// fall-through
|
||||
case LDPR_PREEMPTED_REG:
|
||||
@ -651,7 +651,7 @@ getModuleForFile(LLVMContext &Context, claimed_file &F, raw_fd_ostream *ApiFile,
|
||||
// and in that module the address might be significant, but that
|
||||
// copy will be LDPR_PREEMPTED_IR.
|
||||
if (GV->hasLinkOnceODRLinkage())
|
||||
Maybe.insert(Sym.name);
|
||||
Maybe.insert(GV->getName());
|
||||
keepGlobalValue(*GV, KeptAliases);
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user