# HG changeset patch # User Christian Kamm # Date 1247254202 -7200 # Node ID ad7f2f1862d6bffc280ea434deb05b24bc7adc79 # Parent 15f1707721faec47b900f921eb35fb05840cc7ff Adjust LDC to work with the LLVMContext LLVM changes. This means we now require a fairly new LLVM revision. I use 75234. diff -r 15f1707721fa -r ad7f2f1862d6 gen/arrays.cpp --- a/gen/arrays.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/arrays.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -322,7 +322,7 @@ // for dynamic array we need to make a global with the data, so we have a pointer for the dynamic array // Important: don't make the gvar constant, since this const initializer might // be used as an initializer for a static T[] - where modifying contents is allowed. - LLGlobalVariable* gvar = new LLGlobalVariable(constarr->getType(), false, LLGlobalValue::InternalLinkage, constarr, ".constarray", gIR->module); + LLGlobalVariable* gvar = new LLGlobalVariable(*gIR->module, constarr->getType(), false, LLGlobalValue::InternalLinkage, constarr, ".constarray"); LLConstant* idxs[2] = { DtoConstUint(0), DtoConstUint(0) }; LLConstant* gep = llvm::ConstantExpr::getGetElementPtr(gvar,idxs,2); diff -r 15f1707721fa -r ad7f2f1862d6 gen/complex.cpp --- a/gen/complex.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/complex.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -396,8 +396,8 @@ cmpop = llvm::FCmpInst::FCMP_UNE; // (l.re==r.re && l.im==r.im) or (l.re!=r.re || l.im!=r.im) - LLValue* b1 = new llvm::FCmpInst(cmpop, lhs_re, rhs_re, "tmp", gIR->scopebb()); - LLValue* b2 = new llvm::FCmpInst(cmpop, lhs_im, rhs_im, "tmp", gIR->scopebb()); + LLValue* b1 = gIR->ir->CreateFCmp(cmpop, lhs_re, rhs_re, "tmp"); + LLValue* b2 = gIR->ir->CreateFCmp(cmpop, lhs_im, rhs_im, "tmp"); if (op == TOKequal) return gIR->ir->CreateAnd(b1,b2,"tmp"); diff -r 15f1707721fa -r ad7f2f1862d6 gen/declarations.cpp --- a/gen/declarations.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/declarations.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -133,7 +133,7 @@ llvm::GlobalValue::LinkageTypes _linkage = DtoLinkage(this); std::string _name(mangle()); - llvm::GlobalVariable* gvar = new llvm::GlobalVariable(_type,_isconst,_linkage,NULL,_name,gIR->module); + llvm::GlobalVariable* gvar = new llvm::GlobalVariable(*gIR->module,_type,_isconst,_linkage,NULL,_name); this->ir.irGlobal->value = gvar; // set the alignment diff -r 15f1707721fa -r ad7f2f1862d6 gen/irstate.cpp --- a/gen/irstate.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/irstate.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -22,15 +22,23 @@ ////////////////////////////////////////////////////////////////////////////////////////// IRScope::IRScope() + : builder(llvm::getGlobalContext()) { begin = end = NULL; } IRScope::IRScope(llvm::BasicBlock* b, llvm::BasicBlock* e) + : builder(b) { begin = b; end = e; - builder.SetInsertPoint(b); +} + +const IRScope& IRScope::operator=(const IRScope& rhs) +{ + begin = rhs.begin; + end = rhs.end; + builder.SetInsertPoint(begin); } ////////////////////////////////////////////////////////////////////////////////////////// diff -r 15f1707721fa -r ad7f2f1862d6 gen/irstate.h --- a/gen/irstate.h Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/irstate.h Fri Jul 10 21:30:02 2009 +0200 @@ -48,6 +48,8 @@ IRScope(); IRScope(llvm::BasicBlock* b, llvm::BasicBlock* e); + + const IRScope& operator=(const IRScope& rhs); }; struct IRBuilderHelper diff -r 15f1707721fa -r ad7f2f1862d6 gen/passes/SimplifyDRuntimeCalls.cpp --- a/gen/passes/SimplifyDRuntimeCalls.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/passes/SimplifyDRuntimeCalls.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -355,7 +355,7 @@ } bool SimplifyDRuntimeCalls::runOnce(Function &F, const TargetData& TD, AliasAnalysis& AA) { - IRBuilder<> Builder; + IRBuilder<> Builder(llvm::getGlobalContext()); bool Changed = false; for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) { diff -r 15f1707721fa -r ad7f2f1862d6 gen/rttibuilder.cpp --- a/gen/rttibuilder.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/rttibuilder.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -79,7 +79,7 @@ initname.append(".rtti.voidarr.data"); LLGlobalVariable* G = new llvm::GlobalVariable( - CI->getType(), true, TYPEINFO_LINKAGE_TYPE, CI, initname, gIR->module); + *gIR->module, CI->getType(), true, TYPEINFO_LINKAGE_TYPE, CI, initname); G->setAlignment(valtype->alignsize()); push_void_array(getTypePaddedSize(CI->getType()), G); @@ -98,7 +98,7 @@ initname.append(".data"); LLGlobalVariable* G = new llvm::GlobalVariable( - CI->getType(), true, TYPEINFO_LINKAGE_TYPE, CI, initname, gIR->module); + *gIR->module, CI->getType(), true, TYPEINFO_LINKAGE_TYPE, CI, initname); G->setAlignment(valtype->alignsize()); push_array(dim, DtoBitCast(G, DtoType(valtype->pointerTo()))); diff -r 15f1707721fa -r ad7f2f1862d6 gen/runtime.cpp --- a/gen/runtime.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/runtime.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -116,7 +116,7 @@ } const llvm::PointerType* t = g->getType(); - return new llvm::GlobalVariable(t->getElementType(),g->isConstant(),g->getLinkage(),NULL,g->getName(),target); + return new llvm::GlobalVariable(*target, t->getElementType(),g->isConstant(),g->getLinkage(),NULL,g->getName()); } ////////////////////////////////////////////////////////////////////////////////////////////////// diff -r 15f1707721fa -r ad7f2f1862d6 gen/statements.cpp --- a/gen/statements.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/statements.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -818,7 +818,7 @@ const LLType* elemTy = DtoType(condition->type); const llvm::ArrayType* arrTy = llvm::ArrayType::get(elemTy, inits.size()); LLConstant* arrInit = llvm::ConstantArray::get(arrTy, inits); - llvm::GlobalVariable* arr = new llvm::GlobalVariable(arrTy, true, llvm::GlobalValue::InternalLinkage, arrInit, ".string_switch_table_data", gIR->module); + llvm::GlobalVariable* arr = new llvm::GlobalVariable(*gIR->module, arrTy, true, llvm::GlobalValue::InternalLinkage, arrInit, ".string_switch_table_data"); const LLType* elemPtrTy = getPtrToType(elemTy); LLConstant* arrPtr = llvm::ConstantExpr::getBitCast(arr, elemPtrTy); @@ -1380,7 +1380,7 @@ static LLConstant* generate_unique_critical_section() { const LLType* Mty = DtoMutexType(); - return new llvm::GlobalVariable(Mty, false, llvm::GlobalValue::InternalLinkage, LLConstant::getNullValue(Mty), ".uniqueCS", gIR->module); + return new llvm::GlobalVariable(*gIR->module, Mty, false, llvm::GlobalValue::InternalLinkage, LLConstant::getNullValue(Mty), ".uniqueCS"); } void SynchronizedStatement::toIR(IRState* p) diff -r 15f1707721fa -r ad7f2f1862d6 gen/tocall.cpp --- a/gen/tocall.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/tocall.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -187,7 +187,7 @@ const LLArrayType* typeinfoarraytype = LLArrayType::get(typeinfotype,vtype->getNumElements()); llvm::GlobalVariable* typeinfomem = - new llvm::GlobalVariable(typeinfoarraytype, true, llvm::GlobalValue::InternalLinkage, NULL, "._arguments.storage", gIR->module); + new llvm::GlobalVariable(*gIR->module, typeinfoarraytype, true, llvm::GlobalValue::InternalLinkage, NULL, "._arguments.storage"); if (Logger::enabled()) Logger::cout() << "_arguments storage: " << *typeinfomem << '\n'; @@ -208,8 +208,8 @@ pinits.push_back(llvm::ConstantExpr::getBitCast(typeinfomem, getPtrToType(typeinfotype))); const LLType* tiarrty = DtoType(Type::typeinfo->type->arrayOf()); tiinits = llvm::ConstantStruct::get(pinits); - LLValue* typeinfoarrayparam = new llvm::GlobalVariable(tiarrty, - true, llvm::GlobalValue::InternalLinkage, tiinits, "._arguments.array", gIR->module); + LLValue* typeinfoarrayparam = new llvm::GlobalVariable(*gIR->module, tiarrty, + true, llvm::GlobalValue::InternalLinkage, tiinits, "._arguments.array"); llvm::AttributeWithIndex Attr; // specify arguments diff -r 15f1707721fa -r ad7f2f1862d6 gen/todebug.cpp --- a/gen/todebug.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/todebug.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -38,7 +38,7 @@ LLGlobalValue::LinkageTypes linkage = linkonce ? DEBUGINFO_LINKONCE_LINKAGE_TYPE : LLGlobalValue::InternalLinkage; - LLGlobalVariable* gv = new LLGlobalVariable(type, true, linkage, NULL, name, gIR->module); + LLGlobalVariable* gv = new LLGlobalVariable(*gIR->module, type, true, linkage, NULL, name); gv->setSection("llvm.metadata"); return gv; } @@ -256,7 +256,7 @@ elems[1] = DBG_CAST(ptr); LLConstant* ca = LLConstantArray::get(at, elems); - members = new LLGlobalVariable(ca->getType(), true, LLGlobalValue::InternalLinkage, ca, ".array", gIR->module); + members = new LLGlobalVariable(*gIR->module, ca->getType(), true, LLGlobalValue::InternalLinkage, ca, ".array"); members->setSection("llvm.metadata"); name = DtoConstStringPtr(t->toChars(), "llvm.metadata"); @@ -330,7 +330,7 @@ const LLArrayType* at = LLArrayType::get(DBG_TYPE, elems.size()); LLConstant* ca = LLConstantArray::get(at, elems); - members = new LLGlobalVariable(ca->getType(), true, LLGlobalValue::InternalLinkage, ca, ".array", gIR->module); + members = new LLGlobalVariable(*gIR->module, ca->getType(), true, LLGlobalValue::InternalLinkage, ca, ".array"); members->setSection("llvm.metadata"); } diff -r 15f1707721fa -r ad7f2f1862d6 gen/toir.cpp --- a/gen/toir.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/toir.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -430,7 +430,7 @@ llvm::GlobalValue::LinkageTypes _linkage = llvm::GlobalValue::InternalLinkage; if (Logger::enabled()) Logger::cout() << "type: " << *at << "\ninit: " << *_init << '\n'; - llvm::GlobalVariable* gvar = new llvm::GlobalVariable(at,true,_linkage,_init,".str",gIR->module); + llvm::GlobalVariable* gvar = new llvm::GlobalVariable(*gIR->module,at,true,_linkage,_init,".str"); llvm::ConstantInt* zero = llvm::ConstantInt::get(LLType::Int32Ty, 0, false); LLConstant* idxs[2] = { zero, zero }; @@ -506,7 +506,7 @@ } llvm::GlobalValue::LinkageTypes _linkage = llvm::GlobalValue::InternalLinkage; - llvm::GlobalVariable* gvar = new llvm::GlobalVariable(_init->getType(),true,_linkage,_init,".str",gIR->module); + llvm::GlobalVariable* gvar = new llvm::GlobalVariable(*gIR->module,_init->getType(),true,_linkage,_init,".str"); llvm::ConstantInt* zero = llvm::ConstantInt::get(LLType::Int32Ty, 0, false); LLConstant* idxs[2] = { zero, zero }; @@ -2385,7 +2385,7 @@ // for dynamic arrays we need to put the initializer in a global, and build a constant dynamic array reference with the .ptr field pointing into this global // Important: don't make the global constant, since this const initializer might // be used as an initializer for a static T[] - where modifying contents is allowed. - LLConstant* globalstore = new LLGlobalVariable(arrtype, false, LLGlobalValue::InternalLinkage, initval, ".dynarrayStorage", p->module); + LLConstant* globalstore = new LLGlobalVariable(*gIR->module, arrtype, false, LLGlobalValue::InternalLinkage, initval, ".dynarrayStorage"); LLConstant* idxs[2] = { DtoConstUint(0), DtoConstUint(0) }; LLConstant* globalstorePtr = llvm::ConstantExpr::getGetElementPtr(globalstore, idxs, 2); diff -r 15f1707721fa -r ad7f2f1862d6 gen/tollvm.cpp --- a/gen/tollvm.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/tollvm.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -585,7 +585,7 @@ std::string s(str?str:""); LLConstant* init = llvm::ConstantArray::get(s, true); llvm::GlobalVariable* gvar = new llvm::GlobalVariable( - init->getType(), true,llvm::GlobalValue::InternalLinkage, init, ".str", gIR->module); + *gIR->module, init->getType(), true,llvm::GlobalValue::InternalLinkage, init, ".str"); LLConstant* idxs[2] = { DtoConstUint(0), DtoConstUint(0) }; return DtoConstSlice( DtoConstSize_t(s.length()), @@ -597,7 +597,7 @@ std::string s(str); LLConstant* init = llvm::ConstantArray::get(s, true); llvm::GlobalVariable* gvar = new llvm::GlobalVariable( - init->getType(), true,llvm::GlobalValue::InternalLinkage, init, ".str", gIR->module); + *gIR->module, init->getType(), true,llvm::GlobalValue::InternalLinkage, init, ".str"); if (section) gvar->setSection(section); LLConstant* idxs[2] = { DtoConstUint(0), DtoConstUint(0) }; return llvm::ConstantExpr::getGetElementPtr(gvar,idxs,2); diff -r 15f1707721fa -r ad7f2f1862d6 gen/toobj.cpp --- a/gen/toobj.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/toobj.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -172,7 +172,7 @@ { const LLArrayType* usedTy = LLArrayType::get(getVoidPtrType(), ir.usedArray.size()); LLConstant* usedInit = LLConstantArray::get(usedTy, ir.usedArray); - LLGlobalVariable* usedArray = new LLGlobalVariable(usedTy, true, LLGlobalValue::AppendingLinkage, usedInit, "llvm.used", ir.module); + LLGlobalVariable* usedArray = new LLGlobalVariable(*ir.module, usedTy, true, LLGlobalValue::AppendingLinkage, usedInit, "llvm.used"); usedArray->setSection("llvm.metadata"); } @@ -578,12 +578,12 @@ std::string thismrefname = "_D"; thismrefname += gIR->dmodule->mangle(); thismrefname += "11__moduleRefZ"; - LLGlobalVariable* thismref = new LLGlobalVariable(modulerefTy, false, LLGlobalValue::InternalLinkage, thismrefinit, thismrefname, gIR->module); + LLGlobalVariable* thismref = new LLGlobalVariable(*gIR->module, modulerefTy, false, LLGlobalValue::InternalLinkage, thismrefinit, thismrefname); // make sure _Dmodule_ref is declared LLGlobalVariable* mref = gIR->module->getNamedGlobal("_Dmodule_ref"); if (!mref) - mref = new LLGlobalVariable(getPtrToType(modulerefTy), false, LLGlobalValue::ExternalLinkage, NULL, "_Dmodule_ref", gIR->module); + mref = new LLGlobalVariable(*gIR->module, getPtrToType(modulerefTy), false, LLGlobalValue::ExternalLinkage, NULL, "_Dmodule_ref"); // make the function insert this moduleinfo as the beginning of the _Dmodule_ref linked list llvm::BasicBlock* bb = llvm::BasicBlock::Create("moduleinfoCtorEntry", ctor); @@ -680,7 +680,7 @@ m_name.append(m->mangle()); m_name.append("8__ModuleZ"); llvm::GlobalVariable* m_gvar = gIR->module->getGlobalVariable(m_name); - if (!m_gvar) m_gvar = new llvm::GlobalVariable(moduleinfoTy, false, llvm::GlobalValue::ExternalLinkage, NULL, m_name, gIR->module); + if (!m_gvar) m_gvar = new llvm::GlobalVariable(*gIR->module, moduleinfoTy, false, llvm::GlobalValue::ExternalLinkage, NULL, m_name); importInits.push_back(m_gvar); } // has import array? @@ -692,7 +692,7 @@ m_name.append(mangle()); m_name.append("9__importsZ"); llvm::GlobalVariable* m_gvar = gIR->module->getGlobalVariable(m_name); - if (!m_gvar) m_gvar = new llvm::GlobalVariable(importArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name, gIR->module); + if (!m_gvar) m_gvar = new llvm::GlobalVariable(*gIR->module, importArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name); c = llvm::ConstantExpr::getBitCast(m_gvar, getPtrToType(importArrTy->getElementType())); c = DtoConstSlice(DtoConstSize_t(importInits.size()), c); } @@ -743,7 +743,7 @@ m_name.append(mangle()); m_name.append("9__classesZ"); assert(gIR->module->getGlobalVariable(m_name) == NULL); - llvm::GlobalVariable* m_gvar = new llvm::GlobalVariable(classArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name, gIR->module); + llvm::GlobalVariable* m_gvar = new llvm::GlobalVariable(*gIR->module, classArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name); c = DtoGEPi(m_gvar, 0, 0); c = DtoConstSlice(DtoConstSize_t(classInits.size()), c); } @@ -811,7 +811,7 @@ // it makes no sense that the our own module info already exists! assert(!gIR->module->getGlobalVariable(MIname)); - llvm::GlobalVariable* gvar = new llvm::GlobalVariable(constMI->getType(), false, llvm::GlobalValue::ExternalLinkage, constMI, MIname, gIR->module); + llvm::GlobalVariable* gvar = new llvm::GlobalVariable(*gIR->module, constMI->getType(), false, llvm::GlobalValue::ExternalLinkage, constMI, MIname); // build the modulereference and ctor for registering it LLFunction* mictor = build_module_reference_and_ctor(gvar); @@ -834,5 +834,5 @@ std::vector appendInits(1, magicinit); LLConstant* appendInit = llvm::ConstantArray::get(appendArrTy, appendInits); std::string appendName("llvm.global_ctors"); - llvm::GlobalVariable* appendVar = new llvm::GlobalVariable(appendArrTy, true, llvm::GlobalValue::AppendingLinkage, appendInit, appendName, gIR->module); + llvm::GlobalVariable* appendVar = new llvm::GlobalVariable(*gIR->module, appendArrTy, true, llvm::GlobalValue::AppendingLinkage, appendInit, appendName); } diff -r 15f1707721fa -r ad7f2f1862d6 gen/typinf.cpp --- a/gen/typinf.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/gen/typinf.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -298,8 +298,8 @@ irg->value = gIR->module->getGlobalVariable(mangle); if (!irg->value) - irg->value = new llvm::GlobalVariable(irg->type.get(), true, - TYPEINFO_LINKAGE_TYPE, NULL, mangle, gIR->module); + irg->value = new llvm::GlobalVariable(*gIR->module, irg->type.get(), true, + TYPEINFO_LINKAGE_TYPE, NULL, mangle); tid->ir.irGlobal = irg; @@ -318,8 +318,8 @@ // Construct the metadata llvm::MDNode* metadata = llvm::MDNode::get(mdVals, TD_NumFields); // Insert it into the module - new llvm::GlobalVariable(metadata->getType(), true, - METADATA_LINKAGE_TYPE, metadata, metaname, gIR->module); + new llvm::GlobalVariable(*gIR->module, metadata->getType(), true, + METADATA_LINKAGE_TYPE, metadata, metaname); } #endif diff -r 15f1707721fa -r ad7f2f1862d6 ir/irclass.cpp --- a/ir/irclass.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/ir/irclass.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -40,7 +40,7 @@ const LLType* vtblTy = type->irtype->isClass()->getVtbl(); vtbl = new llvm::GlobalVariable( - vtblTy, true, _linkage, NULL, initname, gIR->module); + *gIR->module, vtblTy, true, _linkage, NULL, initname); return vtbl; } @@ -69,7 +69,7 @@ // classinfos cannot be constants since they're used a locks for synchronized classInfo = new llvm::GlobalVariable( - tc->getPA().get(), false, _linkage, NULL, initname, gIR->module); + *gIR->module, tc->getPA().get(), false, _linkage, NULL, initname); #ifdef USE_METADATA // Generate some metadata on this ClassInfo if it's for a class. @@ -89,8 +89,8 @@ // Construct the metadata llvm::MDNode* metadata = llvm::MDNode::get(mdVals, CD_NumFields); // Insert it into the module - new llvm::GlobalVariable(metadata->getType(), true, - METADATA_LINKAGE_TYPE, metadata, CD_PREFIX + initname, gIR->module); + new llvm::GlobalVariable(*gIR->module, metadata->getType(), true, + METADATA_LINKAGE_TYPE, metadata, CD_PREFIX + initname); } #endif @@ -122,7 +122,8 @@ name.append("16__interfaceInfosZ"); llvm::GlobalValue::LinkageTypes _linkage = DtoExternalLinkage(aggrdecl); - classInterfacesArray = new llvm::GlobalVariable(array_type, true, _linkage, NULL, name, classInfo); + classInterfacesArray = new llvm::GlobalVariable(*gIR->module, + array_type, true, _linkage, NULL, name); return classInterfacesArray; } @@ -396,12 +397,12 @@ mangle.append("6__vtblZ"); llvm::GlobalVariable* GV = new llvm::GlobalVariable( + *gIR->module, vtbl_constant->getType(), true, _linkage, vtbl_constant, - mangle, - gIR->module + mangle ); // insert into the vtbl map diff -r 15f1707721fa -r ad7f2f1862d6 ir/irmodule.cpp --- a/ir/irmodule.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/ir/irmodule.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -9,7 +9,7 @@ LLConstant* slice = DtoConstString(srcfilename); fileName = new llvm::GlobalVariable( - slice->getType(), true, LLGlobalValue::InternalLinkage, slice, ".modulefilename", gIR->module); + *gIR->module, slice->getType(), true, LLGlobalValue::InternalLinkage, slice, ".modulefilename"); } IrModule::~IrModule() diff -r 15f1707721fa -r ad7f2f1862d6 ir/irstruct.cpp --- a/ir/irstruct.cpp Thu Jul 09 21:13:19 2009 +0100 +++ b/ir/irstruct.cpp Fri Jul 10 21:30:02 2009 +0200 @@ -58,7 +58,7 @@ llvm::GlobalValue::LinkageTypes _linkage = DtoExternalLinkage(aggrdecl); init = new llvm::GlobalVariable( - init_pa.get(), true, _linkage, NULL, initname, gIR->module); + *gIR->module, init_pa.get(), true, _linkage, NULL, initname); // set alignment init->setAlignment(type->alignsize());