extern int foo(void); typedef int (*func_p) (void); extern func_p foo_ptr; void check_foo (void) { if (foo_ptr != foo) __builtin_abort (); if (foo_ptr() != 1) __builtin_abort (); if (foo() != 1) __builtin_abort (); }