]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Visit loop label before predicate expression
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Tue, 1 Apr 2025 10:02:31 +0000 (12:02 +0200)
committerP-E-P <32375388+P-E-P@users.noreply.github.com>
Mon, 7 Apr 2025 08:18:19 +0000 (08:18 +0000)
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.patry@embecosm.com>
gcc/rust/ast/rust-ast-visitor.cc
gcc/testsuite/rust/compile/nr2/exclude

index b5da001da5ac633f198ea6bb5dbc7561a5a3b509..7791489a1667ab6b293c23f98b16914b85cb9b54 100644 (file)
@@ -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 ());
 }
 
index 2f4585cbe8c461806ae0c30e45e7e026e4f07e77..c688026a7b8f61b915a2087b343549752594145e 100644 (file)
@@ -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