1234567891011121314151617181920212223242526272829303132333435 |
- #include <stdio.h>
- #include <stdint.h>
- extern void foo (void);
- extern void check_ptr_eq (void (*) (void), void (*) (void));
- void
- new_foo (void)
- {
- }
- __asm__(".symver new_foo, foo@@VERS_2.0");
- #if defined __powerpc64__ && defined _CALL_AIXDESC && !defined _CALL_LINUX
- __asm__(".symver .new_foo, .foo@@VERS_2.0");
- #endif
- #if defined(__GNUC__) && (__GNUC__ * 1000 + __GNUC_MINOR__) >= 4005
- __attribute__ ((noinline, noclone))
- #else
- __attribute__ ((noinline))
- #endif
- int
- bar (void)
- {
- return (intptr_t) &foo == 0x12345678 ? 1 : 0;
- }
- int
- main(void)
- {
- bar ();
- check_ptr_eq (&foo, &new_foo);
- printf("PASS\n");
- return 0;
- }
|