]> 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:13:15 +0000 (00:13 +0000)
committerDodji Seketeli <dodji@gcc.gnu.org>
Thu, 20 Nov 2008 00:13:15 +0000 (01:13 +0100)
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.

gcc/testsuite/ChangeLog/
2008-11-19  Dodji Seketeli  <dodji@redhat.com>

        PR c++/37142
* g++.dg/template/crash71.C: New test.

From-SVN: r142027

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

index ae05bb898e81cfc7dc89dd20cb9165124d3f6ad9..172ccf76b9eff5453a729408862f75a82ecbc7e4 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-14  Jason Merrill  <jason@redhat.com>
 
        PR c++/38030
index 721f02bfe61a61ddfb0e6a627ca4f4b998d0fe43..67654df9d9106546487d9cd433abcd7a217ec6f0 100644 (file)
@@ -3962,7 +3962,7 @@ coerce_template_template_parms (tree parm_parms,
               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 32d678088356a49f33dba5b9092068e90b265231..d699e3d42f12aa470bae33e429449b80e65833e6 100644 (file)
@@ -1,3 +1,8 @@
+2008-11-19  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/37142
+       * g++.dg/template/crash71.C: New test.
+
 2008-11-14  Dodji Seketeli  <dodji@redhat.com>
 
        PR c++/27574
diff --git a/gcc/testsuite/g++.dg/template/crash71.C b/gcc/testsuite/g++.dg/template/crash71.C
new file mode 100644 (file)
index 0000000..18ef338
--- /dev/null
@@ -0,0 +1,16 @@
+// 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;
+}
+
+