Thanks for the catch! Those checks aren’t necessary at all. I’ve removed them in r260921.
> On Feb 14, 2016, at 1:08 PM, Duncan P. N. Exon Smith <dexonsm...@apple.com> > wrote: > > >> On 2016-Feb-10, at 22:36, Akira Hatanaka via cfe-commits >> <cfe-commits@lists.llvm.org> wrote: >> >> Author: ahatanak >> Date: Thu Feb 11 00:36:35 2016 >> New Revision: 260496 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=260496&view=rev >> Log: >> [Objective-c] Stop attaching section "datacoal_nt" to global variables. >> >> The current macho linker just copies symbols in section datacoal_nt to >> section data, so it doesn't really matter whether or not section >> "datacoal_nt" is attached to the global variable. >> >> This is a follow-up to r250370, which made changes in llvm to stop >> putting functions and data in the *coal* sections. >> >> rdar://problem/24528611 >> >> Modified: >> cfe/trunk/lib/CodeGen/CGObjCMac.cpp >> cfe/trunk/lib/Frontend/Rewrite/RewriteModernObjC.cpp >> cfe/trunk/test/CodeGenObjC/exceptions-asm-attribute.m >> cfe/trunk/test/CodeGenObjC/metadata-symbols-64.m >> cfe/trunk/test/CodeGenObjC/metadata_symbols.m >> >> Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=260496&r1=260495&r2=260496&view=diff >> ============================================================================== >> --- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original) >> +++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Thu Feb 11 00:36:35 2016 >> @@ -6409,7 +6409,7 @@ llvm::Constant *CGObjCNonFragileABIMac:: >> const ObjCProtocolDecl *PD) { >> llvm::GlobalVariable *&Entry = Protocols[PD->getIdentifier()]; >> >> - if (!Entry) { >> + if (!Entry) >> // We use the initializer as a marker of whether this is a forward >> // reference or not. At module finalization we add the empty >> // contents for protocols which were referenced but never defined. >> @@ -6418,8 +6418,6 @@ llvm::Constant *CGObjCNonFragileABIMac:: >> false, llvm::GlobalValue::ExternalLinkage, >> nullptr, >> "\01l_OBJC_PROTOCOL_$_" + >> PD->getObjCRuntimeNameAsString()); >> - Entry->setSection("__DATA,__datacoal_nt,coalesced"); >> - } >> >> return Entry; >> } >> @@ -6546,7 +6544,6 @@ llvm::Constant *CGObjCNonFragileABIMac:: >> "\01l_OBJC_PROTOCOL_$_" + >> PD->getObjCRuntimeNameAsString()); >> Entry->setAlignment( >> CGM.getDataLayout().getABITypeAlignment(ObjCTypes.ProtocolnfABITy)); >> - Entry->setSection("__DATA,__datacoal_nt,coalesced"); >> >> Protocols[PD->getIdentifier()] = Entry; >> } >> @@ -7271,8 +7268,6 @@ CGObjCNonFragileABIMac::GetInterfaceEHTy >> >> if (ForDefinition) >> Entry->setSection("__DATA,__objc_const"); >> - else >> - Entry->setSection("__DATA,__datacoal_nt,coalesced"); >> >> return Entry; >> } >> >> Modified: cfe/trunk/lib/Frontend/Rewrite/RewriteModernObjC.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/Rewrite/RewriteModernObjC.cpp?rev=260496&r1=260495&r2=260496&view=diff >> ============================================================================== >> --- cfe/trunk/lib/Frontend/Rewrite/RewriteModernObjC.cpp (original) >> +++ cfe/trunk/lib/Frontend/Rewrite/RewriteModernObjC.cpp Thu Feb 11 00:36:35 >> 2016 >> @@ -6981,7 +6981,7 @@ void RewriteModernObjC::RewriteObjCProto >> Result += "static "; >> Result += "struct _protocol_t _OBJC_PROTOCOL_"; >> Result += PDecl->getNameAsString(); >> - Result += " __attribute__ ((used, section >> (\"__DATA,__datacoal_nt,coalesced\"))) = {\n"; >> + Result += " __attribute__ ((used)) = {\n"; >> Result += "\t0,\n"; // id is; is null >> Result += "\t\""; Result += PDecl->getNameAsString(); Result += "\",\n"; >> if (SuperProtocols.size() > 0) { >> >> Modified: cfe/trunk/test/CodeGenObjC/exceptions-asm-attribute.m >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/exceptions-asm-attribute.m?rev=260496&r1=260495&r2=260496&view=diff >> ============================================================================== >> --- cfe/trunk/test/CodeGenObjC/exceptions-asm-attribute.m (original) >> +++ cfe/trunk/test/CodeGenObjC/exceptions-asm-attribute.m Thu Feb 11 >> 00:36:35 2016 >> @@ -12,7 +12,7 @@ >> // CHECK-X86_64: @"OBJC_CLASS_$_MySecretNamespace.A" = global {{.*}}, >> section "__DATA, __objc_data", align 8 >> // CHECK-X86_64: @"OBJC_METACLASS_$_MySecretNamespace.A" = global {{.*}}, >> section "__DATA, __objc_data", align 8 >> // CHECK-X86_64: @OBJC_CLASS_NAME_ = {{.*}}, section >> "__TEXT,__objc_classname,cstring_literals", align 1 >> -// CHECK-X86_64: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak global >> {{.*}}, section "__DATA,__datacoal_nt,coalesced", align 8 >> +// CHECK-X86_64: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak global >> {{.*}}, align 8 >> // CHECK-X86_64: @"OBJC_EHTYPE_$_MySecretNamespace.EH2" = external global >> // CHECK-X86_64: @"OBJC_EHTYPE_$_MySecretNamespace.EH3" = global {{.*}}, >> section "__DATA,__objc_const", align 8 >> // CHECK-X86_64: @"OBJC_LABEL_CLASS_$" = private global {{.*}}, section >> "__DATA, __objc_classlist, regular, no_dead_strip", align 8 >> @@ -24,7 +24,7 @@ >> >> // CHECK-X86_64-HIDDEN: @"OBJC_CLASS_$_MySecretNamespace.A" = hidden global >> {{.*}}, section "__DATA, __objc_data", align 8 >> // CHECK-X86_64-HIDDEN: @"OBJC_METACLASS_$_MySecretNamespace.A" = hidden >> global {{.*}}, section "__DATA, __objc_data", align 8 >> -// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak >> hidden global {{.*}}, section "__DATA,__datacoal_nt,coalesced" >> +// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak >> hidden global {{.*}} > > The `{{.*}}` here isn't useful anymore; can you remove it? > Or is there something else you should be checking for? > >> // CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_MySecretNamespace.EH2" = external >> global >> // CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_MySecretNamespace.EH3" = hidden >> global {{.*}}, section "__DATA,__objc_const", align 8 >> // CHECK-X86_64-HIDDEN: define internal void @"\01-[A im0]" >> @@ -36,7 +36,7 @@ >> // CHECK-ARMV6: @"OBJC_CLASS_$_MySecretNamespace.A" = global {{.*}}, section >> "__DATA, __objc_data", align 4 >> // CHECK-ARMV6: @"OBJC_METACLASS_$_MySecretNamespace.A" = global {{.*}}, >> section "__DATA, __objc_data", align 4 >> // CHECK-ARMV6: @OBJC_CLASS_NAME_ = {{.*}}, section >> "__TEXT,__objc_classname,cstring_literals", align 1 >> -// CHECK-ARMV6: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak global >> {{.*}}, section "__DATA,__datacoal_nt,coalesced", align 4 >> +// CHECK-ARMV6: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak global >> {{.*}}, align 4 >> // CHECK-ARMV6: @"OBJC_EHTYPE_$_MySecretNamespace.EH2" = external global >> // CHECK-ARMV6: @"OBJC_EHTYPE_$_MySecretNamespace.EH3" = global {{.*}}, >> section "__DATA,__objc_const", align 4 >> // CHECK-ARMV6: @"OBJC_LABEL_CLASS_$" = private global {{.*}}, section >> "__DATA, __objc_classlist, regular, no_dead_strip", align 4 >> >> Modified: cfe/trunk/test/CodeGenObjC/metadata-symbols-64.m >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/metadata-symbols-64.m?rev=260496&r1=260495&r2=260496&view=diff >> ============================================================================== >> --- cfe/trunk/test/CodeGenObjC/metadata-symbols-64.m (original) >> +++ cfe/trunk/test/CodeGenObjC/metadata-symbols-64.m Thu Feb 11 00:36:35 2016 >> @@ -11,7 +11,7 @@ >> // CHECK: @"\01l_OBJC_$_CLASS_METHODS_A" = private global {{.*}} section >> "__DATA, __objc_const", align 8 >> // CHECK: @"\01l_OBJC_$_PROTOCOL_INSTANCE_METHODS_P" = private global {{.*}} >> section "__DATA, __objc_const", align 8 >> // CHECK: @"\01l_OBJC_$_PROTOCOL_CLASS_METHODS_P" = private global {{.*}} >> section "__DATA, __objc_const", align 8 >> -// CHECK: @"\01l_OBJC_PROTOCOL_$_P" = weak hidden global {{.*}} section >> "__DATA,__datacoal_nt,coalesced", align 8 >> +// CHECK: @"\01l_OBJC_PROTOCOL_$_P" = weak hidden global {{.*}}, align 8 >> // CHECK: @"\01l_OBJC_LABEL_PROTOCOL_$_P" = weak hidden global {{.*}} >> section "__DATA, __objc_protolist, coalesced, no_dead_strip", align 8 >> // CHECK: @"\01l_OBJC_CLASS_PROTOCOLS_$_A" = private global {{.*}} section >> "__DATA, __objc_const", align 8 >> // CHECK: @"\01l_OBJC_METACLASS_RO_$_A" = private global {{.*}} section >> "__DATA, __objc_const", align 8 >> >> Modified: cfe/trunk/test/CodeGenObjC/metadata_symbols.m >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/metadata_symbols.m?rev=260496&r1=260495&r2=260496&view=diff >> ============================================================================== >> --- cfe/trunk/test/CodeGenObjC/metadata_symbols.m (original) >> +++ cfe/trunk/test/CodeGenObjC/metadata_symbols.m Thu Feb 11 00:36:35 2016 >> @@ -11,7 +11,7 @@ >> // CHECK-X86_64: @"OBJC_CLASS_$_A" = global {{.*}}, section "__DATA, >> __objc_data", align 8 >> // CHECK-X86_64: @"OBJC_METACLASS_$_A" = global {{.*}}, section "__DATA, >> __objc_data", align 8 >> // CHECK-X86_64: @OBJC_CLASS_NAME_ = {{.*}}, section >> "__TEXT,__objc_classname,cstring_literals", align 1 >> -// CHECK-X86_64: @"OBJC_EHTYPE_$_EH1" = weak global {{.*}}, section >> "__DATA,__datacoal_nt,coalesced", align 8 >> +// CHECK-X86_64: @"OBJC_EHTYPE_$_EH1" = weak global {{.*}}, align 8 >> // CHECK-X86_64: @"OBJC_EHTYPE_$_EH2" = external global >> // CHECK-X86_64: @"OBJC_EHTYPE_$_EH3" = global {{.*}}, section >> "__DATA,__objc_const", align 8 >> // CHECK-X86_64: @"OBJC_LABEL_CLASS_$" = private global {{.*}}, section >> "__DATA, __objc_classlist, regular, no_dead_strip", align 8 >> @@ -23,7 +23,7 @@ >> >> // CHECK-X86_64-HIDDEN: @"OBJC_CLASS_$_A" = hidden global {{.*}}, section >> "__DATA, __objc_data", align 8 >> // CHECK-X86_64-HIDDEN: @"OBJC_METACLASS_$_A" = hidden global {{.*}}, >> section "__DATA, __objc_data", align 8 >> -// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_EH1" = weak hidden global {{.*}}, >> section "__DATA,__datacoal_nt,coalesced" >> +// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_EH1" = weak hidden global {{.*}} > > Same comment here as above. > >> // CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_EH2" = external global >> // CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_EH3" = hidden global {{.*}}, section >> "__DATA,__objc_const", align 8 >> // CHECK-X86_64-HIDDEN: define internal void @"\01-[A im0]" >> @@ -35,7 +35,7 @@ >> // CHECK-ARMV6: @"OBJC_CLASS_$_A" = global {{.*}}, section "__DATA, >> __objc_data", align 4 >> // CHECK-ARMV6: @"OBJC_METACLASS_$_A" = global {{.*}}, section "__DATA, >> __objc_data", align 4 >> // CHECK-ARMV6: @OBJC_CLASS_NAME_ = {{.*}}, section >> "__TEXT,__objc_classname,cstring_literals", align 1 >> -// CHECK-ARMV6: @"OBJC_EHTYPE_$_EH1" = weak global {{.*}}, section >> "__DATA,__datacoal_nt,coalesced", align 4 >> +// CHECK-ARMV6: @"OBJC_EHTYPE_$_EH1" = weak global {{.*}}, align 4 >> // CHECK-ARMV6: @"OBJC_EHTYPE_$_EH2" = external global >> // CHECK-ARMV6: @"OBJC_EHTYPE_$_EH3" = global {{.*}}, section >> "__DATA,__objc_const", align 4 >> // CHECK-ARMV6: @"OBJC_LABEL_CLASS_$" = private global {{.*}}, section >> "__DATA, __objc_classlist, regular, no_dead_strip", align 4 >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits