https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111531
--- Comment #4 from Paul Haile <paulhaile3 at gmail dot com> --- The only time I could imagine allowing type mismatch would be in allowing the function pointer to allow void * in type erased contexts. e.g. ---- typedef void (*b_fptr)(void *); ----