]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix false positive for top-level AltPattern
authorOwen Avery <powerboat9.gamer@gmail.com>
Sun, 18 Feb 2024 05:19:25 +0000 (00:19 -0500)
committerCohenArthur <arthur.cohen@embecosm.com>
Tue, 20 Feb 2024 10:45:15 +0000 (10:45 +0000)
gcc/rust/ChangeLog:

* hir/rust-ast-lower-pattern.cc
(ASTLoweringPattern::visit):
Reset is_let_top_level while visiting GroupedPattern.

gcc/testsuite/ChangeLog:

* rust/compile/let_alt.rs: Check for false positive.

Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
gcc/rust/hir/rust-ast-lower-pattern.cc
gcc/testsuite/rust/compile/let_alt.rs

index a2228488ad2a2088b4023a68b0aec2d74c2630f2..d534b829517652b91a890871a3f877cf9ca6493d 100644 (file)
@@ -276,6 +276,7 @@ ASTLoweringPattern::visit (AST::RangePattern &pattern)
 void
 ASTLoweringPattern::visit (AST::GroupedPattern &pattern)
 {
+  is_let_top_level = false;
   pattern.get_pattern_in_parens ()->accept_vis (*this);
 }
 
index a2735bdbe77030b39dc1d6f6ad3701bc4dcc05f0..ff16e6428ff1711ca5df202e78a317fc584f0ce3 100644 (file)
@@ -1,4 +1,5 @@
 fn main() {
     let _a | _a = 12;
     // { dg-error "top level or-patterns are not allowed for .let. bindings" "" { target *-*-* } .-1 }
+    let (_b | _b) = 12;
 }