/cp
[official-gcc.git] / gcc / testsuite / g++.dg / conversion / ptrmem7.C
blobad75a52bc5e35e402bdbdd9f796083ec78d3add0
1 // Copyright (C) 2007 Free Software Foundation
2 // Contributed by Ollie Wild <aaw@google.com>
3 // { dg-do compile }
5 // Assorted pointer to member function implicit cast tests.
7 struct A { int f (); };
8 struct B : A { int f (); };
9 struct P : A { int f (); };
10 struct V { int f (); };
11 struct D : B, virtual V, private P { int f (); };
13 // Valid.
14 int (D::*p1)() = &B::f;
16 // Derived class.
17 int (B::*p2)() = &D::f; // { dg-error "" }
19 // Virtual base class.
20 int (D::*p3)() = &V::f; // { dg-error "" }
22 // Inaccessible base class.
23 int (D::*p4)() = &P::f; // { dg-error "" }
25 // Ambiguous base class.
26 int (D::*p5)() = &A::f;  // { dg-error "" }
28 // Different member type.
29 float (D::*p6)() = &B::f;  // { dg-error "" }