From 289722166ed9dabc35cf4130bdd34f803babea57 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Tue, 26 Sep 2023 14:49:10 +0200 Subject: [PATCH] Fix ICE when emitting an error during cfg strip When an error was emitted during the cfg strip pass by the crate loader, it was ignored and the error state propagated until another pass (name resolver). gcc/rust/ChangeLog: * rust-session-manager.cc (Session::expansion): Add early break on error. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/rust-session-manager.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc index 8aeab4073877..c674a18d1c92 100644 --- a/gcc/rust/rust-session-manager.cc +++ b/gcc/rust/rust-session-manager.cc @@ -877,6 +877,9 @@ Session::expansion (AST::Crate &crate) while (!fixed_point_reached && iterations < cfg.recursion_limit) { CfgStrip ().go (crate); + // Errors might happen during cfg strip pass + if (saw_errors ()) + break; auto ctx = Resolver2_0::NameResolutionContext ();