#include extern void bar (void); extern void foo (void); extern void foo_alias (void); extern void check_ptr_eq (void (*) (void), void (*) (void)); #if defined(__GNUC__) && (__GNUC__ * 1000 + __GNUC_MINOR__) >= 4005 __attribute__ ((noinline, noclone)) #else __attribute__ ((noinline)) #endif int foo_p (void) { return (intptr_t) &foo == 0x12345678 ? 1 : 0; } int main (void) { foo (); foo_p (); bar (); check_ptr_eq (&foo, &foo_alias); return 0; }