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