forked from OSchip/llvm-project
Revert "Use private linkage for remaining GlobalVariables with private names."
This reverts commit r203059. Revert while we discuss what does it mean to be private and weak. llvm-svn: 203141
This commit is contained in:
parent
6f548ec37e
commit
70efc5b4db
|
@ -5955,11 +5955,11 @@ llvm::Value *CGObjCNonFragileABIMac::GenerateProtocolRef(CodeGenFunction &CGF,
|
|||
PTGV = new llvm::GlobalVariable(
|
||||
CGM.getModule(),
|
||||
Init->getType(), false,
|
||||
llvm::GlobalValue::PrivateLinkage,
|
||||
llvm::GlobalValue::WeakAnyLinkage,
|
||||
Init,
|
||||
ProtocolName);
|
||||
assertPrivateName(PTGV);
|
||||
PTGV->setSection("__DATA, __objc_protorefs, coalesced, no_dead_strip");
|
||||
PTGV->setVisibility(llvm::GlobalValue::HiddenVisibility);
|
||||
CGM.AddUsedGlobal(PTGV);
|
||||
return CGF.Builder.CreateLoad(PTGV);
|
||||
}
|
||||
|
@ -6243,11 +6243,10 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocolRef(
|
|||
// contents for protocols which were referenced but never defined.
|
||||
Entry =
|
||||
new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolnfABITy,
|
||||
false, llvm::GlobalValue::PrivateLinkage, 0,
|
||||
false, llvm::GlobalValue::WeakAnyLinkage, 0,
|
||||
"\01l_OBJC_PROTOCOL_$_" + PD->getName());
|
||||
Entry->setSection("__DATA,__datacoal_nt,coalesced");
|
||||
}
|
||||
assertPrivateName(Entry);
|
||||
|
||||
return Entry;
|
||||
}
|
||||
|
@ -6359,11 +6358,12 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocol(
|
|||
|
||||
if (Entry) {
|
||||
// Already created, update the initializer.
|
||||
assert(Entry->getLinkage() == llvm::GlobalValue::WeakAnyLinkage);
|
||||
Entry->setInitializer(Init);
|
||||
} else {
|
||||
Entry =
|
||||
new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolnfABITy,
|
||||
false, llvm::GlobalValue::PrivateLinkage, Init,
|
||||
false, llvm::GlobalValue::WeakAnyLinkage, Init,
|
||||
"\01l_OBJC_PROTOCOL_$_" + PD->getName());
|
||||
Entry->setAlignment(
|
||||
CGM.getDataLayout().getABITypeAlignment(ObjCTypes.ProtocolnfABITy));
|
||||
|
@ -6371,19 +6371,19 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocol(
|
|||
|
||||
Protocols[PD->getIdentifier()] = Entry;
|
||||
}
|
||||
assertPrivateName(Entry);
|
||||
Entry->setVisibility(llvm::GlobalValue::HiddenVisibility);
|
||||
CGM.AddUsedGlobal(Entry);
|
||||
|
||||
// Use this protocol meta-data to build protocol list table in section
|
||||
// __DATA, __objc_protolist
|
||||
llvm::GlobalVariable *PTGV =
|
||||
new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolnfABIPtrTy,
|
||||
false, llvm::GlobalValue::PrivateLinkage, Entry,
|
||||
false, llvm::GlobalValue::WeakAnyLinkage, Entry,
|
||||
"\01l_OBJC_LABEL_PROTOCOL_$_" + PD->getName());
|
||||
assertPrivateName(PTGV);
|
||||
PTGV->setAlignment(
|
||||
CGM.getDataLayout().getABITypeAlignment(ObjCTypes.ProtocolnfABIPtrTy));
|
||||
PTGV->setSection("__DATA, __objc_protolist, coalesced, no_dead_strip");
|
||||
PTGV->setVisibility(llvm::GlobalValue::HiddenVisibility);
|
||||
CGM.AddUsedGlobal(PTGV);
|
||||
return Entry;
|
||||
}
|
||||
|
@ -6592,14 +6592,14 @@ CGObjCNonFragileABIMac::EmitVTableMessageSend(CodeGenFunction &CGF,
|
|||
messageRef = new llvm::GlobalVariable(CGM.getModule(),
|
||||
init->getType(),
|
||||
/*constant*/ false,
|
||||
llvm::GlobalValue::PrivateLinkage,
|
||||
llvm::GlobalValue::WeakAnyLinkage,
|
||||
init,
|
||||
messageRefName);
|
||||
messageRef->setVisibility(llvm::GlobalValue::HiddenVisibility);
|
||||
messageRef->setAlignment(16);
|
||||
messageRef->setSection("__DATA, __objc_msgrefs, coalesced");
|
||||
}
|
||||
assertPrivateName(messageRef);
|
||||
|
||||
|
||||
bool requiresnullCheck = false;
|
||||
if (CGM.getLangOpts().ObjCAutoRefCount && method)
|
||||
for (ObjCMethodDecl::param_const_iterator i = method->param_begin(),
|
||||
|
|
|
@ -18,7 +18,7 @@ int main() {
|
|||
return 0;
|
||||
}
|
||||
|
||||
// CHECK: @"\01l_OBJC_PROTOCOL_$_P0" = private global
|
||||
// CHECK: @"\01l_OBJC_PROTOCOL_$_P0" = weak hidden global
|
||||
// CHECK: @"\01l_OBJC_CLASS_PROTOCOLS_$_A" = private global
|
||||
// CHECK: @"\01l_OBJC_LABEL_PROTOCOL_$_P0" = private global
|
||||
// CHECK: @"\01l_OBJC_PROTOCOL_REFERENCE_$_P0" = private global
|
||||
// CHECK: @"\01l_OBJC_LABEL_PROTOCOL_$_P0" = weak hidden global
|
||||
// CHECK: @"\01l_OBJC_PROTOCOL_REFERENCE_$_P0" = weak hidden global
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// CHECK: @"OBJC_IVAR_$_I.P" = hidden
|
||||
// CHECK: @"OBJC_CLASS_$_I" = hidden
|
||||
// CHECK: @"OBJC_METACLASS_$_I" = hidden
|
||||
// CHECK: @"\01l_OBJC_PROTOCOL_$_Prot0" = private global
|
||||
// CHECK: @"\01l_OBJC_PROTOCOL_$_Prot0" = weak hidden
|
||||
|
||||
@interface I {
|
||||
int P;
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
// 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" = private global {{.*}} section "__DATA,__datacoal_nt,coalesced", align 8
|
||||
// CHECK: @"\01l_OBJC_LABEL_PROTOCOL_$_P" = private global {{.*}} section "__DATA, __objc_protolist, coalesced, no_dead_strip", align 8
|
||||
// CHECK: @"\01l_OBJC_PROTOCOL_$_P" = weak hidden global {{.*}} section "__DATA,__datacoal_nt,coalesced", 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
|
||||
// CHECK: @"\01l_OBJC_$_INSTANCE_METHODS_A" = private global {{.*}} section "__DATA, __objc_const", align 8
|
||||
|
@ -28,7 +28,7 @@
|
|||
// CHECK: @"\01L_OBJC_CLASSLIST_SUP_REFS_$_{{[0-9]*}}" = private global {{.*}} section "__DATA, __objc_superrefs, regular, no_dead_strip", align 8
|
||||
// CHECK: @"OBJC_CLASS_$_B" = external global
|
||||
// CHECK: @"\01L_OBJC_CLASSLIST_REFERENCES_$_{{[0-9]*}}" = private global {{.*}} section "__DATA, __objc_classrefs, regular, no_dead_strip", align 8
|
||||
// CHECK: @"\01l_objc_msgSend_fixup_alloc" = private global {{.*}} section "__DATA, __objc_msgrefs, coalesced", align 16
|
||||
// CHECK: @"\01l_objc_msgSend_fixup_alloc" = weak hidden global {{.*}} section "__DATA, __objc_msgrefs, coalesced", align 16
|
||||
// CHECK: @"\01L_OBJC_LABEL_CLASS_$" = private global {{.*}} section "__DATA, __objc_classlist, regular, no_dead_strip", align 8
|
||||
// CHECK: @"\01L_OBJC_LABEL_CATEGORY_$" = private global {{.*}} section "__DATA, __objc_catlist, regular, no_dead_strip", align 8
|
||||
// CHECK: @objc_msgSend_fpret(
|
||||
|
|
Loading…
Reference in New Issue