https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92402
Bug ID: 92402
Summary: parsing error in lambda trail return type with
decltype, statement expressions and structure bindings
Product: gcc
Version: 9.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: jonas.simple at googlemail dot com
Target Milestone: ---
The following code:
int a[1];
void f() {
decltype(({auto&& [x] = a; 0;})) b;
(void)[]() -> decltype(({auto&& [x] = a; 0;})) { return 0; };
}
when compiled with gcc 9.2 and --std=c++17
outputs:
<source>: In function 'void f()':
<source>:5:39: internal compiler error: in cp_parser_decomposition_declaration,
at cp/parser.c:13786
5 | (void)[]() -> decltype(({auto&& [x] = a; 0;})) { return 0; };
| ^
Please submit a full bug report, with preprocessed source if appropriate.