// Copyright (C) 2007 Free Software Foundation // Contributed by Ollie Wild // { dg-do compile } // Test implicit conversion of pointers to member functions appearing as // operands of the equality operators. struct B { }; struct BV { }; struct D : B, virtual BV { }; struct C { }; void f () { void (D::*pd) () = 0; void (B::*pb) () = 0; void (BV::*pbv) () = 0; void (C::*pc) () = 0; pd == pb; pd == pbv; // { dg-error "" } pd == pc; // { dg-error "comparison between distinct pointer-to-member types" } }