$ cat test.c template <typename... TT> struct foo { void bar(int i, TT... tt) { auto l = [tt...](){}; } };
void moo() { foo<> foo; foo.bar(0); } $ arm-elf-g++.exe -std=gnu++0x -c test.c test.c: In member function 'void foo<TT>::bar(int, TT ...)': test.c:6:12: error: parameter packs not expanded with '...': test.c:6:12: note: 'tt' test.c:6:14: error: expected ',' before '...' token test.c:6:14: error: expected identifier before '...' token test.c: In member function 'void foo<TT>::bar(int, TT ...) [with TT = {}]': test.c:14:14: instantiated from here test.c:6:21: error: using invalid field 'foo<TT>::bar(int, TT ...)::<lambda()>::__tt' cc1plus: internal compiler error: tree check: expected field_decl, have error_mark in build_lambda_object, at cp/semantics.c:5353 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. This is with svn rev 153796. -- Summary: internal compiler error: tree check: expected field_decl, have error_mark in build_lambda_object, at cp/semantics.c:5353 Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bruck dot michael at googlemail dot com GCC host triplet: i686-pc-cygwin GCC target triplet: arm-unknown-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41933