Compiling the example below with g++ from snapshot 4.1.0 20050716 causes the following error message:
> g++ -O2 ICE_vrp.cpp ICE_vrp.cpp: In function 'int main()': ICE_vrp.cpp:17: internal compiler error: in vrp_evaluate_conditional, at tree-vrp.c:3048 Version 3.4.4 correctly creates an executeable that returns exit code 0. ------------------------------------------------------------ ICE_vrp.cpp 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; } -- Summary: ICE in vrp_evaluate_conditional Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: critical Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: paul dot woegerer at nsc dot com CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22550