diff lib/Target/TargetLoweringObjectFile.cpp @ 33:e4204d083e25 LLVM3.5

LLVM 3.5
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Thu, 12 Dec 2013 14:32:10 +0900
parents 95c75e76d11b
children 54457678186b
line wrap: on
line diff
--- a/lib/Target/TargetLoweringObjectFile.cpp	Thu Dec 12 13:57:29 2013 +0900
+++ b/lib/Target/TargetLoweringObjectFile.cpp	Thu Dec 12 14:32:10 2013 +0900
@@ -18,6 +18,7 @@
 #include "llvm/IR/DerivedTypes.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/GlobalVariable.h"
+#include "llvm/MC/MCAsmInfo.h"
 #include "llvm/MC/MCContext.h"
 #include "llvm/MC/MCExpr.h"
 #include "llvm/MC/MCStreamer.h"
@@ -102,10 +103,24 @@
 MCSymbol *TargetLoweringObjectFile::getSymbol(Mangler &M, 
                                               const GlobalValue *GV) const {
   SmallString<60> NameStr;
-  M.getNameWithPrefix(NameStr, GV, false);
+  M.getNameWithPrefix(NameStr, GV);
   return Ctx->GetOrCreateSymbol(NameStr.str());
 }
 
+MCSymbol *TargetLoweringObjectFile::getSymbolWithGlobalValueBase(
+    Mangler &M, const GlobalValue *GV, StringRef Suffix) const {
+  assert(!Suffix.empty());
+  assert(!GV->hasPrivateLinkage());
+  assert(!GV->hasLinkerPrivateLinkage());
+  assert(!GV->hasLinkerPrivateWeakLinkage());
+
+  const MCAsmInfo *MAI = Ctx->getAsmInfo();
+  SmallString<60> NameStr;
+  NameStr += MAI->getPrivateGlobalPrefix();
+  M.getNameWithPrefix(NameStr, GV);
+  NameStr.append(Suffix.begin(), Suffix.end());
+  return Ctx->GetOrCreateSymbol(NameStr.str());
+}
 
 MCSymbol *TargetLoweringObjectFile::
 getCFIPersonalitySymbol(const GlobalValue *GV, Mangler *Mang,