re PR c++/69095 (internal compiler error: in dependent_type_p, at cp/pt.c:19399)

/cp
2016-05-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/69095
	* parser.c (cp_parser_default_argument): Call
	check_for_bare_parameter_packs.
	(cp_parser_late_parsing_default_args): Likewise.

/testsuite
2016-05-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/69095
	* g++.dg/cpp0x/variadic168.C: New.

From-SVN: r236610
This commit is contained in:
Paolo Carlini 2016-05-23 19:24:22 +00:00 committed by Paolo Carlini
parent 396a1d10b3
commit d6c9a06fcf
4 changed files with 31 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69095
* parser.c (cp_parser_initializer): Use check_for_bare_parameter_packs.
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
* pt.c (check_for_bare_parameter_packs): Improve error message

View file

@ -20800,6 +20800,9 @@ cp_parser_initializer (cp_parser* parser, bool* is_direct_init,
init = error_mark_node;
}
if (check_for_bare_parameter_packs (init))
init = error_mark_node;
return init;
}

View file

@ -1,3 +1,8 @@
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69095
* g++.dg/cpp0x/variadic168.C: New.
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp0x/pr31445.C: Test column number too.

View file

@ -0,0 +1,18 @@
// PR c++/69095
// { dg-do compile { target c++11 } }
struct B1 {
template <typename Ret, typename... Args, unsigned = sizeof(Args)> // { dg-error "parameter packs not expanded" }
void insert(Ret);
};
struct B2 {
template <typename Ret, typename... Args>
void insert(Ret, unsigned = sizeof(Args)); // { dg-error "parameter packs not expanded" }
};
template <typename Ret, typename... Args, unsigned = sizeof(Args)> // { dg-error "parameter packs not expanded" }
void insert1(Ret);
template <typename Ret, typename... Args>
void insert2(Ret, unsigned = sizeof(Args)); // { dg-error "parameter packs not expanded" }