comparison gen/tocall.cpp @ 1554:d6e8d5db259f

LLVMContext changes up to r77366
author Benjamin Kramer <benny.kra@gmail.com>
date Thu, 30 Jul 2009 15:25:10 +0200
parents 7fcb72d518f6
children 755abafbf25d
comparison
equal deleted inserted replaced
1553:f55ca8a1598c 1554:d6e8d5db259f
197 Expression* argexp = (Expression*)arguments->data[i]; 197 Expression* argexp = (Expression*)arguments->data[i];
198 vtypeinfos.push_back(DtoTypeInfoOf(argexp->type)); 198 vtypeinfos.push_back(DtoTypeInfoOf(argexp->type));
199 } 199 }
200 200
201 // apply initializer 201 // apply initializer
202 LLConstant* tiinits = llvm::ConstantArray::get(typeinfoarraytype, vtypeinfos); 202 LLConstant* tiinits = LLConstantArray::get(typeinfoarraytype, vtypeinfos);
203 typeinfomem->setInitializer(tiinits); 203 typeinfomem->setInitializer(tiinits);
204 204
205 // put data in d-array 205 // put data in d-array
206 std::vector<LLConstant*> pinits; 206 std::vector<LLConstant*> pinits;
207 pinits.push_back(DtoConstSize_t(vtype->getNumElements())); 207 pinits.push_back(DtoConstSize_t(vtype->getNumElements()));
208 pinits.push_back(llvm::ConstantExpr::getBitCast(typeinfomem, getPtrToType(typeinfotype))); 208 pinits.push_back(llvm::ConstantExpr::getBitCast(typeinfomem, getPtrToType(typeinfotype)));
209 const LLType* tiarrty = DtoType(Type::typeinfo->type->arrayOf()); 209 const LLType* tiarrty = DtoType(Type::typeinfo->type->arrayOf());
210 tiinits = gIR->context().getConstantStruct(pinits); 210 tiinits = LLConstantStruct::get(pinits);
211 LLValue* typeinfoarrayparam = new llvm::GlobalVariable(*gIR->module, tiarrty, 211 LLValue* typeinfoarrayparam = new llvm::GlobalVariable(*gIR->module, tiarrty,
212 true, llvm::GlobalValue::InternalLinkage, tiinits, "._arguments.array"); 212 true, llvm::GlobalValue::InternalLinkage, tiinits, "._arguments.array");
213 213
214 llvm::AttributeWithIndex Attr; 214 llvm::AttributeWithIndex Attr;
215 // specify arguments 215 // specify arguments