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;
+}