https://gcc.gnu.org/g:b408e04a5ef6fe80387a9db616a2c106e290b4bb

commit b408e04a5ef6fe80387a9db616a2c106e290b4bb
Author: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com>
Date:   Thu Sep 26 23:17:59 2024 +0200

    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 <pierre-emmanuel.pa...@embecosm.com>

Diff:
---
 gcc/rust/rust-session-manager.cc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc
index 2cc20ec0266f..1cf58e814f69 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;

Reply via email to