From: Pierre-Emmanuel Patry <[email protected]>
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 <[email protected]>
---
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 6a81fa10aab..73c6b1ee31e 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 2f4585cbe8c..c688026a7b8 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
--
2.49.0