diff options
Diffstat (limited to 'lib/MC/MCAsmInfoDarwin.cpp')
| -rw-r--r-- | lib/MC/MCAsmInfoDarwin.cpp | 17 | 
1 files changed, 16 insertions, 1 deletions
| diff --git a/lib/MC/MCAsmInfoDarwin.cpp b/lib/MC/MCAsmInfoDarwin.cpp index f7054902f24c..04cc0ff4a864 100644 --- a/lib/MC/MCAsmInfoDarwin.cpp +++ b/lib/MC/MCAsmInfoDarwin.cpp @@ -27,7 +27,22 @@ bool MCAsmInfoDarwin::isSectionAtomizableBySymbols(    // contain.    // Sections holding 2 byte strings require symbols in order to be atomized.    // There is no dedicated section for 4 byte strings. -  if (SMO.getType() == MachO::S_CSTRING_LITERALS) +  if (SMO.getKind().isMergeable1ByteCString()) +    return false; + +  if (SMO.getSegmentName() == "__TEXT" && +      SMO.getSectionName() == "__objc_classname" && +      SMO.getType() == MachO::S_CSTRING_LITERALS) +    return false; + +  if (SMO.getSegmentName() == "__TEXT" && +      SMO.getSectionName() == "__objc_methname" && +      SMO.getType() == MachO::S_CSTRING_LITERALS) +    return false; + +  if (SMO.getSegmentName() == "__TEXT" && +      SMO.getSectionName() == "__objc_methtype" && +      SMO.getType() == MachO::S_CSTRING_LITERALS)      return false;    if (SMO.getSegmentName() == "__DATA" && SMO.getSectionName() == "__cfstring") | 
