diff options
author | Chris Lattner <sabre@nondot.org> | 2009-07-29 05:20:33 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-07-29 05:20:33 +0000 |
commit | b8f396bdbb06b585b480ada31ec8c2ab35916a55 (patch) | |
tree | 6e84e5bd3a0d85255f81a0f1a0fd7c2cfbfe317f | |
parent | 0efa921736fefde26003aca8d182ab7eb722394b (diff) | |
download | external_llvm-b8f396bdbb06b585b480ada31ec8c2ab35916a55.zip external_llvm-b8f396bdbb06b585b480ada31ec8c2ab35916a55.tar.gz external_llvm-b8f396bdbb06b585b480ada31ec8c2ab35916a55.tar.bz2 |
fix PR4584 with a trivial patch now that the pieces are in place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77434 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/TargetLoweringObjectFile.cpp | 6 | ||||
-rw-r--r-- | test/CodeGen/X86/global-sections.ll | 13 |
2 files changed, 16 insertions, 3 deletions
diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp index 4f07f90..e0b2941 100644 --- a/lib/Target/TargetLoweringObjectFile.cpp +++ b/lib/Target/TargetLoweringObjectFile.cpp @@ -16,6 +16,7 @@ #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" #include "llvm/GlobalVariable.h" +#include "llvm/Support/Mangler.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetData.h" #include "llvm/Target/TargetOptions.h" @@ -407,9 +408,8 @@ SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, // into a 'uniqued' section name, create and return the section now. if (Kind.isWeak()) { const char *Prefix = getSectionPrefixForUniqueGlobal(Kind); - // FIXME: Use mangler interface (PR4584). - std::string Name = Prefix+GV->getNameStr(); - return getOrCreateSection(Name.c_str(), false, Kind.getKind()); + std::string Name = Mang->makeNameProper(GV->getNameStr()); + return getOrCreateSection((Prefix+Name).c_str(), false, Kind.getKind()); } if (Kind.isText()) return TextSection; diff --git a/test/CodeGen/X86/global-sections.ll b/test/CodeGen/X86/global-sections.ll index ddfb352..18a585a 100644 --- a/test/CodeGen/X86/global-sections.ll +++ b/test/CodeGen/X86/global-sections.ll @@ -55,3 +55,16 @@ ; DARWIN: _G5: ; DARWIN: .long 47 + +; PR4584 +@"foo bar" = linkonce global i32 42 + +; LINUX: .type foo_20_bar,@object +; LINUX:.section .gnu.linkonce.d.foo_20_bar,"aw",@progbits +; LINUX: .weak foo_20_bar +; LINUX: foo_20_bar: + +; DARWIN: .section __DATA,__datacoal_nt,coalesced +; DARWIN: .globl "_foo bar" +; DARWIN: .weak_definition "_foo bar" +; DARWIN: "_foo bar": |