1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 00:29:31 +00:00

Merge pull request #2422 from acqn/SubFix

[cc65] Fixed potential errors with subtraction evaluation of identifiers at different memory locations
This commit is contained in:
Bob Andrews 2024-03-09 13:02:27 +01:00 committed by GitHub
commit 081d18f7d7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3272,7 +3272,7 @@ static void parsesub (ExprDesc* Expr)
/* The right hand side is constant. Check left hand side. */
if (ED_IsQuasiConst (Expr)) {
/* We can't do all 'ptr1 - ptr2' constantly at the moment */
if (Expr->Sym == Expr2.Sym) {
if (ED_GetLoc (Expr) == ED_GetLoc (&Expr2) && Expr->Sym == Expr2.Sym) {
Expr->IVal = (Expr->IVal - Expr2.IVal) / rscale;
/* Get rid of unneeded flags etc. */
ED_MakeConstAbsInt (Expr, Expr->IVal);