https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103455
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced: template <class T> struct rp { T* operator->() const; operator T*() const; template <class U> explicit operator U*() const; }; struct b {}; typedef void (b::*fptr)(); void foo(rp<b> n, fptr h) { (n->*h)(); }