aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@lsd.ic.unicamp.br>1999-09-18 18:06:20 +0000
committerAlexandre Oliva <oliva@gcc.gnu.org>1999-09-18 18:06:20 +0000
commit711b552c22af933cd3122dc0c9b5012e1cc1e705 (patch)
treea15ef930c11b7f684b06fd984d317aeda3a0fc8d
parent7cd33af0c56bd98b73b22e6312ab6e3e22cf2b73 (diff)
downloadgcc-711b552c22af933cd3122dc0c9b5012e1cc1e705.zip
gcc-711b552c22af933cd3122dc0c9b5012e1cc1e705.tar.gz
gcc-711b552c22af933cd3122dc0c9b5012e1cc1e705.tar.bz2
* overload1.C: New test.
From-SVN: r29499
-rw-r--r--gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.oliva/overload1.C23
2 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
index 0000a9f..4ab874d 100644
--- a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
+++ b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
@@ -1,5 +1,7 @@
1999-09-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
+ * overload1.C: New test.
+
* inline1.C: New test.
1999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C b/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C
new file mode 100644
index 0000000..fd79dad
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C
@@ -0,0 +1,23 @@
+// Build don't link:
+
+// Copyright (C) 1999 Free Software Foundation
+
+// by Alexandre Oliva <oliva@lsd.ic.unicamp.br>
+// Based on bug report by JDonner <jdonner@schedsys.com>
+
+struct foo {
+ static int bar(); // ERROR - candidate
+ void bar(int); // ERROR - candidate
+};
+
+/* gcc emits a hard error without -pedantic, and a warning with
+ -pedantic, even in bad1. */
+int (*ok1)() = foo::bar; // gets bogus error - XFAIL *-*-*
+void (foo::*bad1)(int) = foo::bar; // ERROR - missing &
+
+int (*ok2)() = &foo::bar; // ok
+void (*bad2)(int) = foo::bar; // ERROR - overload resolution fails
+
+void (foo::*ok3)(int) = &foo::bar; // ok
+int (foo::*bad3)() = foo::bar; // ERROR - overload resolution fails
+