Bugfix for args regression test failure (from change in how literal signedness is...
[fw/sdcc] / src / SDCCmem.c
index 17a8859834d2ecc191d484da92da04eb583d0be0..dece30c26ef3fe7a78237ed3aaecb0b523673e31 100644 (file)
@@ -563,8 +563,9 @@ deallocParms (value * val)
       if (!lval->sym->isref)
        {
          lval->sym->allocreq = 0;
-         werror (W_NO_REFERENCE, currFunc->name,
-                 "function argument", lval->sym->name);
+           werror (W_NO_REFERENCE, 
+                   currFunc ? currFunc->name : "(unknown)",
+                   "function argument", lval->sym->name);
        }
 
       /* move the rname if any to the name for both val & sym */
@@ -741,7 +742,8 @@ deallocLocal (symbol * csym)
        }
       /* if not used give a warning */
       if (!sym->isref && !IS_STATIC (sym->etype))
-       werror (W_NO_REFERENCE, currFunc->name,
+       werror (W_NO_REFERENCE, 
+               currFunc ? currFunc->name : "(unknown)",
                "local variable", sym->name);
       /* now delete it from the symbol table */
       deleteSym (SymbolTab, sym, sym->name);
@@ -1083,9 +1085,12 @@ doOverlays (eBBlock ** ebbs, int count)
 void 
 printAllocInfo (symbol * func, FILE * of)
 {
+  if (!func)
+       return;
+    
   if (!of)
     of = stdout;
-
+    
   /* must be called after register allocation is complete */
   fprintf (of, ";------------------------------------------------------------\n");
   fprintf (of, ";Allocation info for local variables in function '%s'\n", func->name);