aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2022-07-20 16:57:32 -0700
committerH.J. Lu <hjl.tools@gmail.com>2022-08-01 11:28:43 -0700
commit80928920147a109a7f8735bffc55a72cbe8db185 (patch)
treec3ac6187809c53e614b8f72a8597651aa52f1be3 /gcc/c
parent32566720f3a9135fa355f0304f024a79f107a1b8 (diff)
downloadgcc-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