https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115673

--- Comment #20 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Uroš Bizjak from comment #18)
> Created attachment 60331 [details]
> Prototype patch
> 
> Prototype patch that disables constraints, unwanted with
> flag_force_indirect_call.

It doesn't work:

$ ./xgcc -B./ -S -O2 -fpic -fno-plt -mforce-indirect-call
/export/gnu/import/git/gitlab/x86-gcc-test/gcc/testsuite/gcc.target/i386/pr66232-1.c
/export/gnu/import/git/gitlab/x86-gcc-test/gcc/testsuite/gcc.target/i386/pr66232-1.c:
In function ‘foo’:
/export/gnu/import/git/gitlab/x86-gcc-test/gcc/testsuite/gcc.target/i386/pr66232-1.c:10:1:
error: unrecognizable insn:
   10 | }
      | ^
(call_insn/j 16 2 6 2 (parallel [
            (call (mem:QI (mem/u/c:DI (const:DI (unspec:DI [
                                    (symbol_ref:DI ("bar") [flags 0x41]
<function_decl 0x7fe874fc0b00 bar>)
                                ] UNSPEC_GOTPCREL)) [0  S8 A8]) [0  S1 A8])
                (const_int 0 [0]))
            (unspec [
                    (const_int 0 [0])
                ] UNSPEC_PEEPSIB)
        ])
"/export/gnu/import/git/gitlab/x86-gcc-test/gcc/testsuite/gcc.target/i386/pr66232-1.c":9:3
-1
     (nil)
    (nil))
during RTL pass: cprop_hardreg
/export/gnu/import/git/gitlab/x86-gcc-test/gcc/testsuite/gcc.target/i386/pr66232-1.c:10:1:
internal compiler error: in extract_insn, at recog.cc:2882
0x2ca2d9f internal_error(char const*, ...)
       
/export/gnu/import/git/gitlab/x86-gcc-test/gcc/diagnostic-global-context.cc:517
0x2c7254d fancy_abort(char const*, int, char const*)
        /export/gnu/import/git/gitlab/x86-gcc-test/gcc/diagnostic.cc:1722
0xd8c4bc _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        /export/gnu/import/git/gitlab/x86-gcc-test/gcc/rtl-error.cc:108
0xd8c4fd _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        /export/gnu/import/git/gitlab/x86-gcc-test/gcc/rtl-error.cc:116
0xd35ee3 extract_insn(rtx_insn*)
        /export/gnu/import/git/gitlab/x86-gcc-test/gcc/recog.cc:2882
0xd35bca extract_constrain_insn(rtx_insn*)
        /export/gnu/import/git/gitlab/x86-gcc-test/gcc/recog.cc:2781
0xd4447c copyprop_hardreg_forward_1
        /export/gnu/import/git/gitlab/x86-gcc-test/gcc/regcprop.cc:836
0xd45e64 cprop_hardreg_bb
        /export/gnu/import/git/gitlab/x86-gcc-test/gcc/regcprop.cc:1356
0xd46138 execute
        /export/gnu/import/git/gitlab/x86-gcc-test/gcc/regcprop.cc:1423
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Please add -mforce-indirect-call to all pr66232-XX.c to verify that
all PR 66232 tests pass with -mforce-indirect-call.

Reply via email to