Mercurial > projects > ldc
diff gen/toir.cpp @ 240:0db62b770a49 trunk
[svn r257] Fixed: array .sort and .reverse runtime code was incorrect.
Fixed: most runtime calls did not get correct param attrs.
author | lindquist |
---|---|
date | Mon, 09 Jun 2008 00:01:10 +0200 |
parents | 761c8352f494 |
children | 4d006f7b2ada |
line wrap: on
line diff
--- a/gen/toir.cpp Sun Jun 08 22:07:10 2008 +0200 +++ b/gen/toir.cpp Mon Jun 09 00:01:10 2008 +0200 @@ -1200,6 +1200,11 @@ // this hack is necessary :/ if (dfn && dfn->func && dfn->func->runTimeHack) { + llvm::Function* fn = dfn->func->ir.irFunc->func; + assert(fn); + if (fn->getParamAttrs().paramHasAttr(j+1, llvm::ParamAttr::ByVal)) + palist = palist.addAttr(j+1, llvm::ParamAttr::ByVal); + if (llfnty->getParamType(j) != NULL) { if (llargs[j]->getType() != llfnty->getParamType(j)) { Logger::println("llvmRunTimeHack==true - force casting argument");