From 564404cc9609afbe1a2677dab8c29849ae8fb8f6 Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Tue, 17 Mar 2015 20:39:40 +0000 Subject: [PATCH] Address review comments llvm-svn: 232540 --- llvm/include/llvm/IR/Mangler.h | 6 ++++-- llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 9 ++------- llvm/lib/IR/Mangler.cpp | 10 ++++++---- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/llvm/include/llvm/IR/Mangler.h b/llvm/include/llvm/IR/Mangler.h index 1e6b5b1..b44d1c8 100644 --- a/llvm/include/llvm/IR/Mangler.h +++ b/llvm/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/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index 5a8367e..10729cd 100644 --- a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/llvm/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/llvm/lib/IR/Mangler.cpp b/llvm/lib/IR/Mangler.cpp index a0e1b25..2ba5998 100644 --- a/llvm/lib/IR/Mangler.cpp +++ b/llvm/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); } -- 2.7.4