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

            Bug ID: 85196
           Summary: [6/7 regression] ICE in extract_insn, at recog.c:2311:
                    unrecognizable insn
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: ebotcazou at gcc dot gnu.org
  Target Milestone: ---
            Target: sparc-sun-solaris2.*

Created attachment 43841
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43841&action=edit
reduced testcase: Unified_cpp_js_src10.ii

The attached testcase, reduced from mozjs-38.0.0
js/src/Unified_cpp_js_src10.cpp, ICEs on 64-bit Solaris/SPARC:

$ 
cc1plus -fpreprocessed Unified_cpp_js_src10.ii -mptr64 -mstack-bias -mno-v8plus
-mcpu=v9 -quiet -m64 -O -w -fPIC -fpermissive
Unified_cpp_js_src10.ii: In function 'int ba()':
Unified_cpp_js_src10.ii:82:36: error: unrecognizable insn:
 ba() { an::au<an::v>(ax, ay, &az); }
                                    ^
(insn 28 56 29 6 (set (reg/f:DI 122)
        (const:DI (plus:DI (label_ref:DI 34)
                (const_int 32 [0x20])))) "Unified_cpp_js_src10.ii":19 -1
     (insn_list:REG_LABEL_OPERAND 34 (nil)))
Unified_cpp_js_src10.ii:82:36: internal compiler error: in extract_insn, at
recog.c:2311
0x908e33 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        /vol/gcc/src/hg/gcc-7-branch/local/gcc/rtl-error.c:108
0x908e6f _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        /vol/gcc/src/hg/gcc-7-branch/local/gcc/rtl-error.c:116
0x8ceef7 extract_insn(rtx_insn*)
        /vol/gcc/src/hg/gcc-7-branch/local/gcc/recog.c:2311
0x6f2fef instantiate_virtual_regs_in_insn
        /vol/gcc/src/hg/gcc-7-branch/local/gcc/function.c:1589
0x6f2fef instantiate_virtual_regs
        /vol/gcc/src/hg/gcc-7-branch/local/gcc/function.c:1957
0x6f2fef execute
        /vol/gcc/src/hg/gcc-7-branch/local/gcc/function.c:2006

This only happens on the gcc-6 and 7 branches, while gcc-5 and trunk are fine.

  Rainer

Reply via email to