else
{
ic->op = CAST;
+ IC_LEFT (ic) = operandFromOperand (IC_LEFT (ic));
IC_LEFT (ic)->type = TYPE;
IC_LEFT (ic)->isLiteral = 0;
setOperandType (IC_LEFT (ic), operandType (IC_RESULT (ic)));
ic->op = CAST;
op = IC_RIGHT (ic);
IC_RIGHT (ic) = IC_LEFT (ic);
- IC_LEFT (ic) = op;
+ IC_LEFT (ic) = operandFromOperand (op);
IC_LEFT (ic)->type = TYPE;
IC_LEFT (ic)->isLiteral = 0;
setOperandType (IC_LEFT (ic), operandType (IC_RESULT (ic)));
if (!OP_SYMBOL(IC_RIGHT (ic))->noSpilLoc &&
!IS_VOLATILE (setype) &&
!IN_FARSPACE (SPEC_OCLS (setype)) &&
- !OTHERS_PARM (OP_SYMBOL (IC_RESULT (ic))))
+ !OTHERS_PARM (OP_SYMBOL (IC_RESULT (ic)))) {
SPIL_LOC (IC_RIGHT (ic)) =
SPIL_LOC (IC_RESULT (ic));
+ OP_SYMBOL (IC_RIGHT (ic))->prereqv =
+ OP_SYMBOL (IC_RESULT (ic))->prereqv;
+ }
}
/* special case for inductions */
if (induction &&
!OP_SYMBOL(IC_RESULT (ic))->noSpilLoc &&
!SPIL_LOC(IC_RESULT(ic))) {
SPIL_LOC (IC_RESULT (ic)) = SPIL_LOC (IC_RIGHT (ic));
+ OP_SYMBOL (IC_RESULT (ic))->prereqv =
+ OP_SYMBOL (IC_RIGHT (ic))->prereqv;
}
}
}
/* the price */
computeControlFlow (ebbs, count, 1);
if (!options.lessPedantic) {
- werror (W_CONTROL_FLOW, ic->filename, ic->lineno);
+ werrorfl (ic->filename, ic->lineno, W_CONTROL_FLOW);
}
return;
}
{
if (!options.lessPedantic) {
- werror (W_CONTROL_FLOW, ic->filename, ic->lineno);
+ werrorfl (ic->filename, ic->lineno, W_CONTROL_FLOW);
}
if (IS_OP_VOLATILE (IC_COND (ic)))
{