Allow L symbols in no_dead_strip sections.

If a section cannot be dead stripped, it is safe to use L symbols, since
the linker will keep all of it in the end.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221431 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2014-11-06 02:42:03 +00:00
parent d465eced34
commit e1f22e397d
2 changed files with 9 additions and 0 deletions

View File

@ -588,6 +588,10 @@ bool TargetLoweringObjectFileMachO::isSectionAtomizableBySymbols(
SMO.getSectionName() == "__cfstring")
return false;
// no_dead_strip sections are not atomized in practice.
if (SMO.hasAttribute(MachO::S_ATTR_NO_DEAD_STRIP))
return false;
switch (SMO.getType()) {
default:
return true;

View File

@ -69,3 +69,8 @@
; CHECK: .section __DATA,__foobar,interposing
; CHECK-NEXT: .align 3
; CHECK-NEXT: L_private12:
@private13 = private global i32 42, section "__DATA, __objc_classlist, regular, no_dead_strip"
; CHECK: .section __DATA,__objc_classlist,regular,no_dead_strip
; CHECK-NEXT: .align 2
; CHECK-NEXT: L_private13: