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)));
```
