Fixed potential errors with subtraction evaluation of identifiers at different memory locations.

This commit is contained in:
acqn 2024-02-24 15:34:38 +08:00
parent 5c3ff714ae
commit 23aa562094
1 changed files with 1 additions and 1 deletions

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);