Mercurial > projects > ldc
diff gen/runtime.cpp @ 591:e6bcc4d9e5ff
Add _d_newarrayvT and _d_newarraymvT to create arrays without initialization.
Adjust DtoNewDynArray to use DtoArrayInit for initialization of new arrays.
Make Type::tvoid->defaultInit() not error.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sun, 14 Sep 2008 10:13:50 +0200 |
parents | 192b82878b78 |
children | df196c8dea26 |
line wrap: on
line diff
--- a/gen/runtime.cpp Fri Sep 12 13:11:32 2008 +0200 +++ b/gen/runtime.cpp Sun Sep 14 10:13:50 2008 +0200 @@ -237,22 +237,27 @@ // void* _d_newarrayT(TypeInfo ti, size_t length) // void* _d_newarrayiT(TypeInfo ti, size_t length) + // void* _d_newarrayvT(TypeInfo ti, size_t length) { std::string fname("_d_newarrayT"); std::string fname2("_d_newarrayiT"); + std::string fname3("_d_newarrayvT"); std::vector<const LLType*> types; types.push_back(typeInfoTy); types.push_back(sizeTy); const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false); llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M); llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M); + llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname3, M); } // void* _d_newarraymT(TypeInfo ti, size_t length, size_t* dims) // void* _d_newarraymiT(TypeInfo ti, size_t length, size_t* dims) + // void* _d_newarraymvT(TypeInfo ti, size_t length, size_t* dims) { std::string fname("_d_newarraymT"); std::string fname2("_d_newarraymiT"); + std::string fname3("_d_newarraymvT"); std::vector<const LLType*> types; types.push_back(typeInfoTy); types.push_back(sizeTy); @@ -260,6 +265,7 @@ const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false); llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M); llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M); + llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname3, M); } // void* _d_arraysetlengthT(TypeInfo ti, size_t newlength, size_t plength, void* pdata)