error propagation fix for AST reduction

This commit is contained in:
Vern Paxson 2021-06-01 14:13:09 -07:00
parent 783b6d1fdb
commit d8213246ea

View file

@ -2119,7 +2119,12 @@ ExprPtr ArithCoerceExpr::Reduce(Reducer* c, StmtPtr& red_stmt)
const auto& ct = cv->GetType();
if ( IsArithmetic(t->Tag()) || IsArithmetic(ct->Tag()) )
return make_intrusive<ConstExpr>(FoldSingleVal(cv, t));
{
auto v = FoldSingleVal(cv, t);
if ( v )
return make_intrusive<ConstExpr>(v);
// else there was a coercion error, fall through
}
}
if ( c->Optimizing() )