]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Postpone break on error after name resolution
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Thu, 26 Sep 2024 21:17:59 +0000 (23:17 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Wed, 19 Mar 2025 14:32:15 +0000 (15:32 +0100)
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 <pierre-emmanuel.patry@embecosm.com>
gcc/rust/rust-session-manager.cc

index 5668d4d65d39401140f68856ef51dde403d13c64..11ff25062d04791f304619e5a7e0438139fad53c 100644 (file)
@@ -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;