From c14f0d230257a8db58aee6329116a7e245e6bbd6 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Wed, 8 Jul 2009 01:29:18 +0000 Subject: [PATCH] Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74986 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGBlocks.cpp | 11 +++-- lib/CodeGen/CGCXX.cpp | 4 +- lib/CodeGen/CGDecl.cpp | 6 ++- lib/CodeGen/CGExprConstant.cpp | 2 +- lib/CodeGen/CGObjCGNU.cpp | 28 +++++++------ lib/CodeGen/CGObjCMac.cpp | 77 +++++++++++++++++++++++----------- lib/CodeGen/CodeGenModule.cpp | 22 +++++----- 7 files changed, 94 insertions(+), 56 deletions(-) diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp index d5f803ba98..8de3518406 100644 --- a/lib/CodeGen/CGBlocks.cpp +++ b/lib/CodeGen/CGBlocks.cpp @@ -50,7 +50,7 @@ BuildDescriptorBlockDecl(bool BlockHasCopyDispose, uint64_t Size, C = llvm::ConstantStruct::get(Elts); - C = new llvm::GlobalVariable(C->getType(), true, + C = new llvm::GlobalVariable(CGM.getModule().getContext(), C->getType(), true, llvm::GlobalValue::InternalLinkage, C, "__block_descriptor_tmp", &CGM.getModule()); return C; @@ -165,7 +165,8 @@ llvm::Value *CodeGenFunction::BuildBlockLiteralTmp(const BlockExpr *BE) { char Name[32]; sprintf(Name, "__block_holder_tmp_%d", CGM.getGlobalUniqueCount()); - C = new llvm::GlobalVariable(C->getType(), true, + C = new llvm::GlobalVariable(CGM.getModule().getContext(), + C->getType(), true, llvm::GlobalValue::InternalLinkage, C, Name, &CGM.getModule()); QualType BPT = BE->getType(); @@ -513,7 +514,8 @@ BlockModule::GetAddrOfGlobalBlock(const BlockExpr *BE, const char * n) { llvm::ConstantStruct::get(&DescriptorFields[0], 2); llvm::GlobalVariable *Descriptor = - new llvm::GlobalVariable(DescriptorStruct->getType(), true, + new llvm::GlobalVariable(getModule().getContext(), + DescriptorStruct->getType(), true, llvm::GlobalVariable::InternalLinkage, DescriptorStruct, "__block_descriptor_global", &getModule()); @@ -555,7 +557,8 @@ BlockModule::GetAddrOfGlobalBlock(const BlockExpr *BE, const char * n) { llvm::ConstantStruct::get(&LiteralFields[0], 5); llvm::GlobalVariable *BlockLiteral = - new llvm::GlobalVariable(BlockLiteralStruct->getType(), true, + new llvm::GlobalVariable(getModule().getContext(), + BlockLiteralStruct->getType(), true, llvm::GlobalVariable::InternalLinkage, BlockLiteralStruct, "__block_literal_global", &getModule()); diff --git a/lib/CodeGen/CGCXX.cpp b/lib/CodeGen/CGCXX.cpp index 5f3acea767..21cea75da4 100644 --- a/lib/CodeGen/CGCXX.cpp +++ b/lib/CodeGen/CGCXX.cpp @@ -20,6 +20,7 @@ #include "clang/AST/Decl.h" #include "clang/AST/DeclCXX.h" #include "clang/AST/DeclObjC.h" +#include "llvm/Module.h" #include "llvm/ADT/StringExtras.h" using namespace clang; using namespace CodeGen; @@ -38,7 +39,8 @@ CodeGenFunction::GenerateStaticCXXBlockVarDeclInit(const VarDecl &D, // Create the guard variable. llvm::GlobalValue *GuardV = - new llvm::GlobalVariable(llvm::Type::Int64Ty, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + llvm::Type::Int64Ty, false, GV->getLinkage(), llvm::Constant::getNullValue(llvm::Type::Int64Ty), GuardVName.c_str(), diff --git a/lib/CodeGen/CGDecl.cpp b/lib/CodeGen/CGDecl.cpp index 2ae7e225eb..e3e7fd2103 100644 --- a/lib/CodeGen/CGDecl.cpp +++ b/lib/CodeGen/CGDecl.cpp @@ -104,7 +104,8 @@ CodeGenFunction::CreateStaticBlockVarDecl(const VarDecl &D, } const llvm::Type *LTy = CGM.getTypes().ConvertTypeForMem(Ty); - return new llvm::GlobalVariable(LTy, Ty.isConstant(getContext()), Linkage, + return new llvm::GlobalVariable(CGM.getModule().getContext(), + LTy, Ty.isConstant(getContext()), Linkage, llvm::Constant::getNullValue(LTy), Name, &CGM.getModule(), D.isThreadSpecified(), Ty.getAddressSpace()); @@ -149,7 +150,8 @@ void CodeGenFunction::EmitStaticBlockVarDecl(const VarDecl &D) { if (GV->getType() != Init->getType()) { llvm::GlobalVariable *OldGV = GV; - GV = new llvm::GlobalVariable(Init->getType(), OldGV->isConstant(), + GV = new llvm::GlobalVariable(CGM.getModule().getContext(), + Init->getType(), OldGV->isConstant(), OldGV->getLinkage(), Init, "", &CGM.getModule(), D.isThreadSpecified(), D.getType().getAddressSpace()); diff --git a/lib/CodeGen/CGExprConstant.cpp b/lib/CodeGen/CGExprConstant.cpp index 37c9c366fe..d000788721 100644 --- a/lib/CodeGen/CGExprConstant.cpp +++ b/lib/CodeGen/CGExprConstant.cpp @@ -394,7 +394,7 @@ public: llvm::Constant* C = Visit(CLE->getInitializer()); // FIXME: "Leaked" on failure. if (C) - C = new llvm::GlobalVariable(C->getType(), + C = new llvm::GlobalVariable(CGM.getModule().getContext(), C->getType(), E->getType().isConstQualified(), llvm::GlobalValue::InternalLinkage, C, ".compoundliteral", &CGM.getModule()); diff --git a/lib/CodeGen/CGObjCGNU.cpp b/lib/CodeGen/CGObjCGNU.cpp index 82984aba62..083598afe9 100644 --- a/lib/CodeGen/CGObjCGNU.cpp +++ b/lib/CodeGen/CGObjCGNU.cpp @@ -184,10 +184,10 @@ void CGObjCGNU::EmitClassRef(const std::string &className){ std::string symbolName = "__objc_class_name_" + className; llvm::GlobalVariable *ClassSymbol = TheModule.getGlobalVariable(symbolName); if (!ClassSymbol) { - ClassSymbol = new llvm::GlobalVariable(LongTy, false, - llvm::GlobalValue::ExternalLinkage, 0, symbolName, &TheModule); + ClassSymbol = new llvm::GlobalVariable(TheModule.getContext(), LongTy, + false, llvm::GlobalValue::ExternalLinkage, 0, symbolName, &TheModule); } - new llvm::GlobalVariable(ClassSymbol->getType(), true, + new llvm::GlobalVariable(TheModule.getContext(), ClassSymbol->getType(), true, llvm::GlobalValue::CommonLinkage, ClassSymbol, symbolRef, &TheModule); } @@ -291,7 +291,8 @@ llvm::Value *CGObjCGNU::GetSelector(CGBuilderTy &Builder, const ObjCMethodDecl llvm::Constant *CGObjCGNU::MakeConstantString(const std::string &Str, const std::string &Name) { llvm::Constant * ConstStr = llvm::ConstantArray::get(Str); - ConstStr = new llvm::GlobalVariable(ConstStr->getType(), true, + ConstStr = new llvm::GlobalVariable(TheModule.getContext(), + ConstStr->getType(), true, llvm::GlobalValue::InternalLinkage, ConstStr, Name, &TheModule); return llvm::ConstantExpr::getGetElementPtr(ConstStr, Zeros, 2); @@ -299,13 +300,13 @@ llvm::Constant *CGObjCGNU::MakeConstantString(const std::string &Str, llvm::Constant *CGObjCGNU::MakeGlobal(const llvm::StructType *Ty, std::vector &V, const std::string &Name) { llvm::Constant *C = llvm::ConstantStruct::get(Ty, V); - return new llvm::GlobalVariable(Ty, false, + return new llvm::GlobalVariable(TheModule.getContext(), Ty, false, llvm::GlobalValue::InternalLinkage, C, Name, &TheModule); } llvm::Constant *CGObjCGNU::MakeGlobal(const llvm::ArrayType *Ty, std::vector &V, const std::string &Name) { llvm::Constant *C = llvm::ConstantArray::get(Ty, V); - return new llvm::GlobalVariable(Ty, false, + return new llvm::GlobalVariable(TheModule.getContext(), Ty, false, llvm::GlobalValue::InternalLinkage, C, Name, &TheModule); } @@ -868,7 +869,8 @@ void CGObjCGNU::GenerateClass(const ObjCImplementationDecl *OID) { TheModule.getGlobalVariable(classSymbolName)) { symbol->setInitializer(llvm::ConstantInt::get(LongTy, 0)); } else { - new llvm::GlobalVariable(LongTy, false, llvm::GlobalValue::ExternalLinkage, + new llvm::GlobalVariable(TheModule.getContext(), LongTy, false, + llvm::GlobalValue::ExternalLinkage, llvm::ConstantInt::get(LongTy, 0), classSymbolName, &TheModule); } @@ -1100,8 +1102,8 @@ llvm::Function *CGObjCGNU::ModuleInitFunction() { iter != iterEnd; ++iter) { llvm::Constant *Idxs[] = {Zeros[0], llvm::ConstantInt::get(llvm::Type::Int32Ty, index++), Zeros[0]}; - llvm::Constant *SelPtr = new llvm::GlobalVariable(SelStructPtrTy, - true, llvm::GlobalValue::InternalLinkage, + llvm::Constant *SelPtr = new llvm::GlobalVariable(TheModule.getContext(), + SelStructPtrTy, true, llvm::GlobalValue::InternalLinkage, llvm::ConstantExpr::getGetElementPtr(SelectorList, Idxs, 2), ".objc_sel_ptr", &TheModule); // If selectors are defined as an opaque type, cast the pointer to this @@ -1117,8 +1119,8 @@ llvm::Function *CGObjCGNU::ModuleInitFunction() { iter != iterEnd; iter++) { llvm::Constant *Idxs[] = {Zeros[0], llvm::ConstantInt::get(llvm::Type::Int32Ty, index++), Zeros[0]}; - llvm::Constant *SelPtr = new llvm::GlobalVariable(SelStructPtrTy, true, - llvm::GlobalValue::InternalLinkage, + llvm::Constant *SelPtr = new llvm::GlobalVariable(TheModule.getContext(), + SelStructPtrTy, true, llvm::GlobalValue::InternalLinkage, llvm::ConstantExpr::getGetElementPtr(SelectorList, Idxs, 2), ".objc_sel_ptr", &TheModule); // If selectors are defined as an opaque type, cast the pointer to this @@ -1566,8 +1568,8 @@ llvm::GlobalVariable *CGObjCGNU::ObjCIvarOffsetVariable( uint64_t Offset = ComputeIvarBaseOffset(CGM, ID, Ivar); llvm::ConstantInt *OffsetGuess = llvm::ConstantInt::get(LongTy, Offset, "ivar"); - IvarOffsetGV = new llvm::GlobalVariable(LongTy, false, - llvm::GlobalValue::CommonLinkage, OffsetGuess, Name, &TheModule); + IvarOffsetGV = new llvm::GlobalVariable(TheModule.getContext(), LongTy, + false, llvm::GlobalValue::CommonLinkage, OffsetGuess, Name, &TheModule); } return IvarOffsetGV; } diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp index 2dbd54a259..3434064d26 100644 --- a/lib/CodeGen/CGObjCMac.cpp +++ b/lib/CodeGen/CGObjCMac.cpp @@ -1646,7 +1646,8 @@ llvm::Constant *CGObjCMac::GetOrEmitProtocol(const ObjCProtocolDecl *PD) { Entry->setInitializer(Init); } else { Entry = - new llvm::GlobalVariable(ObjCTypes.ProtocolTy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ProtocolTy, false, llvm::GlobalValue::InternalLinkage, Init, std::string("\01L_OBJC_PROTOCOL_")+ProtocolName, @@ -1669,7 +1670,8 @@ llvm::Constant *CGObjCMac::GetOrEmitProtocolRef(const ObjCProtocolDecl *PD) { // reference or not. At module finalization we add the empty // contents for protocols which were referenced but never defined. Entry = - new llvm::GlobalVariable(ObjCTypes.ProtocolTy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ProtocolTy, false, llvm::GlobalValue::ExternalLinkage, 0, "\01L_OBJC_PROTOCOL_" + PD->getNameAsString(), @@ -2100,7 +2102,8 @@ llvm::Constant *CGObjCMac::EmitMetaClass(const ObjCImplementationDecl *ID, GV->setLinkage(llvm::GlobalValue::InternalLinkage); GV->setInitializer(Init); } else { - GV = new llvm::GlobalVariable(ObjCTypes.ClassTy, false, + GV = new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ClassTy, false, llvm::GlobalValue::InternalLinkage, Init, Name, &CGM.getModule()); @@ -2130,7 +2133,8 @@ llvm::Constant *CGObjCMac::EmitMetaClassRef(const ObjCInterfaceDecl *ID) { } else { // Generate as an external reference to keep a consistent // module. This will be patched up when we emit the metaclass. - return new llvm::GlobalVariable(ObjCTypes.ClassTy, false, + return new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ClassTy, false, llvm::GlobalValue::ExternalLinkage, 0, Name, @@ -2311,7 +2315,7 @@ CGObjCCommonMac::CreateMetadataVar(const std::string &Name, bool AddToUsed) { const llvm::Type *Ty = Init->getType(); llvm::GlobalVariable *GV = - new llvm::GlobalVariable(Ty, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), Ty, false, llvm::GlobalValue::InternalLinkage, Init, Name, @@ -4071,7 +4075,8 @@ void CGObjCNonFragileABIMac::AddModuleClassList(const Symbols); llvm::GlobalVariable *GV = - new llvm::GlobalVariable(Init->getType(), false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + Init->getType(), false, llvm::GlobalValue::InternalLinkage, Init, SymbolName, @@ -4117,7 +4122,8 @@ void CGObjCNonFragileABIMac::FinishNonFragileABIModule() { llvm::ArrayType::get(ObjCTypes.IntTy, 2), Values); llvm::GlobalVariable *IMGV = - new llvm::GlobalVariable(Init->getType(), false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + Init->getType(), false, llvm::GlobalValue::InternalLinkage, Init, "\01L_OBJC_IMAGE_INFO", @@ -4261,7 +4267,8 @@ llvm::GlobalVariable * CGObjCNonFragileABIMac::BuildClassRoTInitializer( llvm::Constant *Init = llvm::ConstantStruct::get(ObjCTypes.ClassRonfABITy, Values); llvm::GlobalVariable *CLASS_RO_GV = - new llvm::GlobalVariable(ObjCTypes.ClassRonfABITy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ClassRonfABITy, false, llvm::GlobalValue::InternalLinkage, Init, (flags & CLS_META) ? @@ -4336,6 +4343,7 @@ void CGObjCNonFragileABIMac::GenerateClass(const ObjCImplementationDecl *ID) { std::string ClassName = ID->getNameAsString(); if (!ObjCEmptyCacheVar) { ObjCEmptyCacheVar = new llvm::GlobalVariable( + CGM.getModule().getContext(), ObjCTypes.CacheTy, false, llvm::GlobalValue::ExternalLinkage, @@ -4344,6 +4352,7 @@ void CGObjCNonFragileABIMac::GenerateClass(const ObjCImplementationDecl *ID) { &CGM.getModule()); ObjCEmptyVtableVar = new llvm::GlobalVariable( + CGM.getModule().getContext(), ObjCTypes.ImpnfABITy, false, llvm::GlobalValue::ExternalLinkage, @@ -4453,6 +4462,7 @@ llvm::Value *CGObjCNonFragileABIMac::GenerateProtocolRef(CGBuilderTy &Builder, if (PTGV) return Builder.CreateLoad(PTGV, false, "tmp"); PTGV = new llvm::GlobalVariable( + CGM.getModule().getContext(), Init->getType(), false, llvm::GlobalValue::WeakAnyLinkage, Init, @@ -4538,7 +4548,8 @@ void CGObjCNonFragileABIMac::GenerateCategory(const ObjCCategoryImplDecl *OCD) { llvm::ConstantStruct::get(ObjCTypes.CategorynfABITy, Values); llvm::GlobalVariable *GCATV - = new llvm::GlobalVariable(ObjCTypes.CategorynfABITy, + = new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.CategorynfABITy, false, llvm::GlobalValue::InternalLinkage, Init, @@ -4601,7 +4612,8 @@ llvm::Constant *CGObjCNonFragileABIMac::EmitMethodList( llvm::Constant *Init = llvm::ConstantStruct::get(Values); llvm::GlobalVariable *GV = - new llvm::GlobalVariable(Init->getType(), false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + Init->getType(), false, llvm::GlobalValue::InternalLinkage, Init, Name, @@ -4630,7 +4642,7 @@ llvm::GlobalVariable * CGObjCNonFragileABIMac::ObjCIvarOffsetVariable( CGM.getModule().getGlobalVariable(Name); if (!IvarOffsetGV) IvarOffsetGV = - new llvm::GlobalVariable(ObjCTypes.LongTy, + new llvm::GlobalVariable(CGM.getModule().getContext(), ObjCTypes.LongTy, false, llvm::GlobalValue::ExternalLinkage, 0, @@ -4729,7 +4741,8 @@ llvm::Constant *CGObjCNonFragileABIMac::EmitIvarList( llvm::Constant *Init = llvm::ConstantStruct::get(Values); const char *Prefix = "\01l_OBJC_$_INSTANCE_VARIABLES_"; llvm::GlobalVariable *GV = - new llvm::GlobalVariable(Init->getType(), false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + Init->getType(), false, llvm::GlobalValue::InternalLinkage, Init, Prefix + OID->getNameAsString(), @@ -4752,7 +4765,8 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocolRef( // reference or not. At module finalization we add the empty // contents for protocols which were referenced but never defined. Entry = - new llvm::GlobalVariable(ObjCTypes.ProtocolnfABITy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ProtocolnfABITy, false, llvm::GlobalValue::ExternalLinkage, 0, "\01l_OBJC_PROTOCOL_$_" + PD->getNameAsString(), @@ -4856,7 +4870,8 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocol( Entry->setInitializer(Init); } else { Entry = - new llvm::GlobalVariable(ObjCTypes.ProtocolnfABITy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ProtocolnfABITy, false, llvm::GlobalValue::WeakAnyLinkage, Init, std::string("\01l_OBJC_PROTOCOL_$_")+ProtocolName, @@ -4870,6 +4885,7 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocol( // Use this protocol meta-data to build protocol list table in section // __DATA, __objc_protolist llvm::GlobalVariable *PTGV = new llvm::GlobalVariable( + CGM.getModule().getContext(), ObjCTypes.ProtocolnfABIPtrTy, false, llvm::GlobalValue::WeakAnyLinkage, Entry, @@ -4923,7 +4939,8 @@ CGObjCNonFragileABIMac::EmitProtocolList(const std::string &Name, ProtocolRefs); llvm::Constant *Init = llvm::ConstantStruct::get(Values); - GV = new llvm::GlobalVariable(Init->getType(), false, + GV = new llvm::GlobalVariable(CGM.getModule().getContext(), + Init->getType(), false, llvm::GlobalValue::InternalLinkage, Init, Name, @@ -5066,7 +5083,8 @@ CodeGen::RValue CGObjCNonFragileABIMac::EmitMessageSend( Values[0] = Fn; Values[1] = GetMethodVarName(Sel); llvm::Constant *Init = llvm::ConstantStruct::get(Values); - GV = new llvm::GlobalVariable(Init->getType(), false, + GV = new llvm::GlobalVariable(CGM.getModule().getContext(), + Init->getType(), false, llvm::GlobalValue::WeakAnyLinkage, Init, Name, @@ -5114,7 +5132,8 @@ CGObjCNonFragileABIMac::GetClassGlobal(const std::string &Name) { llvm::GlobalVariable *GV = CGM.getModule().getGlobalVariable(Name); if (!GV) { - GV = new llvm::GlobalVariable(ObjCTypes.ClassnfABITy, false, + GV = new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ClassnfABITy, false, llvm::GlobalValue::ExternalLinkage, 0, Name, &CGM.getModule()); } @@ -5130,7 +5149,8 @@ llvm::Value *CGObjCNonFragileABIMac::EmitClassRef(CGBuilderTy &Builder, std::string ClassName(getClassSymbolPrefix() + ID->getNameAsString()); llvm::GlobalVariable *ClassGV = GetClassGlobal(ClassName); Entry = - new llvm::GlobalVariable(ObjCTypes.ClassnfABIPtrTy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ClassnfABIPtrTy, false, llvm::GlobalValue::InternalLinkage, ClassGV, "\01L_OBJC_CLASSLIST_REFERENCES_$_", @@ -5154,7 +5174,8 @@ CGObjCNonFragileABIMac::EmitSuperClassRef(CGBuilderTy &Builder, std::string ClassName(getClassSymbolPrefix() + ID->getNameAsString()); llvm::GlobalVariable *ClassGV = GetClassGlobal(ClassName); Entry = - new llvm::GlobalVariable(ObjCTypes.ClassnfABIPtrTy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ClassnfABIPtrTy, false, llvm::GlobalValue::InternalLinkage, ClassGV, "\01L_OBJC_CLASSLIST_SUP_REFS_$_", @@ -5181,7 +5202,8 @@ llvm::Value *CGObjCNonFragileABIMac::EmitMetaClassRef(CGBuilderTy &Builder, std::string MetaClassName(getMetaclassSymbolPrefix() + ID->getNameAsString()); llvm::GlobalVariable *MetaClassGV = GetClassGlobal(MetaClassName); Entry = - new llvm::GlobalVariable(ObjCTypes.ClassnfABIPtrTy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.ClassnfABIPtrTy, false, llvm::GlobalValue::InternalLinkage, MetaClassGV, "\01L_OBJC_CLASSLIST_SUP_REFS_$_", @@ -5269,7 +5291,8 @@ llvm::Value *CGObjCNonFragileABIMac::EmitSelector(CGBuilderTy &Builder, llvm::ConstantExpr::getBitCast(GetMethodVarName(Sel), ObjCTypes.SelectorPtrTy); Entry = - new llvm::GlobalVariable(ObjCTypes.SelectorPtrTy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.SelectorPtrTy, false, llvm::GlobalValue::InternalLinkage, Casted, "\01L_OBJC_SELECTOR_REFERENCES_", &CGM.getModule()); @@ -5469,7 +5492,8 @@ CGObjCNonFragileABIMac::EmitTryOrSynchronizedStmt(CodeGen::CodeGenFunction &CGF, CGM.getModule().getGlobalVariable("OBJC_EHTYPE_id"); if (!IDEHType) IDEHType = - new llvm::GlobalVariable(ObjCTypes.EHTypeTy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.EHTypeTy, false, llvm::GlobalValue::ExternalLinkage, 0, "OBJC_EHTYPE_id", &CGM.getModule()); SelectorArgs.push_back(IDEHType); @@ -5686,7 +5710,8 @@ CGObjCNonFragileABIMac::GetInterfaceEHType(const ObjCInterfaceDecl *ID, // attribute, emit an external reference. if (hasObjCExceptionAttribute(CGM.getContext(), ID)) return Entry = - new llvm::GlobalVariable(ObjCTypes.EHTypeTy, false, + new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.EHTypeTy, false, llvm::GlobalValue::ExternalLinkage, 0, (std::string("OBJC_EHTYPE_$_") + @@ -5702,7 +5727,8 @@ CGObjCNonFragileABIMac::GetInterfaceEHType(const ObjCInterfaceDecl *ID, llvm::GlobalVariable *VTableGV = CGM.getModule().getGlobalVariable(VTableName); if (!VTableGV) - VTableGV = new llvm::GlobalVariable(ObjCTypes.Int8PtrTy, false, + VTableGV = new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.Int8PtrTy, false, llvm::GlobalValue::ExternalLinkage, 0, VTableName, &CGM.getModule()); @@ -5717,7 +5743,8 @@ CGObjCNonFragileABIMac::GetInterfaceEHType(const ObjCInterfaceDecl *ID, if (Entry) { Entry->setInitializer(Init); } else { - Entry = new llvm::GlobalVariable(ObjCTypes.EHTypeTy, false, + Entry = new llvm::GlobalVariable(CGM.getModule().getContext(), + ObjCTypes.EHTypeTy, false, llvm::GlobalValue::WeakAnyLinkage, Init, (std::string("OBJC_EHTYPE_$_") + diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index d88a37a45b..8540028d4f 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/lib/CodeGen/CodeGenModule.cpp @@ -216,7 +216,7 @@ void CodeGenModule::EmitCtorList(const CtorList &Fns, const char *GlobalName) { if (!Ctors.empty()) { llvm::ArrayType *AT = llvm::ArrayType::get(CtorStructTy, Ctors.size()); - new llvm::GlobalVariable(AT, false, + new llvm::GlobalVariable(TheModule.getContext(), AT, false, llvm::GlobalValue::AppendingLinkage, llvm::ConstantArray::get(AT, Ctors), GlobalName, @@ -234,7 +234,7 @@ void CodeGenModule::EmitAnnotations() { Annotations.size()), Annotations); llvm::GlobalValue *gv = - new llvm::GlobalVariable(Array->getType(), false, + new llvm::GlobalVariable(TheModule.getContext(), Array->getType(), false, llvm::GlobalValue::AppendingLinkage, Array, "llvm.global.annotations", &TheModule); gv->setSection("llvm.metadata"); @@ -436,7 +436,7 @@ void CodeGenModule::EmitLLVMUsed() { llvm::ArrayType *ATy = llvm::ArrayType::get(i8PTy, UsedArray.size()); llvm::GlobalVariable *GV = - new llvm::GlobalVariable(ATy, false, + new llvm::GlobalVariable(getModule().getContext(), ATy, false, llvm::GlobalValue::AppendingLinkage, llvm::ConstantArray::get(ATy, UsedArray), "llvm.used", &getModule()); @@ -494,12 +494,12 @@ llvm::Constant *CodeGenModule::EmitAnnotateAttr(llvm::GlobalValue *GV, // created to hold the bytes of the strings. const char *StringPrefix = getContext().Target.getStringSymbolPrefix(true); llvm::GlobalValue *annoGV = - new llvm::GlobalVariable(anno->getType(), false, + new llvm::GlobalVariable(M->getContext(), anno->getType(), false, llvm::GlobalValue::InternalLinkage, anno, GV->getName() + StringPrefix, M); // translation unit name string, emitted into the llvm.metadata section. llvm::GlobalValue *unitGV = - new llvm::GlobalVariable(unit->getType(), false, + new llvm::GlobalVariable(M->getContext(), unit->getType(), false, llvm::GlobalValue::InternalLinkage, unit, StringPrefix, M); @@ -719,7 +719,8 @@ llvm::Constant *CodeGenModule::GetOrCreateLLVMGlobal(const char *MangledName, } llvm::GlobalVariable *GV = - new llvm::GlobalVariable(Ty->getElementType(), false, + new llvm::GlobalVariable(getModule().getContext(), + Ty->getElementType(), false, llvm::GlobalValue::ExternalLinkage, 0, "", &getModule(), false, Ty->getAddressSpace()); @@ -1245,7 +1246,7 @@ GetAddrOfConstantCFString(const StringLiteral *Literal) { // likely see an opaque error message. This is a general issue with relying // on particular names. llvm::GlobalVariable *GV = - new llvm::GlobalVariable(Ty, false, + new llvm::GlobalVariable(getModule().getContext(), Ty, false, llvm::GlobalVariable::ExternalLinkage, 0, "__CFConstantStringClassReference", &getModule()); @@ -1299,7 +1300,7 @@ GetAddrOfConstantCFString(const StringLiteral *Literal) { isConstant = true; } llvm::GlobalVariable *GV = - new llvm::GlobalVariable(C->getType(), isConstant, + new llvm::GlobalVariable(getModule().getContext(), C->getType(), isConstant, llvm::GlobalValue::InternalLinkage, C, Prefix, &getModule()); if (Sect) @@ -1321,7 +1322,7 @@ GetAddrOfConstantCFString(const StringLiteral *Literal) { // The struct. C = llvm::ConstantStruct::get(STy, Fields); - GV = new llvm::GlobalVariable(C->getType(), true, + GV = new llvm::GlobalVariable(getModule().getContext(), C->getType(), true, llvm::GlobalVariable::InternalLinkage, C, getContext().Target.getCFStringSymbolPrefix(), &getModule()); @@ -1382,7 +1383,8 @@ static llvm::Constant *GenerateStringLiteral(const std::string &str, llvm::Constant *C = llvm::ConstantArray::get(str, false); // Create a global variable for this string - return new llvm::GlobalVariable(C->getType(), constant, + return new llvm::GlobalVariable(CGM.getModule().getContext(), + C->getType(), constant, llvm::GlobalValue::InternalLinkage, C, GlobalName, &CGM.getModule()); } -- 2.40.0