Call d_delarray_t() instead of _d_delarray()

This commit is contained in:
Alexey Prokhin
2010-12-19 15:51:00 +03:00
parent 48d89916ef
commit 44593f6220
2 changed files with 41 additions and 13 deletions

View File

@@ -442,21 +442,32 @@ static void LLVM_D_BuildRuntimeModule()
->setAttributes(Attr_NoAlias);
}
// D1: void _d_delarray(size_t plength, void* pdata)
// D2: void _d_delarray(void[]* array)
{
llvm::StringRef fname("_d_delarray");
std::vector<const LLType*> types;
#if DMDV2
// void _d_delarray_t(Array *p, TypeInfo ti)
{
llvm::StringRef fname("_d_delarray_t");
std::vector<const LLType*> types;
types.push_back(voidArrayPtrTy);
#else
types.push_back(sizeTy);
types.push_back(voidPtrTy);
#endif
types.push_back(typeInfoTy);
const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false);
llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M);
}
#else
// void _d_delarray(size_t plength, void* pdata)
{
llvm::StringRef fname("_d_delarray");
std::vector<const LLType*> types;
types.push_back(sizeTy);
types.push_back(voidPtrTy);
const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false);
llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M);
}
#endif
// D1:
// void _d_delmemory(void* p)
// void _d_delinterface(void* p)