[Bug target/78253] [ARM] call weak function instead of strong when called through pointer

clyon at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Nov 8 14:55:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78253

--- Comment #3 from Christophe Lyon <clyon at gcc dot gnu.org> ---
Compile the attached code with:
CFLAGS="-marm -fpie"
arm-linux-gnueabi-gcc $CFLAGS -c main.c -o main.o
arm-linux-gnueabi-gcc $CFLAGS -c some_module.c -o some_module.o

Link with
arm-linux-gnueabi-gcc -pie -o test_weak main.o some_module.o

Correct execution should show:
  Entering test_weak_funcion_call
  This line is to avoid optimization in further call_weak_by_pointer
    res_pointer_call = 11
    res_direct_call = 11
  All Ok

But instead we have:
  Entering test_weak_funcion_call
  This line is to avoid optimization in further call_weak_by_pointer
    res_pointer_call = 10
    res_direct_call = 11
  ERROR: Results from direct call and from call via pointer differs


The behaviour changed with r220674.


More information about the Gcc-bugs mailing list