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)