|
|
@@ -4014,9 +4014,16 @@ PRODUCTIONS
|
|
|
astRes := astNode;
|
|
|
t := ct2;
|
|
|
QbeGen.CopyOp(q2, q);
|
|
|
- IF isConvF AND QbeGen.IsImm(convQ)
|
|
|
- AND OrdClass(convT) AND OrdClass(ct2) THEN
|
|
|
- QbeGen.CopyOp(convQ, q)
|
|
|
+ IF isConvF AND QbeGen.IsImm(convQ) THEN
|
|
|
+ IF OrdClass(convT) AND OrdClass(ct2) THEN
|
|
|
+ QbeGen.CopyOp(convQ, q)
|
|
|
+ ELSIF SymTab.IsRealType(ct2) THEN
|
|
|
+ IF SymTab.IsIntFamily(convT) THEN
|
|
|
+ QbeGen.NormReal(convQ, q)
|
|
|
+ ELSE
|
|
|
+ QbeGen.CopyOp(convQ, q)
|
|
|
+ END
|
|
|
+ END
|
|
|
END;
|
|
|
sfx := FALSE; .)
|
|
|
{ ResultComp<t, q, sfx, astRes, mname, methCls, isM>
|