From 8f14246bef8042d5bfce5f9c33e3f0a741ec1660 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Wed, 15 Oct 2008 20:22:18 +0200 Subject: [PATCH] Fixed bug with generated functions having wrong calling conventions. Thanks downs. --- gen/toobj.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gen/toobj.cpp b/gen/toobj.cpp index d7425b77..4755f45c 100644 --- a/gen/toobj.cpp +++ b/gen/toobj.cpp @@ -489,7 +489,7 @@ llvm::Function* build_module_ctor() 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 @@ llvm::Function* build_module_ctor() 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 @@ static llvm::Function* build_module_dtor() 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 @@ static llvm::Function* build_module_dtor() 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 @@ static llvm::Function* build_module_unittest() 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 @@ static llvm::Function* build_module_unittest() 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