Fix ignoring cast bug : void test (unsigned u) { for (; (int) u >= 0;) ++u; }
authorjbess <jbess@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 25 Apr 2001 13:10:37 +0000 (13:10 +0000)
committerjbess <jbess@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 25 Apr 2001 13:10:37 +0000 (13:10 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@757 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/SDCCcse.c

index 126addff5460ee3e38c235980e49104b3c936d0b..b02adc0e708917510a9424c6d523ec99fc410ac5 100644 (file)
@@ -300,7 +300,7 @@ DEFSETFUNC (findCheaperOp)
       IS_ITEMP (IC_RESULT (cdp->diCode)))
     *opp = IC_RESULT (cdp->diCode);
 
-  if (*opp)
+  if ((*opp)&&(SPEC_USIGN(operandType (cop))==SPEC_USIGN(operandType (*opp))))
     {
 
       if ((isGlobalInNearSpace (cop) &&
@@ -327,7 +327,7 @@ DEFSETFUNC (findCheaperOp)
       return 1;
 
     }
-
+  *opp=NULL;
   return 0;
 }