more precise noOverLap
authorkvigor <kvigor@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 4 May 2001 05:21:11 +0000 (05:21 +0000)
committerkvigor <kvigor@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 4 May 2001 05:21:11 +0000 (05:21 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@772 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/ds390/ralloc.c

index 3fab7c2dc497c4f3e161e0c9d050642ee650a617..782f768317a1d0bb1a9898a81ad40c23e3eeeed0 100644 (file)
@@ -383,10 +383,15 @@ noOverLap (set * itmpStack, symbol * fsym)
   for (sym = setFirstItem (itmpStack); sym;
        sym = setNextItem (itmpStack))
     {
-      if (sym->liveTo >= fsym->liveFrom)
-       return 0;
+            // if sym starts before (or on) our end point
+            // and ends after (or on) our start point, 
+            // it is an overlap.
+           if (sym->liveFrom <= fsym->liveTo &&
+               sym->liveTo   >= fsym->liveFrom)
+           {
+               return 0;
+           }
     }
-
   return 1;
 }