aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.old-deja/g++.law/arg1.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.old-deja/g++.law/arg1.C')
-rw-r--r--gcc-4.9/gcc/testsuite/g++.old-deja/g++.law/arg1.C32
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.old-deja/g++.law/arg1.C b/gcc-4.9/gcc/testsuite/g++.old-deja/g++.law/arg1.C
new file mode 100644
index 000000000..3fc42bccc
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/g++.old-deja/g++.law/arg1.C
@@ -0,0 +1,32 @@
+// { dg-do assemble }
+// GROUPS passed arg-matching
+// arg-matching file
+// Subject: argument matching depending on the def order
+// From: kondo@akane.mech.ibaraki.ac.jp
+// Date: Fri, 04 Sep 92 17:41:05 JST
+
+#include <iostream>
+// check the order of declarations
+class A {
+public:
+ void f(double* p) { std::cout << "A(double*)\n"; } // { dg-message "note" }
+ void f(int* p) { std::cout << "A(int*)\n"; } // { dg-message "note" }
+};
+
+class B {
+public:
+ void f(int* p) { std::cout << "B(int*)\n"; } // { dg-message "note" }
+ void f(double* p) { std::cout << "B(double*)\n"; } // { dg-message "note" }
+};
+
+int main()
+{
+ A a;
+ B b;
+
+ a.f(0);// { dg-error "ambiguous" }
+ // { dg-message "candidate" "candidate note" { target *-*-* } 27 }
+ b.f(0);// { dg-error "ambiguous" }
+ // { dg-message "candidate" "candidate note" { target *-*-* } 29 }
+}
+