C++: special-case single non-viable candidate (more PR c++/85110)
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.bugs / 900330_02.C
blobf1591b2e5c7d6e2f1eed6a15a5dedeae9a888b53
1 // { dg-do assemble  }
2 // g++ 1.37.1 bug 900330_02
4 // The C++ Reference Manual says in section 13.1:
6 // "Two function declarations of the same name refer to the same function
7 // if they are in the same scope and have identical argument types.  A
8 // function member of a derived class is *not* in the same scope as a function
9 // member of the same name in a base class."
11 // g++ fails to correctly detect the error indicated.
13 // Cfront 2.0 passes this test.
15 // keywords: function, member, overloading, hiding
17 struct B {
18   int f(int);
21 struct D : public B {
22   int f(struct B);              // { dg-message "D::f|no known conversion" } referred to below
25 void h(D* pd)
27   pd->f(1);             // { dg-error "cannot convert" } D::f(struct B) hides B::f(int)
30 int main () { return 0; }