x86: Disable -mforce-indirect-call for PIC in 32-bit mode
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 16 Jan 2023 18:45:41 +0000 (10:45 -0800)
committerH.J. Lu <(no_default)>
Mon, 16 Jan 2023 22:11:12 +0000 (14:11 -0800)
commita396a123596d82d4a2f14dc43a382cb17826411c
treee26fc34f529a7ee5bdde5cd499ea2f501dee4a3e
parent2bf9bbfe5b377003a29d6560d69baa605382b895
x86: Disable -mforce-indirect-call for PIC in 32-bit mode

-mforce-indirect-call generates invalid instruction in 32-bit MI thunk
since there are no available scratch registers in 32-bit PIC mode.
Disable -mforce-indirect-call for PIC in 32-bit mode when generating
MI thunk.

gcc/

PR target/105980
* config/i386/i386.cc (x86_output_mi_thunk): Disable
-mforce-indirect-call for PIC in 32-bit mode.

gcc/testsuite/

PR target/105980
* g++.target/i386/pr105980.C: New test.
gcc/config/i386/i386.cc
gcc/testsuite/g++.target/i386/pr105980.C [new file with mode: 0644]