From 34ff26738c101dfa4a8dd25aecd3719f4481824a Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Sat, 6 Sep 2003 16:14:30 +0000 Subject: [PATCH] re PR c++/11409 (using declarations and fabs built-in) PR c++/11409 * class.c (resolve_address_of_overloaded_function): When building list of matching non-template function decls, ignore anticipated declarations of undeclared or shadowed GCC builtins. * g++.dg/overload/builtin3.C: New test case. From-SVN: r71139 --- gcc/cp/ChangeLog | 7 +++++++ gcc/cp/class.c | 6 +++++- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/overload/builtin3.C | 10 ++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/overload/builtin3.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 49782e3f3b1..944bfd789ee 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2003-09-06 Roger Sayle + + PR c++/11409 + * class.c (resolve_address_of_overloaded_function): When building + list of matching non-template function decls, ignore anticipated + declarations of undeclared or shadowed GCC builtins. + 2003-09-06 Steven Bosscher PR c++/11595 diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 1bd63cffa6b..80765c0d960 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -5777,7 +5777,11 @@ cannot resolve overloaded function `%D' based on conversion to type `%T'", /* We're looking for a non-static member, and this isn't one, or vice versa. */ continue; - + + /* Ignore anticipated decls of undeclared builtins. */ + if (DECL_ANTICIPATED (fn)) + continue; + /* See if there's a match. */ fntype = TREE_TYPE (fn); if (is_ptrmem) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 65f499d1834..e3c766c482e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-09-06 Roger Sayle + + PR c++/11409 + * g++.dg/overload/builtin3.C: New test case. + 2003-09-06 Steven Bosscher PR c/9862 diff --git a/gcc/testsuite/g++.dg/overload/builtin3.C b/gcc/testsuite/g++.dg/overload/builtin3.C new file mode 100644 index 00000000000..dcd9fd02e38 --- /dev/null +++ b/gcc/testsuite/g++.dg/overload/builtin3.C @@ -0,0 +1,10 @@ +// PR c++/11409 +// { dg-do compile } + +namespace std { + double fabs (double); +} +using std::fabs; + +double (*p) (double) = &fabs; // { dg-bogus "is ambiguous" "" } + -- 2.30.2