From: jason Date: Thu, 23 Jun 2011 16:52:32 +0000 (+0000) Subject: PR c++/36435 X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=633aed8a121b49923ffd4894dfaac7c9ea095a2d;p=pf3gnuchains%2Fgcc-fork.git PR c++/36435 * pt.c (most_specialized_instantiation): Do check return types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175338 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 505de351dc5..64a5807260c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2011-06-23 Jason Merrill + + PR c++/36435 + * pt.c (most_specialized_instantiation): Do check return types. + 2011-06-22 Jason Merrill PR c++/49260 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 2716f783123..08ce5afc288 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -16610,12 +16610,12 @@ most_specialized_instantiation (tree templates) if (get_bindings (TREE_VALUE (champ), DECL_TEMPLATE_RESULT (TREE_VALUE (fn)), - NULL_TREE, /*check_ret=*/false)) + NULL_TREE, /*check_ret=*/true)) fate--; if (get_bindings (TREE_VALUE (fn), DECL_TEMPLATE_RESULT (TREE_VALUE (champ)), - NULL_TREE, /*check_ret=*/false)) + NULL_TREE, /*check_ret=*/true)) fate++; if (fate == -1) @@ -16637,10 +16637,10 @@ most_specialized_instantiation (tree templates) for (fn = templates; fn != champ; fn = TREE_CHAIN (fn)) if (get_bindings (TREE_VALUE (champ), DECL_TEMPLATE_RESULT (TREE_VALUE (fn)), - NULL_TREE, /*check_ret=*/false) + NULL_TREE, /*check_ret=*/true) || !get_bindings (TREE_VALUE (fn), DECL_TEMPLATE_RESULT (TREE_VALUE (champ)), - NULL_TREE, /*check_ret=*/false)) + NULL_TREE, /*check_ret=*/true)) { champ = NULL_TREE; break; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cb31db2e3c8..8c1f8865026 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-06-23 Jason Merrill + + PR c++/36435 + * g++.dg/template/partial9.C: New. + 2011-06-22 Hans-Peter Nilsson PR middle-end/49373 diff --git a/gcc/testsuite/g++.dg/template/partial9.C b/gcc/testsuite/g++.dg/template/partial9.C new file mode 100644 index 00000000000..4c340fc935d --- /dev/null +++ b/gcc/testsuite/g++.dg/template/partial9.C @@ -0,0 +1,6 @@ +// PR c++/36435 + +template T f(); +template T* f() { } + +template int* f();