diff gen/toir.c @ 83:339422268de1 trunk

[svn r87] Fixed some memory bloat when passing string literals as char[] params (double temporary before)
author lindquist
date Fri, 02 Nov 2007 02:03:13 +0100
parents d8dd47ef3973
children f869c636a113
line wrap: on
line diff
--- a/gen/toir.c	Fri Nov 02 01:17:26 2007 +0100
+++ b/gen/toir.c	Fri Nov 02 02:03:13 2007 +0100
@@ -362,9 +362,10 @@
     if (dtype->ty == Tarray) {
         llvm::Constant* clen = llvm::ConstantInt::get(DtoSize_t(),len,false);
         if (!p->topexp() || p->topexp()->e2 != this) {
-            llvm::Value* tmpmem = new llvm::AllocaInst(DtoType(dtype),"tmp",p->topallocapoint());
+            llvm::Value* tmpmem = new llvm::AllocaInst(DtoType(dtype),"tempstring",p->topallocapoint());
             DtoSetArray(tmpmem, clen, arrptr);
             e->mem = tmpmem;
+            e->temp = true;
         }
         else if (p->topexp()->e2 == this) {
             llvm::Value* arr = p->topexp()->v;