mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-15 07:59:57 +00:00
LTO: Use the correct mangler function in LTOCodeGenerator::applyScopeRestrictions().
We need to use the overload of Mangler::getNameWithPrefix that takes a GlobalValue in order to mangle in the stdcall stack byte count for Windows targets. Differential Revision: https://reviews.llvm.org/D25529 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284040 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e0ace4ad68
commit
d84bb1caf8
@ -410,6 +410,7 @@ void LTOCodeGenerator::applyScopeRestrictions() {
|
||||
|
||||
// Declare a callback for the internalize pass that will ask for every
|
||||
// candidate GlobalValue if it can be internalized or not.
|
||||
Mangler Mang;
|
||||
SmallString<64> MangledName;
|
||||
auto mustPreserveGV = [&](const GlobalValue &GV) -> bool {
|
||||
// Unnamed globals can't be mangled, but they can't be preserved either.
|
||||
@ -421,8 +422,7 @@ void LTOCodeGenerator::applyScopeRestrictions() {
|
||||
// underscore.
|
||||
MangledName.clear();
|
||||
MangledName.reserve(GV.getName().size() + 1);
|
||||
Mangler::getNameWithPrefix(MangledName, GV.getName(),
|
||||
MergedModule->getDataLayout());
|
||||
Mang.getNameWithPrefix(MangledName, &GV, /*CannotUsePrivateLabel=*/false);
|
||||
return MustPreserveSymbols.count(MangledName);
|
||||
};
|
||||
|
||||
|
10
test/LTO/X86/stdcall.ll
Normal file
10
test/LTO/X86/stdcall.ll
Normal file
@ -0,0 +1,10 @@
|
||||
; RUN: llvm-as < %s > %t
|
||||
; RUN: llvm-lto -exported-symbol=_DllMain@12 -filetype=asm -o - %t | FileCheck %s
|
||||
|
||||
target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
|
||||
target triple = "i386-pc-windows-msvc19.0.23918"
|
||||
|
||||
; CHECK: .globl _DllMain@12
|
||||
define x86_stdcallcc i32 @DllMain(i8* %module, i32 %reason, i8* %reserved) {
|
||||
ret i32 1
|
||||
}
|
Loading…
Reference in New Issue
Block a user