re PR c++/33209 (Broken diagnostic: 'template_type_parm' not supported by dump_expr)

/cp
2007-08-28  Paolo Carlini  <pcarlini@suse.de>

	PR c++/33209
	* error.c (dump_expr): Deal with TEMPLATE_TYPE_PARM and
	BOUND_TEMPLATE_TEMPLATE_PARM.

/testsuite
2007-08-28  Paolo Carlini  <pcarlini@suse.de>

	PR c++/33209
	* g++.dg/template/error29.C: New.

From-SVN: r127866
This commit is contained in:
Paolo Carlini 2007-08-28 16:41:56 +00:00 committed by Paolo Carlini
parent bb011bbcb8
commit 0a8fc2475a
4 changed files with 21 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2007-08-28 Paolo Carlini <pcarlini@suse.de>
PR c++/33209
* error.c (dump_expr): Deal with TEMPLATE_TYPE_PARM and
BOUND_TEMPLATE_TEMPLATE_PARM.
2007-08-28 Jakub Jelinek <jakub@redhat.com>
PR c++/32596

View File

@ -2049,6 +2049,11 @@ dump_expr (tree t, int flags)
pp_id_expression (cxx_pp, t);
break;
case TEMPLATE_TYPE_PARM:
case BOUND_TEMPLATE_TEMPLATE_PARM:
dump_type (t, flags);
break;
/* This list is incomplete, but should suffice for now.
It is very important that `sorry' does not call
`report_error_function'. That could cause an infinite loop. */

View File

@ -1,3 +1,8 @@
2007-08-28 Paolo Carlini <pcarlini@suse.de>
PR c++/33209
* g++.dg/template/error29.C: New.
2007-08-28 Jakub Jelinek <jakub@redhat.com>
PR c++/32596

View File

@ -0,0 +1,5 @@
// PR c++/33209
template<typename T> void foo(int, T::x); // { dg-error "T::x" }
template<template<typename> class T> void foo2(int, T<int>::x); // { dg-error "T<int>::x" }