]> git.sur5r.net Git - cc65/commitdiff
Fix a problem with error handling: The E_HAVE_MARKS flag must not be removed
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 24 Nov 2009 22:56:56 +0000 (22:56 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 24 Nov 2009 22:56:56 +0000 (22:56 +0000)
from an expression in case of an error.

git-svn-id: svn://svn.cc65.org/cc65/trunk@4482 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/exprdesc.c

index 7881f352458d035b0a17b7025cf1fe1c5d995852..1bde63abff683e5d67e5957a25d9a78003e85d69 100644 (file)
@@ -172,7 +172,7 @@ ExprDesc* ED_MakeConstAbs (ExprDesc* Expr, long Value, Type* Type)
 {
     Expr->Sym   = 0;
     Expr->Type  = Type;
-    Expr->Flags = E_LOC_ABS | E_RTYPE_RVAL;
+    Expr->Flags = E_LOC_ABS | E_RTYPE_RVAL | (Expr->Flags & E_HAVE_MARKS);
     Expr->Name  = 0;
     Expr->IVal  = Value;
     Expr->FVal  = FP_D_Make (0.0);
@@ -186,7 +186,7 @@ ExprDesc* ED_MakeConstAbsInt (ExprDesc* Expr, long Value)
 {
     Expr->Sym   = 0;
     Expr->Type  = type_int;
-    Expr->Flags = E_LOC_ABS | E_RTYPE_RVAL;
+    Expr->Flags = E_LOC_ABS | E_RTYPE_RVAL | (Expr->Flags & E_HAVE_MARKS);
     Expr->Name  = 0;
     Expr->IVal  = Value;
     Expr->FVal  = FP_D_Make (0.0);