re PR c++/42218 (Broken diagnostic: 'tree_vec' not supported by pp_c_expression)

Fix PR c++/42218

gcc/cp/ChangeLog:
	PR c++/42218
	* cxx-pretty-print.c (pp_cxx_unqualified_id): Print only innermost
	template arguments.

gcc/testsuite/ChangeLog:
	PR c++/42218
	* g++.dg/other/error33.C: New test.

From-SVN: r154972
This commit is contained in:
Dodji Seketeli 2009-12-04 07:38:42 +00:00 committed by Dodji Seketeli
parent 25a3160899
commit 38a15b40ea
4 changed files with 24 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2009-12-04 Dodji Seketeli <dodji@redhat.com>
PR c++/42218
* cxx-pretty-print.c (pp_cxx_unqualified_id): Print only innermost
template arguments.
2009-12-03 Jason Merrill <jason@redhat.com>
PR c++/41611

View File

@ -203,7 +203,8 @@ pp_cxx_unqualified_id (cxx_pretty_printer *pp, tree t)
if (CLASS_TYPE_P (t) && CLASSTYPE_USE_TEMPLATE (t))
{
pp_cxx_begin_template_argument_list (pp);
pp_cxx_template_argument_list (pp, CLASSTYPE_TI_ARGS (t));
pp_cxx_template_argument_list (pp, INNERMOST_TEMPLATE_ARGS
(CLASSTYPE_TI_ARGS (t)));
pp_cxx_end_template_argument_list (pp);
}
break;

View File

@ -1,3 +1,8 @@
2009-12-04 Dodji Seketeli <dodji@redhat.com>
PR c++/42218
* g++.dg/other/error33.C: New test.
2009-12-03 Jason Merrill <jason@redhat.com>
* g++.dg/abi/guard2.C: Run on *-*-linux* rather than x86-*-*

View File

@ -0,0 +1,11 @@
// Contributed by Dodji Seketeli <dodji@redhat.com>
// Origin: PR c++/42218
// { dg-do compile }
template<int> struct A
{
template<int> struct B;
};
int i = A<0>::B<0>::X::Y; // { dg-error "'A<0>::B<0>::X' has not been declared" }