]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/37142 (ICE: in dependent_type_p, at cp/pt.c:15585)
authorDodji Seketeli <dodji@redhat.com>
Thu, 20 Nov 2008 00:00:39 +0000 (00:00 +0000)
committerDodji Seketeli <dodji@gcc.gnu.org>
Thu, 20 Nov 2008 00:00:39 +0000 (01:00 +0100)
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

gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/crash85.C [new file with mode: 0644]

index 73e07d73f9d887cef0a6ce08c0cf5b89a0a648dd..fe2eab6fd7482e551ecde35be3b6c28999b07517 100644 (file)
@@ -1,3 +1,9 @@
+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
index 96c510f3d4c8d36b0f5d55ed1947c716216c0374..127d37c833dd308728d4e4717eee9b3d6ba30efb 100644 (file)
@@ -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)))
index 9c4ca41bb15cf6d265b5399ee0bd18a37818e9e8..39a10724adcc90ca994741d1d72613d9a85ea498 100644 (file)
@@ -2,6 +2,11 @@
 
        * gcc.c-torture/compile/20081119-1.c: New test.
 
+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
diff --git a/gcc/testsuite/g++.dg/template/crash85.C b/gcc/testsuite/g++.dg/template/crash85.C
new file mode 100644 (file)
index 0000000..e0b6ee1
--- /dev/null
@@ -0,0 +1,15 @@
+// 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;
+}
+