Mercurial > projects > ldc
changeset 707:1556a9328ba1
Fixed bug with generated functions having wrong calling conventions. Thanks downs.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Wed, 15 Oct 2008 20:22:18 +0200 |
parents | 611ba592723b |
children | fd5665da3a27 |
files | gen/toobj.cpp |
diffstat | 1 files changed, 6 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/gen/toobj.cpp Tue Oct 14 19:48:45 2008 +0200 +++ b/gen/toobj.cpp Wed Oct 15 20:22:18 2008 +0200 @@ -489,7 +489,7 @@ const llvm::FunctionType* fnTy = llvm::FunctionType::get(LLType::VoidTy,argsTy,false); assert(gIR->module->getFunction(name) == NULL); llvm::Function* fn = llvm::Function::Create(fnTy, llvm::GlobalValue::InternalLinkage, name, gIR->module); - fn->setCallingConv(llvm::CallingConv::Fast); + fn->setCallingConv(DtoCallingConv(LINKd)); llvm::BasicBlock* bb = llvm::BasicBlock::Create("entry", fn); IRBuilder<> builder(bb); @@ -504,7 +504,7 @@ for (size_t i=0; i<n; i++) { llvm::Function* f = gIR->ctors[i]->ir.irFunc->func; llvm::CallInst* call = builder.CreateCall(f,""); - call->setCallingConv(llvm::CallingConv::Fast); + call->setCallingConv(DtoCallingConv(LINKd)); } // debug info end @@ -534,7 +534,7 @@ const llvm::FunctionType* fnTy = llvm::FunctionType::get(LLType::VoidTy,argsTy,false); assert(gIR->module->getFunction(name) == NULL); llvm::Function* fn = llvm::Function::Create(fnTy, llvm::GlobalValue::InternalLinkage, name, gIR->module); - fn->setCallingConv(llvm::CallingConv::Fast); + fn->setCallingConv(DtoCallingConv(LINKd)); llvm::BasicBlock* bb = llvm::BasicBlock::Create("entry", fn); IRBuilder<> builder(bb); @@ -549,7 +549,7 @@ for (size_t i=0; i<n; i++) { llvm::Function* f = gIR->dtors[i]->ir.irFunc->func; llvm::CallInst* call = builder.CreateCall(f,""); - call->setCallingConv(llvm::CallingConv::Fast); + call->setCallingConv(DtoCallingConv(LINKd)); } // debug info end @@ -579,7 +579,7 @@ const llvm::FunctionType* fnTy = llvm::FunctionType::get(LLType::VoidTy,argsTy,false); assert(gIR->module->getFunction(name) == NULL); llvm::Function* fn = llvm::Function::Create(fnTy, llvm::GlobalValue::InternalLinkage, name, gIR->module); - fn->setCallingConv(llvm::CallingConv::Fast); + fn->setCallingConv(DtoCallingConv(LINKd)); llvm::BasicBlock* bb = llvm::BasicBlock::Create("entry", fn); IRBuilder<> builder(bb); @@ -594,7 +594,7 @@ for (size_t i=0; i<n; i++) { llvm::Function* f = gIR->unitTests[i]->ir.irFunc->func; llvm::CallInst* call = builder.CreateCall(f,""); - call->setCallingConv(llvm::CallingConv::Fast); + call->setCallingConv(DtoCallingConv(LINKd)); } // debug info end