fix for ZAM optimization of '!' expressions

This commit is contained in:
Vern Paxson 2024-04-08 17:07:41 -04:00 committed by Tim Wojtulewicz
parent a72b1af2ea
commit 9c4da40e39

View file

@ -658,8 +658,8 @@ ExprPtr NotExpr::Duplicate() { return SetSucc(new NotExpr(op->Duplicate())); }
bool NotExpr::WillTransform(Reducer* c) const { return op->Tag() == EXPR_NOT && Op()->GetType()->Tag() == TYPE_BOOL; } bool NotExpr::WillTransform(Reducer* c) const { return op->Tag() == EXPR_NOT && Op()->GetType()->Tag() == TYPE_BOOL; }
ExprPtr NotExpr::Reduce(Reducer* c, StmtPtr& red_stmt) { ExprPtr NotExpr::Reduce(Reducer* c, StmtPtr& red_stmt) {
if ( op->Tag() == EXPR_NOT && Op()->GetType()->Tag() == TYPE_BOOL ) if ( op->Tag() == EXPR_NOT )
return Op()->Reduce(c, red_stmt); return op->GetOp1()->Reduce(c, red_stmt);
return UnaryExpr::Reduce(c, red_stmt); return UnaryExpr::Reduce(c, red_stmt);
} }