changeset 752:2d7bcfa68128

Enable function parameter debug info for a wider range of args.
author Christian Kamm <kamm incasoftware de>
date Mon, 03 Nov 2008 15:23:22 +0100
parents dc8b8b7ea0c1
children 405e40f20ef9
files gen/functions.cpp
diffstat 1 files changed, 7 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/gen/functions.cpp	Mon Nov 03 12:35:29 2008 +0100
+++ b/gen/functions.cpp	Mon Nov 03 15:23:22 2008 +0100
@@ -745,22 +745,15 @@
             bool refout = vd->storage_class & (STCref | STCout);
             bool lazy = vd->storage_class & STClazy;
 
-            if (refout)
+            if (!refout && (!DtoIsPassedByRef(vd->type) || lazy))
             {
-                continue;
+                LLValue* a = irloc->value;
+                LLValue* v = DtoAlloca(a->getType(), "."+a->getName());
+                DtoStore(a,v);
+                irloc->value = v;
             }
-            else if (!lazy && DtoIsPassedByRef(vd->type))
-            {
-                LLValue* vdirval = irloc->value;
-                if (global.params.symdebug && !(isaArgument(vdirval) && !isaArgument(vdirval)->hasByValAttr()))
-                    DtoDwarfLocalVariable(vdirval, vd);
-                continue;
-            }
-
-            LLValue* a = irloc->value;
-            LLValue* v = DtoAlloca(a->getType(), "."+a->getName());
-            DtoStore(a,v);
-            irloc->value = v;
+            if (global.params.symdebug && !(isaArgument(irloc->value) && !isaArgument(irloc->value)->hasByValAttr()) && !refout)
+                DtoDwarfLocalVariable(irloc->value, vd);
         }
     }