diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.law/arg1.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.law/arg1.C | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg1.C b/gcc/testsuite/g++.old-deja/g++.law/arg1.C new file mode 100644 index 000000000..3fc42bccc --- /dev/null +++ b/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 } +} + |