1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-26 05:29:30 +00:00

The code for compares with a constant result may not be removed, because it

may contain side effects.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5010 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2011-05-01 18:48:06 +00:00
parent a507605a89
commit 80a5686bd9

View File

@ -2076,7 +2076,9 @@ static void hie_compare (const GenDesc* Ops, /* List of generators */
}
/* Comparing a char against a constant may have a constant
* result.
* result. Please note: It is not possible to remove the code
* for the compare alltogether, because it may have side
* effects.
*/
switch (Tok) {
@ -2084,7 +2086,6 @@ static void hie_compare (const GenDesc* Ops, /* List of generators */
if (Expr2.IVal < LeftMin || Expr2.IVal > LeftMax) {
ED_MakeConstAbsInt (Expr, 0);
WarnConstCompareResult ();
RemoveCode (&Mark0);
goto Done;
}
break;
@ -2093,7 +2094,6 @@ static void hie_compare (const GenDesc* Ops, /* List of generators */
if (Expr2.IVal < LeftMin || Expr2.IVal > LeftMax) {
ED_MakeConstAbsInt (Expr, 1);
WarnConstCompareResult ();
RemoveCode (&Mark0);
goto Done;
}
break;
@ -2102,7 +2102,6 @@ static void hie_compare (const GenDesc* Ops, /* List of generators */
if (Expr2.IVal <= LeftMin || Expr2.IVal > LeftMax) {
ED_MakeConstAbsInt (Expr, Expr2.IVal > LeftMax);
WarnConstCompareResult ();
RemoveCode (&Mark0);
goto Done;
}
break;
@ -2111,7 +2110,6 @@ static void hie_compare (const GenDesc* Ops, /* List of generators */
if (Expr2.IVal < LeftMin || Expr2.IVal >= LeftMax) {
ED_MakeConstAbsInt (Expr, Expr2.IVal >= LeftMax);
WarnConstCompareResult ();
RemoveCode (&Mark0);
goto Done;
}
break;
@ -2120,7 +2118,6 @@ static void hie_compare (const GenDesc* Ops, /* List of generators */
if (Expr2.IVal <= LeftMin || Expr2.IVal > LeftMax) {
ED_MakeConstAbsInt (Expr, Expr2.IVal <= LeftMin);
WarnConstCompareResult ();
RemoveCode (&Mark0);
goto Done;
}
break;
@ -2129,7 +2126,6 @@ static void hie_compare (const GenDesc* Ops, /* List of generators */
if (Expr2.IVal < LeftMin || Expr2.IVal >= LeftMax) {
ED_MakeConstAbsInt (Expr, Expr2.IVal < LeftMin);
WarnConstCompareResult ();
RemoveCode (&Mark0);
goto Done;
}
break;