PR ld/25754 tests verify that relocations against absolute symbol are
properly handled, using 42 as the absolute symbol value. But GCC 17
treats 42 as the impossible symbol address, which is the absolute symbol
value and optimize out the symbol address check:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125869
Use 0x10000, instead of 42, as absolute symbol value to work with GCC 17.
PR ld/34298
* testsuite/ld-elf/pr25754-1a.c (main): Check against 0x10000
instead of 42.
* testsuite/ld-elf/pr25754-1b.s (bar): Replace 42 with 0x10000.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
int
main ()
{
- if ((uintptr_t) get_bar () == 42)
+ if ((uintptr_t) get_bar () == 0x10000)
printf ("PASS\n");
return 0;
}
.data
.global bar
- bar = 42
+ bar = 0x10000