https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103455
--- Comment #2 from Stephan Hartmann <stha09 at googlemail dot com> --- Handwritten reduced testcase: template <typename T> struct raw_ptr { T* operator->() const; template <typename U> explicit operator U*() const; }; struct bar { static void func(); }; struct foo { typedef void (bar::*GenFunc)(); foo(GenFunc gen_func) { (bar_->*gen_func)(); } raw_ptr<bar> bar_; };