Mercurial > projects > ldc
diff gen/tollvm.c @ 29:253a5fc4033a trunk
[svn r33] * Added support for assignment to function arguments
author | lindquist |
---|---|
date | Thu, 04 Oct 2007 13:45:22 +0200 |
parents | 92408a3a2bac |
children | 2841234d2aea |
line wrap: on
line diff
--- a/gen/tollvm.c Thu Oct 04 12:49:37 2007 +0200 +++ b/gen/tollvm.c Thu Oct 04 13:45:22 2007 +0200 @@ -982,3 +982,17 @@ return func; } + +////////////////////////////////////////////////////////////////////////////////////////// + +void LLVM_DtoGiveArgumentStorage(elem* l) +{ + assert(l->mem == 0); + assert(l->val); + assert(llvm::isa<llvm::Argument>(l->val)); + assert(l->vardecl != 0); + + llvm::AllocaInst* allocainst = new llvm::AllocaInst(l->val->getType(), l->val->getName()+"_storage", gIR->topallocapoint()); + l->mem = allocainst; + l->vardecl->llvmValue = l->mem; +}