summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-01-16 02:16:09 +0000
committerChris Lattner <sabre@nondot.org>2010-01-16 02:16:09 +0000
commit32c9512132f9240ac5b30303d1699b449a27d7c9 (patch)
treef7502b3397f86dfbe165e8478bb1c501448b58cf /llvm/lib
parent3a3480fa53325e7a782170f97f5543209602aa3e (diff)
downloadbcm5719-llvm-32c9512132f9240ac5b30303d1699b449a27d7c9.tar.gz
bcm5719-llvm-32c9512132f9240ac5b30303d1699b449a27d7c9.zip
remove a couple of actively incorrect uses of getMangledName.
llvm-svn: 93627
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/ELFWriter.cpp10
-rw-r--r--llvm/lib/Target/TargetLoweringObjectFile.cpp3
2 files changed, 8 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/ELFWriter.cpp b/llvm/lib/CodeGen/ELFWriter.cpp
index 5e5f58970ea..b9d24dca3af 100644
--- a/llvm/lib/CodeGen/ELFWriter.cpp
+++ b/llvm/lib/CodeGen/ELFWriter.cpp
@@ -54,7 +54,7 @@
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Mangler.h"
#include "llvm/Support/raw_ostream.h"
-
+#include "llvm/ADT/SmallString.h"
using namespace llvm;
char ELFWriter::ID = 0;
@@ -906,9 +906,11 @@ void ELFWriter::EmitStringTable(const std::string &ModuleName) {
ELFSym &Sym = *(*I);
std::string Name;
- if (Sym.isGlobalValue())
- Name.append(Mang->getMangledName(Sym.getGlobalValue()));
- else if (Sym.isExternalSym())
+ if (Sym.isGlobalValue()) {
+ SmallString<40> NameStr;
+ Mang->getNameWithPrefix(NameStr, Sym.getGlobalValue(), false);
+ Name.append(NameStr.begin(), NameStr.end());
+ } else if (Sym.isExternalSym())
Name.append(Sym.getExternalSymbol());
else if (Sym.isFileType())
Name.append(ModuleName);
diff --git a/llvm/lib/Target/TargetLoweringObjectFile.cpp b/llvm/lib/Target/TargetLoweringObjectFile.cpp
index 70e8008eb44..6ecbec40647 100644
--- a/llvm/lib/Target/TargetLoweringObjectFile.cpp
+++ b/llvm/lib/Target/TargetLoweringObjectFile.cpp
@@ -955,7 +955,8 @@ shouldEmitUsedDirectiveFor(const GlobalValue *GV, Mangler *Mang) const {
// FIXME: ObjC metadata is currently emitted as internal symbols that have
// \1L and \0l prefixes on them. Fix them to be Private/LinkerPrivate and
// this horrible hack can go away.
- const std::string &Name = Mang->getMangledName(GV);
+ SmallString<64> Name;
+ Mang->getNameWithPrefix(NameTmp, GV, false);
if (Name[0] == 'L' || Name[0] == 'l')
return false;
}
OpenPOWER on IntegriCloud