aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOwen Avery <powerboat9.gamer@gmail.com>2024-02-18 00:19:25 -0500
committerCohenArthur <arthur.cohen@embecosm.com>2024-02-20 10:45:15 +0000
commit5989e3d614b1919bc9299383bb147cc6a14dec4b (patch)
tree5ebc45e200149d0f9eed4e2ca557a14af3804722 /gcc
parentf2e19364bca0182a53e2df9e4dddd9e6ba89cc7e (diff)
downloadgcc-5989e3d614b1919bc9299383bb147cc6a14dec4b.zip
gcc-5989e3d614b1919bc9299383bb147cc6a14dec4b.tar.gz
gcc-5989e3d614b1919bc9299383bb147cc6a14dec4b.tar.bz2
Fix false positive for top-level AltPattern
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>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/hir/rust-ast-lower-pattern.cc1
-rw-r--r--gcc/testsuite/rust/compile/let_alt.rs1
2 files changed, 2 insertions, 0 deletions
diff --git a/gcc/rust/hir/rust-ast-lower-pattern.cc b/gcc/rust/hir/rust-ast-lower-pattern.cc
index a222848..d534b82 100644
--- a/gcc/rust/hir/rust-ast-lower-pattern.cc
+++ b/gcc/rust/hir/rust-ast-lower-pattern.cc
@@ -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);
}
diff --git a/gcc/testsuite/rust/compile/let_alt.rs b/gcc/testsuite/rust/compile/let_alt.rs
index a2735bd..ff16e64 100644
--- a/gcc/testsuite/rust/compile/let_alt.rs
+++ b/gcc/testsuite/rust/compile/let_alt.rs
@@ -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;
}