https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116449
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-08-21 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Summary|Miscompilation with UBSAN |Miscompilation and missing |with pointer to member |bounds check with UBSAN |functions and array |with pointer to member |accesses |functions and array | |accesses --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. A related issue is a missing bounds check on parr[c] with: ``` struct C { void P(int); void IP(); int parr[16]; }; typedef void (C::*fp)(); typedef struct arr_t { fp func; } arr_t; static arr_t farr[1] = { { &C::IP }, }; int f(int a) { return a; } void C::P(int c) { ((*this).*farr[f(parr[c])].func)(); } ```