diff options
author | Chris Lattner <sabre@nondot.org> | 2010-03-12 18:55:20 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-03-12 18:55:20 +0000 |
commit | 73ff564d65e9c748562c5734d1f72a2a233f0275 (patch) | |
tree | 5ab7da727ba858ad91fe7603179e1bdbbbc3ea88 /lib/Target/Mangler.cpp | |
parent | 0d941c15c0c88e062b548b74e0805e0ffb7427fe (diff) |
finally give Mangler a getSymbol method, which returns an MCSymbol
for a global instead of messing around with string buffers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98366 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mangler.cpp')
-rw-r--r-- | lib/Target/Mangler.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/Target/Mangler.cpp b/lib/Target/Mangler.cpp index 3eab58cc36..c630062bdf 100644 --- a/lib/Target/Mangler.cpp +++ b/lib/Target/Mangler.cpp @@ -179,3 +179,16 @@ std::string Mangler::getNameWithPrefix(const GlobalValue *GV, getNameWithPrefix(Buf, GV, isImplicitlyPrivate); return std::string(Buf.begin(), Buf.end()); } + +/// getSymbol - Return the MCSymbol for the specified global value. This +/// symbol is the main label that is the address of the global. +MCSymbol *Mangler::getSymbol(const GlobalValue *GV) { + SmallString<60> NameStr; + getNameWithPrefix(NameStr, GV, false); + if (!GV->hasPrivateLinkage()) + return Context.GetOrCreateSymbol(NameStr.str()); + + return Context.GetOrCreateTemporarySymbol(NameStr.str()); +} + + |