Commit 8320114a by Dodji Seketeli Committed by Dodji Seketeli

re PR c++/37142 (ICE: in dependent_type_p, at cp/pt.c:15585)

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
parent 3179cf8c
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.
......
......@@ -4688,7 +4688,7 @@ coerce_template_template_parm (tree parm,
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)))
......
......@@ -4,6 +4,11 @@
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.
......
// 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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment