# HG changeset patch # User Frits van Bommel # Date 1243891067 -7200 # Node ID 83bdf7bed9c53e4bd4064f0fa83268873d9b913f # Parent 301a916eceefeef54b993072ea7f5c2c404e7656 Fix a type mismatch in ModuleInfo generation. diff -r 301a916eceef -r 83bdf7bed9c5 gen/tollvm.cpp --- a/gen/tollvm.cpp Mon Jun 01 01:28:18 2009 +0200 +++ b/gen/tollvm.cpp Mon Jun 01 23:17:47 2009 +0200 @@ -403,6 +403,14 @@ ////////////////////////////////////////////////////////////////////////////////////////// +LLConstant* DtoGEPi(LLConstant* ptr, unsigned i0, unsigned i1) +{ + LLValue* v[2] = { DtoConstUint(i0), DtoConstUint(i1) }; + return llvm::ConstantExpr::getGetElementPtr(ptr, v, 2); +} + +////////////////////////////////////////////////////////////////////////////////////////// + void DtoMemSetZero(LLValue* dst, LLValue* nbytes) { dst = DtoBitCast(dst,getVoidPtrType()); diff -r 301a916eceef -r 83bdf7bed9c5 gen/tollvm.h --- a/gen/tollvm.h Mon Jun 01 01:28:18 2009 +0200 +++ b/gen/tollvm.h Mon Jun 01 23:17:47 2009 +0200 @@ -48,6 +48,7 @@ LLValue* DtoGEPi1(LLValue* ptr, unsigned i0, const char* var=NULL, llvm::BasicBlock* bb=NULL); LLValue* DtoGEPi(LLValue* ptr, unsigned i0, unsigned i1, const char* var=NULL, llvm::BasicBlock* bb=NULL); +LLConstant* DtoGEPi(LLConstant* ptr, unsigned i0, unsigned i1); // to constant helpers LLConstantInt* DtoConstSize_t(uint64_t); diff -r 301a916eceef -r 83bdf7bed9c5 gen/toobj.cpp --- a/gen/toobj.cpp Mon Jun 01 01:28:18 2009 +0200 +++ b/gen/toobj.cpp Mon Jun 01 23:17:47 2009 +0200 @@ -715,11 +715,11 @@ 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); - c = DtoBitCast(m_gvar, getPtrToType(classinfoTy)); + c = DtoGEPi(m_gvar, 0, 0); c = DtoConstSlice(DtoConstSize_t(classInits.size()), c); } else - c = DtoConstSlice( DtoConstSize_t(0), getNullValue(getPtrToType(classinfoTy)) ); + c = DtoConstSlice( DtoConstSize_t(0), getNullValue(getPtrToType(getPtrToType(classinfoTy))) ); b.push(c); // flags (4 means MIstandalone)