fix for ZAM tracking of return values when in-lining

This commit is contained in:
Vern Paxson 2024-04-08 17:06:42 -04:00 committed by Tim Wojtulewicz
parent 8c4c224c93
commit a72b1af2ea

View file

@ -2347,9 +2347,6 @@ ExprPtr InlineExpr::Reduce(Reducer* c, StmtPtr& red_stmt) {
red_stmt = nullptr; red_stmt = nullptr;
auto args_list = args->Exprs(); auto args_list = args->Exprs();
auto ret_val = c->PushInlineBlock(type);
if ( ret_val )
ret_val->SetLocationInfo(GetLocationInfo());
loop_over_list(args_list, i) { loop_over_list(args_list, i) {
StmtPtr arg_red_stmt; StmtPtr arg_red_stmt;
@ -2358,6 +2355,10 @@ ExprPtr InlineExpr::Reduce(Reducer* c, StmtPtr& red_stmt) {
red_stmt = MergeStmts(red_stmt, arg_red_stmt, assign_stmt); red_stmt = MergeStmts(red_stmt, arg_red_stmt, assign_stmt);
} }
auto ret_val = c->PushInlineBlock(type);
if ( ret_val )
ret_val->SetLocationInfo(GetLocationInfo());
body = body->Reduce(c); body = body->Reduce(c);
c->PopInlineBlock(); c->PopInlineBlock();