Mercurial > projects > ldc
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;