gcc/cp
2009-02-23 H.J. Lu <hongjiu.lu@intel.com>
PR c++/36411
* pt.c (coerce_template_template_parms): Return 0 if parameter
is error_mark_node.
gcc/testsuite/
2009-02-23 H.J. Lu <hongjiu.lu@intel.com>
PR c++/36411
* g++.dg/template/void14.C: New.
From-SVN: r144396
+2009-02-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR c++/36411
+ * pt.c (coerce_template_template_parms): Return 0 if parameter
+ is error_mark_node.
+
2009-02-23 Jason Merrill <jason@redhat.com>
* pt.c (unify): Call maybe_adjust_types_for_deduction when
{
parm = TREE_VALUE (TREE_VEC_ELT (parm_parms, nparms - 1));
+ if (parm == error_mark_node)
+ return 0;
+
switch (TREE_CODE (parm))
{
case TEMPLATE_DECL:
+2009-02-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR c++/36411
+ * g++.dg/template/void14.C: New.
+
2009-02-23 Jason Merrill <jason@redhat.com>
PR c++/38880
--- /dev/null
+// PR c++/36411
+// { dg-do compile }
+
+template<template<void> class> struct A // { dg-error "not a valid type" }
+{
+ template<template<int> class T> A<T> foo(); // { dg-error "mismatch|expected|invalid" }
+};