From 58de7099c737681002f1ca6674a086c5232bb09b Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 6 Nov 2014 05:01:21 +0000 Subject: [PATCH] Add three other sections when L symbols are allowed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221436 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 15 +++++++++++++++ test/CodeGen/X86/osx-private-labels.ll | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index 6944f71105b..efd15e15114 100644 --- a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp @@ -584,6 +584,21 @@ bool TargetLoweringObjectFileMachO::isSectionAtomizableBySymbols( 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") return false; diff --git a/test/CodeGen/X86/osx-private-labels.ll b/test/CodeGen/X86/osx-private-labels.ll index 7e176442d29..e30cb4824aa 100644 --- a/test/CodeGen/X86/osx-private-labels.ll +++ b/test/CodeGen/X86/osx-private-labels.ll @@ -74,3 +74,15 @@ ; CHECK: .section __DATA,__objc_classlist,regular,no_dead_strip ; CHECK-NEXT: .align 2 ; CHECK-NEXT: L_private13: + +@private14 = private global [4 x i8] c"zed\00", section "__TEXT,__objc_classname,cstring_literals" +; CHECK: .section __TEXT,__objc_classname,cstring_literals +; CHECK-NEXT: L_private14: + +@private15 = private global [4 x i8] c"zed\00", section "__TEXT,__objc_methname,cstring_literals" +; CHECK: .section __TEXT,__objc_methname,cstring_literals +; CHECK-NEXT: L_private15: + +@private16 = private global [4 x i8] c"zed\00", section "__TEXT,__objc_methtype,cstring_literals" +; CHECK: .section __TEXT,__objc_methtype,cstring_literals +; CHECK-NEXT: L_private16: