Mercurial > projects > ldc
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"); |