aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2013-11-16 09:54:23 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-11-16 09:54:23 +0000
commit5edc02ac2219491b8db8b460ae5e0afdb7ff2c3b (patch)
treedc7fd36c79ee87ed43f342736d51901dceb69883
parent3a81b570d265d49b6ff0e813063a986c0eca73f2 (diff)
downloadgcc-5edc02ac2219491b8db8b460ae5e0afdb7ff2c3b.zip
gcc-5edc02ac2219491b8db8b460ae5e0afdb7ff2c3b.tar.gz
gcc-5edc02ac2219491b8db8b460ae5e0afdb7ff2c3b.tar.bz2
re PR c++/29143 (address-of overloaded function does not work in function call)
/cp 2013-11-16 Paolo Carlini <paolo.carlini@oracle.com> PR c++/29143 * semantics.c (finish_call_expr): Ensure that for OVERLOADs too '(&f)(...)' is the same as '(f)(...)', per 13.3.1.1. /testsuite 2013-11-16 Paolo Carlini <paolo.carlini@oracle.com> PR c++/29143 * g++.dg/overload/addr2.C: New. * g++.old-deja/g++.other/overload11.C: Adjust. From-SVN: r204898
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/overload/addr2.C13
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/overload11.C2
3 files changed, 20 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2adcce4..3f7e1be 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2013-11-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/29143
+ * g++.dg/overload/addr2.C: New.
+ * g++.old-deja/g++.other/overload11.C: Adjust.
+
2013-11-15 Mike Stump <mikestump@comcast.net>
* lib/gcc.exp (gcc_target_compile): Add support for random runtime
diff --git a/gcc/testsuite/g++.dg/overload/addr2.C b/gcc/testsuite/g++.dg/overload/addr2.C
new file mode 100644
index 0000000..1d0c66b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/overload/addr2.C
@@ -0,0 +1,13 @@
+// PR c++/29143
+
+void f(int);
+
+void g(int,int);
+void g(int,int,int);
+
+void
+h ()
+{
+ (&f)(1);
+ (&g)(1,2,3);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload11.C b/gcc/testsuite/g++.old-deja/g++.other/overload11.C
index b994b80..0b910e4 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/overload11.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/overload11.C
@@ -32,7 +32,7 @@ int main (int argc, char **argv)
void (*vptr) ();
(ovl) (1); // ok
- (&ovl) (1); // { dg-error "" } not suitable for overload resolution
+ (&ovl) (1); // ok
(ovl) (); // { dg-error "" } no matching candidates
// { dg-message "candidate" "candidate note" { target *-*-* } 36 }
(&ovl) (); // { dg-error "" } not suitable for overload resolution