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?

Reply via email to