f2
f2(f func, int i)
#define f2(x) [[x<<1]^[[[x>>7]&1]*0x11b]]
void f2(void) { int (*f)(void); f = **fun; } // C99,C11 6.5.3.2p4
u32 f2(u32 a) { return (**__builtin_popcount)(a); } // C99,C11 6.5.3.2p4
int f2(void) { return (**fun)(); } // C99,C11 6.5.3.2p4
double f2(void) { return (double)-1; }