changeset 457:d82ebdba4191

Fixed debug info and lazy arguments.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Sat, 02 Aug 2008 21:51:49 +0200
parents b975f29b7256
children 121624c14053
files gen/functions.cpp
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/gen/functions.cpp	Sat Aug 02 21:20:31 2008 +0200
+++ b/gen/functions.cpp	Sat Aug 02 21:51:49 2008 +0200
@@ -595,8 +595,10 @@
             VarDeclaration* vd = argsym->isVarDeclaration();
             assert(vd);
 
+            bool refoutlazy = vd->storage_class & (STCref | STCout | STClazy);
+
             // FIXME: llvm seems to want an alloca/byval for debug info
-            if (!vd->needsStorage || vd->nestedref || vd->isRef() || vd->isOut())
+            if (!vd->needsStorage || vd->nestedref || refoutlazy)
             {
                 Logger::println("skipping arg storage for (%s) %s ", vd->loc.toChars(), vd->toChars());
                 continue;