r15-1619-g3b9b8d6cfdf593 changed the codegen from f2: .cfi_startproc pushq %rbx .cfi_def_cfa_offset 16 .cfi_offset 3, -16 movq f1@GOTPCREL(%rip), %rbx call *%rbx leaq f3(%rip), %rax call *%rax movq %rbx, %rax popq %rbx .cfi_def_cfa_offset 8 jmp *%rax .cfi_endproc
to f2: .cfi_startproc subq $8, %rsp .cfi_def_cfa_offset 16 call *f1@GOTPCREL(%rip) leaq f3(%rip), %rax call *%rax addq $8, %rsp .cfi_def_cfa_offset 8 jmp *f1@GOTPCREL(%rip) .cfi_endproc Since it is OK to indirect call via memory for -mforce-indirect-call, allow indirect branch via GOT. PR target/115673 * gcc.target/i386/force-indirect-call-2.c: Allow indirect branch via GOT. Signed-off-by: H.J. Lu <hjl.to...@gmail.com> --- gcc/testsuite/gcc.target/i386/force-indirect-call-2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.target/i386/force-indirect-call-2.c b/gcc/testsuite/gcc.target/i386/force-indirect-call-2.c index 2f702363041..405c97c8000 100644 --- a/gcc/testsuite/gcc.target/i386/force-indirect-call-2.c +++ b/gcc/testsuite/gcc.target/i386/force-indirect-call-2.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mforce-indirect-call -fPIC" } */ /* { dg-require-effective-target fpic } */ -/* { dg-final { scan-assembler-times "(?:call|jmp)\[ \\t\]+\\*%" 3 } } */ +/* { dg-final { scan-assembler-times "(?:call|jmp)\[ \\t\]+\\*" 3 } } */ #include "force-indirect-call-1.c" -- 2.48.1