https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84655
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Before that we printed a boatload of errors: q.cc: In lambda function: q.cc:4:26: error: parameter packs not expanded with ‘...’: int d[] = [] { auto f(a); }; ^ q.cc:4:26: note: ‘a’ q.cc: At global scope: q.cc:5:33: error: array must be initialized with a brace-enclosed initializer } const __attribute__((noinline(b<>()))); ^~~~~ q.cc:5:33: error: use of deleted function ‘b<>::b()’ q.cc:2:8: error: array must be initialized with a brace-enclosed initializer struct b { ^ q.cc:2:8: note: ‘b<>::b()’ is implicitly deleted because the default definition would be ill-formed: q.cc:2:8: error: uninitialized reference member in ‘struct b<>’ q.cc:3:9: note: ‘int&& b<>::c’ should be initialized int &&c; ^ q.cc:5:3: error: ‘const’ can only be specified for objects and functions } const __attribute__((noinline(b<>()))); ^~~~~ q.cc:2:8: warning: attribute ignored in declaration of ‘struct b<a>’ [-Wattributes] struct b { ^ q.cc:2:8: note: attribute for ‘struct b<a>’ must follow the ‘struct’ keyword