The following code warns on clang, but does not warn on GCC.
typedef int unary_int_func(int arg);
unary_int_func *func;
void set_func(void *p) {
func = p;
}
test.c:5:8: warning: incompatible pointer types assigning 'void *' to
'unary_int_func *'
--
Seo Sanghyeon