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

commit b079d612f685de0d7780837bae5bfe88ce46ccbe
Author: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com>
Date:   Tue Apr 1 12:02:31 2025 +0200

    Visit loop label before predicate expression
    
    If the label is referenced within the while predicate expression it has
    to be resolved before the latter.
    
    gcc/rust/ChangeLog:
    
            * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Change default
            visit order.
    
    gcc/testsuite/ChangeLog:
    
            * rust/compile/nr2/exclude: Remove test from exclusion list.
    
    Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com>

Diff:
---
 gcc/rust/ast/rust-ast-visitor.cc       | 2 +-
 gcc/testsuite/rust/compile/nr2/exclude | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/gcc/rust/ast/rust-ast-visitor.cc b/gcc/rust/ast/rust-ast-visitor.cc
index b5da001da5ac..7791489a1667 100644
--- a/gcc/rust/ast/rust-ast-visitor.cc
+++ b/gcc/rust/ast/rust-ast-visitor.cc
@@ -567,9 +567,9 @@ void
 DefaultASTVisitor::visit (AST::WhileLoopExpr &expr)
 {
   visit_outer_attrs (expr);
-  visit (expr.get_predicate_expr ());
   if (expr.has_loop_label ())
     visit (expr.get_loop_label ());
+  visit (expr.get_predicate_expr ());
   visit (expr.get_loop_block ());
 }
 
diff --git a/gcc/testsuite/rust/compile/nr2/exclude 
b/gcc/testsuite/rust/compile/nr2/exclude
index 2f4585cbe8c4..c688026a7b8f 100644
--- a/gcc/testsuite/rust/compile/nr2/exclude
+++ b/gcc/testsuite/rust/compile/nr2/exclude
@@ -14,9 +14,7 @@ pub_restricted_2.rs
 pub_restricted_3.rs
 undeclared_label.rs
 use_1.rs
-while_break_expr.rs
 issue-2905-2.rs
-issue-266.rs
 derive_clone_enum3.rs
 derive-debug1.rs
 derive-default1.rs

Reply via email to