aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2016-12-22 10:19:54 -0500
committerJason Merrill <jason@gcc.gnu.org>2016-12-22 10:19:54 -0500
commitdd809fdeca8088bb91e6414d834e3e322dcdf14c (patch)
tree0853e281f9de0cc4c9ba0879a7213d45957f03c5 /gcc/cp
parent745b451267cc14759724f3b03bbe12e2335aa5e8 (diff)
downloadgcc-dd809fdeca8088bb91e6414d834e3e322dcdf14c.zip
gcc-dd809fdeca8088bb91e6414d834e3e322dcdf14c.tar.gz
gcc-dd809fdeca8088bb91e6414d834e3e322dcdf14c.tar.bz2
PR c++/78898 - ICE on constructor with TTP
PR c++/42329 * pt.c (unify): Don't look for a class template from a non-class. From-SVN: r243890
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/pt.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 925d0b5..6f193c4 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2016-12-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/78898
+ PR c++/42329
+ * pt.c (unify): Don't look for a class template from a non-class.
+
2016-12-21 Jakub Jelinek <jakub@redhat.com>
PR c++/72707
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 301eb52..7711546 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -20292,7 +20292,8 @@ unify (tree tparms, tree targs, tree parm, tree arg, int strict,
if (TREE_CODE (parm) == BOUND_TEMPLATE_TEMPLATE_PARM)
{
- if (strict_in & UNIFY_ALLOW_DERIVED)
+ if ((strict_in & UNIFY_ALLOW_DERIVED)
+ && CLASS_TYPE_P (arg))
{
/* First try to match ARG directly. */
tree t = try_class_unification (tparms, targs, parm, arg,