1
Fork 0

ensure sufficient stack in tail call check

This commit is contained in:
Rémy Rakic 2025-01-31 13:05:10 +01:00 committed by Rémy Rakic
parent 25a16572a3
commit 2c778c1e4c

View file

@ -1,4 +1,5 @@
use rustc_abi::ExternAbi;
use rustc_data_structures::stack::ensure_sufficient_stack;
use rustc_errors::Applicability;
use rustc_hir::LangItem;
use rustc_hir::def::DefKind;
@ -344,12 +345,14 @@ impl<'a, 'tcx> Visitor<'a, 'tcx> for TailCallCkVisitor<'a, 'tcx> {
}
fn visit_expr(&mut self, expr: &'a Expr<'tcx>) {
ensure_sufficient_stack(|| {
if let ExprKind::Become { value } = expr.kind {
let call = &self.thir[value];
self.check_tail_call(call, expr);
}
visit::walk_expr(self, expr);
});
}
}