diff gen/arrays.cpp @ 275:665b81613475 trunk

[svn r296] Removed: the 'suite' dir, it never took off! Fixed: foreach statement, key-type checks were buggy. Fixed: setting LLVMDC versions on the command line is now an error. Fixed: array compare runtime had incorrect param attrs on call. Fixed: index expressions on dynamic array slices w/o storage was broken. Fixed: scope classes had incorrect finalization in some cases. Fixed: when outputting !ClassInfoS !OffsetTypeInfoS, static class members were trying to be included, crashing the compiler. Fixed: calling LLVMDC with -inline but not any -O option caused assertion failure. Changed: the runtime now uses a single interface to "get" to !TypeInfoS, part of eliminating duplicate !TypeInfo codegen.
author lindquist
date Thu, 19 Jun 2008 17:30:32 +0200
parents a95056b3c996
children 10554729bd02
line wrap: on
line diff
--- a/gen/arrays.cpp	Thu Jun 19 13:54:31 2008 +0200
+++ b/gen/arrays.cpp	Thu Jun 19 17:30:32 2008 +0200
@@ -750,7 +750,15 @@
         args.push_back(DtoBitCast(tival, pt));
     }
 
-    return gIR->ir->CreateCall(fn, args.begin(), args.end(), "tmp");
+    llvm::CallInst* call = gIR->ir->CreateCall(fn, args.begin(), args.end(), "tmp");
+
+    // set param attrs
+    llvm::PAListPtr palist;
+    palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
+    palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
+    call->setParamAttrs(palist);
+
+    return call;
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////