if (pdic && compareType (operandType (IC_RESULT (pdic)),
operandType (IC_RESULT (ic))) != 1)
pdic = NULL;
+
+ // TODO: this must go, a weak fix for bug #467035
+ if (pdic && (pdic->level > ic->level)) {
+ // pdic was inside an inner loop
+ pdic = NULL;
+ }
+
}
/* if found then eliminate this and add to */
/* of this with previous opcode */
if (pdic)
{
-
if (IS_ITEMP (IC_RESULT (ic)))
{
-
+
/* replace in the remaining of this block */
replaceAllSymBySym (ic->next, IC_RESULT (ic), IC_RESULT (pdic), &ebb->ndompset);
/* remove this iCode from inexpressions of all