take into consideration if right side
an induction variable
*/
-
-#if SomeOneUnderStandsThis
- /* This causes the bug:
-
- void test (unsigned u) {
- // the following cast is ignored
- for (; (int) u >= 0;)
- ++u;
- }
- }
-
- where casts are ignored */
-
if (!POINTER_SET (cdp->diCode) &&
IS_ITEMP (IC_RESULT (cdp->diCode)) &&
IS_ITEMP (IC_RIGHT (cdp->diCode)) &&
*opp = IC_RESULT (cdp->diCode);
else
*opp = IC_RIGHT (cdp->diCode);
-#endif
}
}
else
IS_ITEMP (IC_RESULT (cdp->diCode)))
*opp = IC_RESULT (cdp->diCode);
- if (*opp)
+ if ((*opp) &&
+ (SPEC_USIGN(operandType (cop))==SPEC_USIGN(operandType (*opp))) &&
+ (SPEC_LONG(operandType (cop))==SPEC_LONG(operandType (*opp))))
{
if ((isGlobalInNearSpace (cop) &&
return 1;
}
-
+ *opp=NULL;
return 0;
}
SET_ISADDR (IC_RESULT (ic), 0);
}
/* if casting to the same */
- if (checkType (operandType (IC_RESULT (ic)),
+ if (compareType (operandType (IC_RESULT (ic)),
operandType (IC_RIGHT (ic))) == 1)
{
ic->op = '=';
if (!IC_RIGHT (ic)->noSpilLoc &&
!IS_VOLATILE (setype) &&
!IN_FARSPACE (SPEC_OCLS (setype)) &&
+ /* PENDING */
+ !TARGET_IS_Z80 &&
!OTHERS_PARM (OP_SYMBOL (IC_RESULT (ic))))
SPIL_LOC (IC_RIGHT (ic)) =
if (!IC_RIGHT (ic)->noSpilLoc &&
!IS_VOLATILE (setype) &&
!IN_FARSPACE (SPEC_OCLS (setype)) &&
+ /* PENDING */
+ !TARGET_IS_Z80 &&
!OTHERS_PARM (OP_SYMBOL (IC_RESULT (ic))))
SPIL_LOC (IC_RIGHT (ic)) =
iTemp1 = iTemp0 + 8;
iTemp2 = iTemp1 + 8; */
if (isinSetWith (compItems, (void*)IC_LEFT (cdp->diCode),
- (void*)isOperandEqual) ||
+ (insetwithFunc)isOperandEqual) ||
isinSetWith (compItems, (void*)IC_RIGHT (cdp->diCode),
- (void*)isOperandEqual))
+ (insetwithFunc)isOperandEqual))
{
addSet (&compItems, IC_RESULT (cdp->diCode));
}
/* for pointer_gets if the types of result & left r the
same then change it type of result to next */
if (IS_PTR (t1) &&
- checkType (t2 = operandType (IC_RESULT (ic)), t1) == 1)
+ compareType (t2 = operandType (IC_RESULT (ic)), t1) == 1)
{
setOperandType (IC_RESULT (ic), t2->next);
}
!computeOnly)
{
applyToSet (cseSet, findPrevIc, ic, &pdic);
- if (pdic && checkType (operandType (IC_RESULT (pdic)),
+ if (pdic && compareType (operandType (IC_RESULT (pdic)),
operandType (IC_RESULT (ic))) != 1)
pdic = NULL;
}