From 1bf83ca3ddc1d6f98ea66a39eef82642ef200062 Mon Sep 17 00:00:00 2001 From: Volker Reichelt Date: Wed, 21 Sep 2005 15:34:41 +0000 Subject: re PR c++/23965 (Bogus error message: no matching function for call to 'foo()') PR c++/23965 * call.c (resolve_args): Return error_mark_node on arguments whose TREE_TYPE is error_mark_node. * g++.dg/template/error1.C: Reject "no matching function" message. From-SVN: r104489 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/call.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/template/error1.C | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5bdf8bd..56c3a2c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2005-09-21 Volker Reichelt + + PR c++/23965 + * call.c (resolve_args): Return error_mark_node on arguments + whose TREE_TYPE is error_mark_node. + 2005-09-20 Jakub Jelinek PR c++/23947 diff --git a/gcc/cp/call.c b/gcc/cp/call.c index e8f93c4..3507e582 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -2689,7 +2689,7 @@ resolve_args (tree args) { tree arg = TREE_VALUE (t); - if (arg == error_mark_node) + if (arg == error_mark_node || error_operand_p (arg)) return error_mark_node; else if (VOID_TYPE_P (TREE_TYPE (arg))) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3d33620..b27230c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2005-09-21 Volker Reichelt + PR c++/23965 + * g++.dg/template/error1.C: Reject "no matching function" message. + +2005-09-21 Volker Reichelt + PR c++/17609 * g++.dg/lookup/error1.C: New test. diff --git a/gcc/testsuite/g++.dg/template/error1.C b/gcc/testsuite/g++.dg/template/error1.C index c23e33c..03a8323 100644 --- a/gcc/testsuite/g++.dg/template/error1.C +++ b/gcc/testsuite/g++.dg/template/error1.C @@ -9,5 +9,5 @@ template void make_pair(T x); void foo(){ struct fps_chan_ID fps; // { dg-error "incomplete" "" } - make_pair(fps); // { dg-error "no matching function" "" } + make_pair(fps); // { dg-bogus "no matching function" "" } } -- cgit v1.1