# HG changeset patch # User Christian Kamm # Date 1224094938 -7200 # Node ID 1556a9328ba1fe7ddc7840f7e355a3b6f0feca4c # Parent 611ba592723b038745a2d00d85523eff8adc57de Fixed bug with generated functions having wrong calling conventions. Thanks downs. diff -r 611ba592723b -r 1556a9328ba1 gen/toobj.cpp --- 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; ictors[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; idtors[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; iunitTests[i]->ir.irFunc->func; llvm::CallInst* call = builder.CreateCall(f,""); - call->setCallingConv(llvm::CallingConv::Fast); + call->setCallingConv(DtoCallingConv(LINKd)); } // debug info end