diff options
author | Jason Merrill <jason@redhat.com> | 2016-12-22 10:19:54 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2016-12-22 10:19:54 -0500 |
commit | dd809fdeca8088bb91e6414d834e3e322dcdf14c (patch) | |
tree | 0853e281f9de0cc4c9ba0879a7213d45957f03c5 /gcc/cp | |
parent | 745b451267cc14759724f3b03bbe12e2335aa5e8 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/pt.c | 3 |
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, |