diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index a43b0f0e8f0b594d67d4d34da3b4c39876093784..9590cd9a8c98ba1e5dbfbeac25b6a0627d1fff8f 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -10225,7 +10225,7 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, fnaddr = gen_rtx_MEM (QImode, construct_plt_address (XEXP (fnaddr, 0))); /* Since x32 GOT slot is 64 bit with zero upper 32 bits, indirect branch via x32 GOT slot is OK. */ - if (TARGET_X32 + else if (TARGET_X32 && MEM_P (fnaddr) && GET_CODE (XEXP (fnaddr, 0)) == ZERO_EXTEND && GOT_memory_operand (XEXP (XEXP (fnaddr, 0), 0), Pmode)