comparison gen/runtime.cpp @ 286:a3b7c19c866c trunk

[svn r307] Fixed: multidimensional new expressions now work. Eg.: auto ma = new int[][] (3,9);
author lindquist
date Sat, 21 Jun 2008 04:47:14 +0200
parents a95056b3c996
children d59c363fccad
comparison
equal deleted inserted replaced
285:297690b5d4a5 286:a3b7c19c866c
264 const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false); 264 const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false);
265 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M); 265 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M);
266 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M); 266 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M);
267 } 267 }
268 268
269 // void* _d_newarraymT(TypeInfo ti, size_t length, size_t* dims)
270 // void* _d_newarraymiT(TypeInfo ti, size_t length, size_t* dims)
271 {
272 std::string fname("_d_newarraymT");
273 std::string fname2("_d_newarraymiT");
274 std::vector<const LLType*> types;
275 types.push_back(typeInfoTy);
276 types.push_back(sizeTy);
277 types.push_back(rt_ptr(sizeTy));
278 const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false);
279 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M);
280 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M);
281 }
282
269 // void* _d_arraysetlengthT(TypeInfo ti, size_t newlength, size_t plength, void* pdata) 283 // void* _d_arraysetlengthT(TypeInfo ti, size_t newlength, size_t plength, void* pdata)
270 // void* _d_arraysetlengthiT(TypeInfo ti, size_t newlength, size_t plength, void* pdata) 284 // void* _d_arraysetlengthiT(TypeInfo ti, size_t newlength, size_t plength, void* pdata)
271 { 285 {
272 std::string fname("_d_arraysetlengthT"); 286 std::string fname("_d_arraysetlengthT");
273 std::string fname2("_d_arraysetlengthiT"); 287 std::string fname2("_d_arraysetlengthiT");