f3
#define f3(x) [[f2(x)] ^ [x]]
void f3(void) { int (*f)(void); f = ***fun; } // C99,C11 6.5.3.2p4
u32 f3(u32 a) { return (***__builtin_popcount)(a); } // C99,C11 6.5.3.2p4
int f3(void) { return (***fun)(); } // C99,C11 6.5.3.2p4
double f3(void) { return -1.0; }