From: Pierre-Emmanuel Patry Date: Tue, 26 Sep 2023 12:49:10 +0000 (+0200) Subject: gccrs: Fix ICE when emitting an error during cfg strip X-Git-Tag: basepoints/gcc-15~2114 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5757c304b539dc30c5cacf278bb026738288854a;p=thirdparty%2Fgcc.git gccrs: 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 --- diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc index 1273b53496c6..3edd1ecb4ebe 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 ();