diff options
Diffstat (limited to 'ld/testsuite/ld-elf/pr18720a.c')
-rw-r--r-- | ld/testsuite/ld-elf/pr18720a.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/ld/testsuite/ld-elf/pr18720a.c b/ld/testsuite/ld-elf/pr18720a.c new file mode 100644 index 0000000..752623b --- /dev/null +++ b/ld/testsuite/ld-elf/pr18720a.c @@ -0,0 +1,27 @@ +#include <bfd_stdint.h> + +extern void bar (void); +extern void foo (void); +extern void foo_alias (void); +extern void check_ptr_eq (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; +} |