From 468fbb3c2b43959c09961b9557cdefc303be5aad Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Tue, 17 Mar 2015 20:39:40 +0000 Subject: [PATCH] Address review comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232540 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/Mangler.h | 6 ++++-- lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 9 ++------- lib/IR/Mangler.cpp | 10 ++++++---- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/include/llvm/IR/Mangler.h b/include/llvm/IR/Mangler.h index 1e6b5b1dca0..b44d1c8c232 100644 --- a/include/llvm/IR/Mangler.h +++ b/include/llvm/IR/Mangler.h @@ -52,9 +52,11 @@ public: /// If the global variable doesn't have a name, this fills in a unique name /// for the global. void getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV, - bool CannotUsePrivateLabel) const; + bool CannotUsePrivateLabel, + bool ForceNonPrivate = false) const; void getNameWithPrefix(SmallVectorImpl &OutName, const GlobalValue *GV, - bool CannotUsePrivateLabel) const; + bool CannotUsePrivateLabel, + bool ForceNonPrivate = false) const; /// Print the appropriate prefix and the specified name as the global variable /// name. GVName must not be empty. diff --git a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index 5a8367eea77..10729cd81a5 100644 --- a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp @@ -960,13 +960,8 @@ void TargetLoweringObjectFileCOFF::getNameWithPrefix( ((isa(GV) && TM.getFunctionSections()) || (isa(GV) && TM.getDataSections()))) { SmallString<256> Tmp; - Mang.getNameWithPrefix(Tmp, GV, /*CannotUsePrivateLabel=*/false); - if (Tmp.startswith(".L")) - OutName.append(Tmp.begin() + 2, Tmp.end()); - else if (Tmp.startswith("L")) - OutName.append(Tmp.begin() + 1, Tmp.end()); - else - OutName.append(Tmp.begin(), Tmp.end()); + Mang.getNameWithPrefix(Tmp, GV, CannotUsePrivateLabel, /*ForceNonPrivate=*/true); + OutName.append(Tmp.begin(), Tmp.end()); return; } Mang.getNameWithPrefix(OutName, GV, CannotUsePrivateLabel); diff --git a/lib/IR/Mangler.cpp b/lib/IR/Mangler.cpp index a0e1b25056c..2ba5998c805 100644 --- a/lib/IR/Mangler.cpp +++ b/lib/IR/Mangler.cpp @@ -91,9 +91,10 @@ static void addByteCountSuffix(raw_ostream &OS, const Function *F, } void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV, - bool CannotUsePrivateLabel) const { + bool CannotUsePrivateLabel, + bool ForceNonPrivate) const { ManglerPrefixTy PrefixTy = Mangler::Default; - if (GV->hasPrivateLinkage()) { + if (GV->hasPrivateLinkage() && !ForceNonPrivate) { if (CannotUsePrivateLabel) PrefixTy = Mangler::LinkerPrivate; else @@ -152,7 +153,8 @@ void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV, void Mangler::getNameWithPrefix(SmallVectorImpl &OutName, const GlobalValue *GV, - bool CannotUsePrivateLabel) const { + bool CannotUsePrivateLabel, + bool ForceNonPrivate) const { raw_svector_ostream OS(OutName); - getNameWithPrefix(OS, GV, CannotUsePrivateLabel); + getNameWithPrefix(OS, GV, CannotUsePrivateLabel, ForceNonPrivate); }