re PR c++/7939 (ICE on function template specialization)
PR c++/7939 * typeck.c (comptypes): Don't ICE when its first argument is error_mark_node. (compparms): Reverse the arguments of same_type_p. * g++.dg/template/crash11.C: New test. From-SVN: r71432
This commit is contained in:
parent
6cd2fc59b0
commit
ae8803a8e1
4 changed files with 23 additions and 5 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2003-09-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||||
|
|
||||||
|
PR c++/7939
|
||||||
|
* typeck.c (comptypes): Don't ICE when its first argument is
|
||||||
|
error_mark_node.
|
||||||
|
(compparms): Reverse the arguments of same_type_p.
|
||||||
|
|
||||||
2003-09-15 Nathan Sidwell <nathan@codesourcery.com>
|
2003-09-15 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
PR c++/12184
|
PR c++/12184
|
||||||
|
|
|
@ -900,11 +900,8 @@ comptypes (tree t1, tree t2, int strict)
|
||||||
if (t1 == t2)
|
if (t1 == t2)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
/* This should never happen. */
|
|
||||||
my_friendly_assert (t1 != error_mark_node, 307);
|
|
||||||
|
|
||||||
/* Suppress errors caused by previously reported errors */
|
/* Suppress errors caused by previously reported errors */
|
||||||
if (t2 == error_mark_node)
|
if (t1 == error_mark_node || t2 == error_mark_node)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
my_friendly_assert (TYPE_P (t1) && TYPE_P (t2), 20030623);
|
my_friendly_assert (TYPE_P (t1) && TYPE_P (t2), 20030623);
|
||||||
|
@ -1170,7 +1167,7 @@ compparms (tree parms1, tree parms2)
|
||||||
they fail to match. */
|
they fail to match. */
|
||||||
if (!t1 || !t2)
|
if (!t1 || !t2)
|
||||||
return false;
|
return false;
|
||||||
if (!same_type_p (TREE_VALUE (t2), TREE_VALUE (t1)))
|
if (!same_type_p (TREE_VALUE (t1), TREE_VALUE (t2)))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2003-09-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||||
|
|
||||||
|
PR c++/7939
|
||||||
|
* g++.dg/template/crash11.C: New test.
|
||||||
|
|
||||||
2003-09-16 Jason Merrill <jason@redhat.com>
|
2003-09-16 Jason Merrill <jason@redhat.com>
|
||||||
Jakub Jelinek <jakub@redhat.com>
|
Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
|
9
gcc/testsuite/g++.dg/template/crash11.C
Normal file
9
gcc/testsuite/g++.dg/template/crash11.C
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
// { dg-do compile }
|
||||||
|
|
||||||
|
// Origin: kparz@iastate.edu
|
||||||
|
|
||||||
|
// PR c++/7939: ICE for invalid function parameter after template
|
||||||
|
// substitution.
|
||||||
|
|
||||||
|
template <class T, class U> void foo(T, U) {}
|
||||||
|
template <class T> void foo<T,void>(T, void) {} // { dg-error "incomplete|invalid|partial" }
|
Loading…
Add table
Reference in a new issue