From: Pierre-Emmanuel Patry Date: Thu, 26 Sep 2024 21:17:59 +0000 (+0200) Subject: gccrs: Postpone break on error after name resolution X-Git-Tag: basepoints/gcc-16~1137 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff388c8b1ca6f8f6e42a7a0a5388b18aed5a4176;p=thirdparty%2Fgcc.git gccrs: Postpone break on error after name resolution We need the top level to run at least once before breaking because it will be required by the other name resolution steps. gcc/rust/ChangeLog: * rust-session-manager.cc (Session::expansion): Break on error after top level name resolution. Signed-off-by: Pierre-Emmanuel Patry --- diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc index 5668d4d65d3..11ff25062d0 100644 --- a/gcc/rust/rust-session-manager.cc +++ b/gcc/rust/rust-session-manager.cc @@ -925,9 +925,6 @@ Session::expansion (AST::Crate &crate, Resolver2_0::NameResolutionContext &ctx) { CfgStrip ().go (crate); // Errors might happen during cfg strip pass - if (saw_errors ()) - break; - bool visitor_dirty = false; if (flag_name_resolution_2_0) @@ -940,6 +937,9 @@ Session::expansion (AST::Crate &crate, Resolver2_0::NameResolutionContext &ctx) else Resolver::EarlyNameResolver ().go (crate); + if (saw_errors ()) + break; + ExpandVisitor (expander).go (crate); fixed_point_reached = !expander.has_changed () && !visitor_dirty;