* src/SDCClrange.c (findPrevUse): fixed bug 1294475
[fw/sdcc] / src / SDCClrange.c
index 3d05ad80a67a88a3a7b829ed6ad59141931072fc..e7208a2fc37da96a650911adb8dc7436876d3e9f 100644 (file)
@@ -442,8 +442,12 @@ findPrevUse (eBBlock *ebp, iCode *ic, operand *op,
     {
       /* computeLiveRanges() is called twice */
       if (!emitWarnings)
-        werrorfl (ic->filename, ic->lineno, W_LOCAL_NOINIT,
-                  OP_SYMBOL (op)->prereqv);
+        {
+          werrorfl (ic->filename, ic->lineno, W_LOCAL_NOINIT,
+                    OP_SYMBOL (op)->prereqv);
+          OP_SYMBOL (op)->prereqv->reqv = NULL;
+          OP_SYMBOL (op)->prereqv->allocreq = 1;
+        }
       /* is this block part of a loop? */
       if (ebp->depth != 0)
         {