/* { dg-do compile } */ /* { dg-options "-O2" } */ class X { public: int mfunc1 () { return 1; } int mfunc2 () { return 2; } X (int a, int b) { } }; typedef int (X::*memfunc_p_t) (); memfunc_p_t mf_arr[2] = { &X::mfunc1, &X::mfunc2 }; int main () { // Get pntr to the array of pointers to member-funcs memfunc_p_t (*mf_arr_p)[2] = &mf_arr; // Compare indirect against direct access to an array element if ((*mf_arr_p)[0] != mf_arr[0]) return 1; return 0; }