https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81854
Tamar Christina <tnfchris at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tnfchris at gcc dot gnu.org --- Comment #14 from Tamar Christina <tnfchris at gcc dot gnu.org> --- Hi Martin, the changed tests seem to be failing on arm-none-linux-gnueabihf: FAIL: g++.dg/ext/attr-ifunc-1.C -std=gnu++11 execution test FAIL: g++.dg/ext/attr-ifunc-1.C -std=gnu++14 execution test FAIL: g++.dg/ext/attr-ifunc-1.C -std=gnu++98 execution test FAIL: g++.dg/ext/attr-ifunc-2.C -std=gnu++11 execution test FAIL: g++.dg/ext/attr-ifunc-2.C -std=gnu++14 execution test FAIL: g++.dg/ext/attr-ifunc-2.C -std=gnu++98 execution test FAIL: g++.dg/ext/attr-ifunc-3.C -std=gnu++11 execution test FAIL: g++.dg/ext/attr-ifunc-3.C -std=gnu++14 execution test FAIL: g++.dg/ext/attr-ifunc-3.C -std=gnu++98 execution test FAIL: g++.dg/ext/attr-ifunc-4.C -std=gnu++11 execution test FAIL: g++.dg/ext/attr-ifunc-4.C -std=gnu++14 execution test FAIL: g++.dg/ext/attr-ifunc-4.C -std=gnu++98 execution test running in gdb I get Starting program: /home/tnfchris/gcc-fsf/attr-ifunc-1.exe Program received signal SIGSEGV, Segmentation fault. 0x00010540 in Klass::resolver () at gcc/testsuite/g++.dg/ext/attr-ifunc-1.C:26 26 return &Klass::implementation; (gdb) bt #0 0x00010540 in Klass::resolver () at gcc/testsuite/g++.dg/ext/attr-ifunc-1.C:26 #1 0xf77cfc86 in elf_machine_rel (skip_ifunc=<optimized out>, reloc_addr_arg=0x2101c, version=<optimized out>, sym=0x101fc, reloc=0x103e0, map=0xf77f0968) at ../sysdeps/arm/dl-machine.h:523 #2 elf_dynamic_do_Rel (skip_ifunc=<optimized out>, lazy=<optimized out>, nrelative=<optimized out>, relsize=<optimized out>, reladdr=<optimized out>, map=0xf77f0968) at do-rel.h:137 #3 _dl_relocate_object (scope=<optimized out>, reloc_mode=<optimized out>, consider_profiling=<optimized out>, consider_profiling@entry=0) at dl-reloc.c:258 #4 0xf77ca1f6 in dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=<optimized out>, auxv=<optimized out>) at rtld.c:2185 #5 0xf77d76c8 in _dl_sysdep_start (start_argptr=start_argptr@entry=0xfffef671, dl_main=0xf77c86e1 <dl_main>) at ../elf/dl-sysdep.c:253 #6 0xf77c8222 in _dl_start_final (arg=0xfffef671) at rtld.c:414 #7 _dl_start (arg=0xfffef671) at rtld.c:520 #8 0xf77c7b50 in _start () from /lib/ld-linux-armhf.so.3 It seems to be segfaulting on the return address => 0x10538 <Klass::resolver()>: movw r3, #1317 ; 0x525 0x1053c <Klass::resolver()+4>: movt r3, #1 0x10540 <Klass::resolver()+8>: str r3, [r0, #0] it goes wrong at the store, since r0 doesn't seem to contain a valid address (gdb) x $r0 0x37b0d6: Cannot access memory at address 0x37b0d6 Any ideas what's going on here?