diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/rust/parse/rust-parse-impl.h | 6 | ||||
| -rw-r--r-- | gcc/testsuite/rust/compile/issue-1393.rs | 13 |
2 files changed, 13 insertions, 6 deletions
diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h index 227564c..d925aca 100644 --- a/gcc/rust/parse/rust-parse-impl.h +++ b/gcc/rust/parse/rust-parse-impl.h @@ -7276,12 +7276,6 @@ Parser<ManagedTokenSource>::parse_expr_without_block ( case LEFT_SQUARE: // array expr (creation, not index) return parse_array_expr (std::move (outer_attrs)); - case LEFT_PAREN: - /* either grouped expr or tuple expr - depends on whether there is a - * comma - * inside the parentheses - if so, tuple expr, otherwise, grouped expr. - */ - return parse_grouped_or_tuple_expr (std::move (outer_attrs)); default: { /* HACK: piggyback on pratt parsed expr and abuse polymorphism to * essentially downcast */ diff --git a/gcc/testsuite/rust/compile/issue-1393.rs b/gcc/testsuite/rust/compile/issue-1393.rs new file mode 100644 index 0000000..e09f01b --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-1393.rs @@ -0,0 +1,13 @@ +fn tst() { + let a = 123; + let b = 0; + let _c = if b == 0 { + (a & 0x7fffff) << 1 + } else { + (a & 0x7fffff) | 0x800000 + }; +} + +fn main() { + tst() +} |
