diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2022-07-20 16:57:32 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2022-08-01 11:28:43 -0700 |
commit | 80928920147a109a7f8735bffc55a72cbe8db185 (patch) | |
tree | c3ac6187809c53e614b8f72a8597651aa52f1be3 /gcc/c | |
parent | 32566720f3a9135fa355f0304f024a79f107a1b8 (diff) | |
download | gcc-80928920147a109a7f8735bffc55a72cbe8db185.zip gcc-80928920147a109a7f8735bffc55a72cbe8db185.tar.gz gcc-80928920147a109a7f8735bffc55a72cbe8db185.tar.bz2 |
x86: Add ix86_ifunc_ref_local_ok
We can't always use the PLT entry as the function address for local IFUNC
functions. When the PIC register is needed for PLT call, indirect call
via the PLT entry will fail since the PIC register may not be set up
properly for indirect call. Add ix86_ifunc_ref_local_ok to return false
when the PLT entry can't be used as local IFUNC function pointers.
gcc/
PR target/83782
* config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
(TARGET_IFUNC_REF_LOCAL_OK): Use it.
gcc/testsuite/
PR target/83782
* gcc.target/i386/pr83782-1.c: Require non-ia32.
* gcc.target/i386/pr83782-2.c: Likewise.
* gcc.target/i386/pr83782-3.c: New test.
Diffstat (limited to 'gcc/c')
0 files changed, 0 insertions, 0 deletions