// { dg-do assemble } // GROUPS passed pointers-to-members struct C { struct N { int g1(int); int g2(int); }; typedef int (N::*pmfn)(int); int f1(int); int f2(int); }; int (C::*f)(int) = &C::f1; /* The compiler should not crash on the line below; this change fixes it: * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't have TYPE_PTRMEMFUNC_P set before we try to build its CLASSTYPE_ID_AS_LIST. */ C::pmfn h = &C::N::g1; int (C::N::*g)(int) = &C::N::g2;