https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115673
--- Comment #14 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- (In reply to Richard Biener from comment #12) > Re-confirmed. > > +FAIL: gcc.target/i386/force-indirect-call-2.c scan-assembler-times > (?:call|jmp)[ \\t]+\\*% 3 > +FAIL: gcc.target/i386/pr91384.c scan-assembler-not testl > +FAIL: gcc.target/i386/stack-check-17.c scan-assembler-not pop > > are still there. I believe -mforce-indirect-call worked unpredictably and we were lucky that the test passed. LRA/reload works on constraints base mostly and practically does not use operand predicates only which check flag_force_indirect_call. So I see two ways to solve the problem. One is to prohibit call insn alternatives (we need more one alternatives for this) with non-reg constraints for flag_force_indirect_call. Another one is to check operand predicates in LRA. I think the 2nd way is the right one but it probably will require more work. So I'll start to work on this approach and if it will require too much work, we could switch to the machine-dependent way to fix the PR.