re PR c++/58466 (ICE in cxx_eval_constant_expression)

/cp
2013-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58466
	* pt.c (most_specialized_class): Bump processing_template_decl for
	get_class_bindings.

/testsuite
2013-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58466
	* g++.dg/cpp0x/variadic145.C: New.

From-SVN: r203836
This commit is contained in:
Paolo Carlini 2013-10-18 21:24:05 +00:00 committed by Paolo Carlini
parent 4484a35a86
commit 6e62a2b4e8
4 changed files with 26 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2013-10-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58466
* pt.c (most_specialized_class): Bump processing_template_decl for
get_class_bindings.
2013-10-18 Paolo Carlini <paolo.carlini@oracle.com>
* parser.c (cp_parser_lookup_name): Tidy.

View File

@ -18615,10 +18615,15 @@ most_specialized_class (tree type, tree tmpl, tsubst_flags_t complain)
if (spec_tmpl == error_mark_node)
return error_mark_node;
++processing_template_decl;
tree parms = DECL_INNERMOST_TEMPLATE_PARMS (spec_tmpl);
spec_args = get_class_bindings (tmpl, parms,
partial_spec_args,
args);
--processing_template_decl;
if (spec_args)
{
if (outer_args)

View File

@ -1,3 +1,8 @@
2013-10-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58466
* g++.dg/cpp0x/variadic145.C: New.
2013-10-18 Andrew MacLeod <amacleod@redhat.com>
* g++.dg/plugin/header_plugin.c: Don't include tree-flow.h.

View File

@ -0,0 +1,10 @@
// PR c++/58466
// { dg-do compile { target c++11 } }
template<char, char...> struct A;
template<typename> struct B;
template<char... C> struct B<A<C...>> {};
B<A<'X'>> b; // { dg-error "incomplete type" }