gcc/testsuite/ChangeLog:
2008-11-19 Dodji Seketeli <dodji@redhat.com>
PR c++/37142
* g++.dg/template/crash85.C: New test.
gcc/cp/ChangeLog
2008-11-19 Dodji Seketeli <dodji@redhat.com>
PR c++/37142
* pt.c (coerce_template_template_parm): Use the more robust
uses_template_parms instead of dependent_type_p.
From-SVN: r142025
2008-11-19 Dodji Seketeli <dodji@redhat.com>
+ PR c++/37142
+ * pt.c (coerce_template_template_parm): Use the more robust
+ uses_template_parms instead of dependent_type_p.
+
+2008-11-19 Dodji Seketeli <dodji@redhat.com>
+
PR c++/35405
* pt.c (lookup_template_class): Check pointers before dereferencing
Them.
D<int, C> d;
i.e. the parameter list of TT depends on earlier parameters. */
- if (!dependent_type_p (TREE_TYPE (arg))
+ if (!uses_template_parms (TREE_TYPE (arg))
&& !same_type_p
(tsubst (TREE_TYPE (parm), outer_args, complain, in_decl),
TREE_TYPE (arg)))
2008-11-19 Dodji Seketeli <dodji@redhat.com>
+ PR c++/37142
+ * g++.dg/template/crash85.C: New test.
+
+2008-11-19 Dodji Seketeli <dodji@redhat.com>
+
PR c++/35405
* g++.dg/template/crash84.C: New test.
--- /dev/null
+// Contributed by Dodji Seketeli <dodji@redhat.com>
+// Origin: PR c++/37142
+// { dg-do compile }
+
+template<typename T, const T a, template <typename U, U u> class W> struct A {};
+
+template<typename T, const T t> struct B {};
+
+int
+main ()
+{
+ A<long, 0, B> a;
+ return 0;
+}
+