diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index 2c5b0b3..3cf59bc 100644 --- a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp @@ -635,7 +635,8 @@ static SmallString<128> getELFSectionNameForGlobal(const GlobalObject *GO, SectionKind Kind, Mangler &Mang, const TargetMachine &TM, unsigned EntrySize, bool UniqueSectionName) { - SmallString<128> Name; + SmallString<128> Name = + getSectionPrefixForGlobal(Kind, TM.isLargeGlobalValue(GO)); if (Kind.isMergeableCString()) { // We also need alignment here. // FIXME: this is getting the alignment of the character, not the @@ -643,13 +644,13 @@ getELFSectionNameForGlobal(const GlobalObject *GO, SectionKind Kind, Align Alignment = GO->getParent()->getDataLayout().getPreferredAlign( cast<GlobalVariable>(GO)); - std::string SizeSpec = ".rodata.str" + utostr(EntrySize) + "."; - Name = SizeSpec + utostr(Alignment.value()); + Name += ".str"; + Name += utostr(EntrySize); + Name += "."; + Name += utostr(Alignment.value()); } else if (Kind.isMergeableConst()) { - Name = ".rodata.cst"; + Name += ".cst"; Name += utostr(EntrySize); - } else { - Name = getSectionPrefixForGlobal(Kind, TM.isLargeGlobalValue(GO)); } bool HasPrefix = false; |