mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-18 16:03:17 +00:00
Do not mangle in MS-way the globals with magic \001 in the name.
Based on the patch by David Nadlinger! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179889 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a317eb8229
commit
8caffc1e75
@ -188,7 +188,12 @@ void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName,
|
||||
|
||||
// If this global has a name, handle it simply.
|
||||
if (GV->hasName()) {
|
||||
getNameWithPrefix(OutName, GV->getName(), PrefixTy);
|
||||
StringRef Name = GV->getName();
|
||||
getNameWithPrefix(OutName, Name, PrefixTy);
|
||||
// No need to do anything else if the global has the special "do not mangle"
|
||||
// flag in the name.
|
||||
if (Name[0] == 1)
|
||||
return;
|
||||
} else {
|
||||
// Get the ID for the global, assigning a new one if we haven't got one
|
||||
// already.
|
||||
|
@ -7,3 +7,8 @@ define x86_fastcallcc void @func(i64 %X, i8 %Y, i8 %G, i16 %Z) {
|
||||
ret void
|
||||
}
|
||||
|
||||
define x86_fastcallcc i32 @"\01DoNotMangle"(i32 %a) {
|
||||
; CHECK: DoNotMangle:
|
||||
entry:
|
||||
ret i32 %a
|
||||
}
|
||||
|
@ -1,16 +1,24 @@
|
||||
; RUN: llc < %s | FileCheck %s
|
||||
; RUN: llc -mtriple="i386-pc-mingw32" < %s | FileCheck %s
|
||||
; PR5851
|
||||
|
||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
|
||||
target triple = "i386-pc-mingw32"
|
||||
|
||||
%0 = type { void (...)* }
|
||||
|
||||
define internal x86_stdcallcc void @MyFunc() nounwind {
|
||||
entry:
|
||||
; CHECK: MyFunc@0:
|
||||
; CHECK: ret
|
||||
ret void
|
||||
}
|
||||
|
||||
; PR14410
|
||||
define x86_stdcallcc i32 @"\01DoNotMangle"(i32 %a) {
|
||||
; CHECK: DoNotMangle:
|
||||
; CHECK: ret $4
|
||||
entry:
|
||||
ret i32 %a
|
||||
}
|
||||
|
||||
@B = global %0 { void (...)* bitcast (void ()* @MyFunc to void (...)*) }, align 4
|
||||
; CHECK: _B:
|
||||
; CHECK: .long _MyFunc@0
|
||||
|
||||
define internal x86_stdcallcc void @MyFunc() nounwind {
|
||||
entry:
|
||||
ret void
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user