binutils-gdb/ld/testsuite/ld-elf/pr18720a.c
Alan Modra 37d7d56cae ld testsuite function pointer comparisons vs. hppa
ld/testsuite/ld-elf/check-ptr-eq.c fails for hppa, since function
pointers may point at plabels.  It isn't valid to cast two function
pointers to void* and then compare the void pointers.

	* testsuite/ld-elf/check-ptr-eq.c (check_ptr_eq): Change params
	from void pointers to function pointers.
	* testsuite/ld-elf/pr18718.c: Update to suit.
	* testsuite/ld-elf/pr18720a.c: Update to suit.
2017-02-16 23:10:09 +10:30

28 lines
478 B
C

#include <bfd_stdint.h>
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;
}