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

            Bug ID: 67400
           Summary: -fno-plt doesn't work with function pointers
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
  Target Milestone: ---

[hjl@gnu-mic-2 gcc]$ cat /tmp/foo.c
extern void abort (void);

int
main (void)
{
  return &abort;
}
[hjl@gnu-mic-2 gcc]$ ./xgcc -B./ -fno-plt -fno-pic  -O2 /tmp/foo.c
/tmp/foo.c: In function \u2018main\u2019:
/tmp/foo.c:6:10: warning: return makes integer from pointer without a cast
[-Wint-conversion]
   return &abort;
          ^
[hjl@gnu-mic-2 gcc]$ readelf -r a.out 

Relocation section '.rela.dyn' at offset 0x330 contains 1 entries:
  Offset          Info           Type           Sym. Value    Sym. Name +
Addend
000000600880  000300000006 R_X86_64_GLOB_DAT 0000000000000000 __gmon_start__ +
0

Relocation section '.rela.plt' at offset 0x348 contains 2 entries:
  Offset          Info           Type           Sym. Value    Sym. Name +
Addend
0000006008a0  000100000007 R_X86_64_JUMP_SLO 00000000004003b0 abort@GLIBC_2.2.5
+ 0
0000006008a8  000200000007 R_X86_64_JUMP_SLO 0000000000000000
__libc_start_main@GLIBC_2.2.5 + 0
[hjl@gnu-mic-2 gcc]$

Reply via email to