From 579c35ef84574ebc73f2fa7fe1099b6c8d377b3c Mon Sep 17 00:00:00 2001 From: Volker Reichelt Date: Wed, 21 Sep 2005 15:39:53 +0000 Subject: [PATCH] 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: r104490 --- 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(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index acc38cc6a386..0d4d3093146a 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-21 Volker Reichelt PR c++/17609 diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 067b0450c454..ff3f3967ab08 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -2544,7 +2544,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 186b5e5f6b63..6ee73905921d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +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 diff --git a/gcc/testsuite/g++.dg/template/error1.C b/gcc/testsuite/g++.dg/template/error1.C index c23e33c12815..03a83239238d 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" "" } } -- 2.47.2