Index: cp/parser.c =================================================================== --- cp/parser.c (revision 236592) +++ cp/parser.c (working copy) @@ -20800,6 +20800,9 @@ cp_parser_initializer (cp_parser* parser, bool* is init = error_mark_node; } + if (check_for_bare_parameter_packs (init)) + init = error_mark_node; + return init; } Index: testsuite/g++.dg/cpp0x/variadic168.C =================================================================== --- testsuite/g++.dg/cpp0x/variadic168.C (revision 0) +++ testsuite/g++.dg/cpp0x/variadic168.C (working copy) @@ -0,0 +1,18 @@ +// PR c++/69095 +// { dg-do compile { target c++11 } } + +struct B1 { + template // { dg-error "parameter packs not expanded" } + void insert(Ret); +}; + +struct B2 { + template + void insert(Ret, unsigned = sizeof(Args)); // { dg-error "parameter packs not expanded" } +}; + +template // { dg-error "parameter packs not expanded" } +void insert1(Ret); + +template +void insert2(Ret, unsigned = sizeof(Args)); // { dg-error "parameter packs not expanded" }