cad19a2c3053d566fb0af703ba03856659286141
[gcc.git] / gcc / testsuite / g++.old-deja / g++.bugs / 900330_02.C
1 // { dg-do assemble }
2 // g++ 1.37.1 bug 900330_02
3
4 // The C++ Reference Manual says in section 13.1:
5
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."
10
11 // g++ fails to correctly detect the error indicated.
12
13 // Cfront 2.0 passes this test.
14
15 // keywords: function, member, overloading, hiding
16
17 struct B {
18 int f(int);
19 };
20
21 struct D : public B {
22 int f(struct B); // { dg-message "D::f|no known conversion" } referred to below
23 };
24
25 void h(D* pd)
26 {
27 pd->f(1); // { dg-error "no matching" } D::f(struct B) hides B::f(int)
28 // { dg-message "candidate" "candidate note" { target *-*-* } 27 }
29 }
30
31 int main () { return 0; }