https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- A little more reduced: ``` namespace g { extern "C" void free(void *); } using g::free; extern "C" void free (void *); void foo1 (void *p) { free (p); } void (*foo2) (void *) = free; extern "C" { void foo3 (void *p) { free (p); } void (*foo4) (void *) = free; } extern "C" wchar_t * wcsdup (const wchar_t *s) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (free, 1))); ```