To get more specific about Sebastian's patch, I tried it out and it works quite well, Clang is pretty robust: typedef int fn(int,int); int f() { int a; reinterpret_cast<fn>(a)(1,2,3); int (*fx)(int,int) = reinterpret_cast<fn>(a); } -Argiris