diff --git a/include/llvm/Target/DarwinTargetAsmInfo.h b/include/llvm/Target/DarwinTargetAsmInfo.h index dab591aa036..a99e16df2c8 100644 --- a/include/llvm/Target/DarwinTargetAsmInfo.h +++ b/include/llvm/Target/DarwinTargetAsmInfo.h @@ -26,6 +26,7 @@ namespace llvm { struct DarwinTargetAsmInfo: public TargetAsmInfo { const Section* TextCoalSection; + const Section* ConstTextCoalSection; const Section* ConstDataCoalSection; const Section* ConstDataSection; const Section* DataCoalSection; diff --git a/lib/Target/DarwinTargetAsmInfo.cpp b/lib/Target/DarwinTargetAsmInfo.cpp index 0e4b09adfef..20866d7617e 100644 --- a/lib/Target/DarwinTargetAsmInfo.cpp +++ b/lib/Target/DarwinTargetAsmInfo.cpp @@ -43,6 +43,8 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM) { TextCoalSection = getNamedSection("\t__TEXT,__textcoal_nt,coalesced,pure_instructions", SectionFlags::Code); + ConstTextCoalSection = getNamedSection("\t__TEXT,__const_coal,coalesced", + SectionFlags::None); ConstDataCoalSection = getNamedSection("\t__DATA,__const_coal,coalesced", SectionFlags::None); ConstDataSection = getUnnamedSection(".const_data", SectionFlags::None); @@ -95,7 +97,7 @@ DarwinTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const { (isNonStatic ? ConstDataSection : getReadOnlySection())); case SectionKind::RODataMergeStr: return (isWeak ? - ConstDataCoalSection : + ConstTextCoalSection : MergeableStringSection(cast(GV))); case SectionKind::RODataMergeConst: return (isWeak ?