From 80a5686bd964a58e9bb9cb11d97bd099367950bc Mon Sep 17 00:00:00 2001 From: uz Date: Sun, 1 May 2011 18:48:06 +0000 Subject: [PATCH] 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 --- src/cc65/expr.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/cc65/expr.c b/src/cc65/expr.c index 4e65e294c..8b5ebd06f 100644 --- a/src/cc65/expr.c +++ b/src/cc65/expr.c @@ -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; -- 2.39.5