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

            Bug ID: 83485
           Summary: cris: ICE in extract_insn, at recog.c:2311
           Product: gcc
           Version: 7.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: arnd at linaro dot org
  Target Milestone: ---

Created attachment 42918
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42918&action=edit
linux/drivers/tty/serial/8250/8250_core.c, preprocessed

I ran into one ICE while cross-compiling an allmodconfig linux kernel for cris,
this happened with both gcc-4.9.3 and gcc-7.2.1, but not with gcc-4.3.6. I
don't care about this bug, but it seems better to report it. PR69040 seems to
be another bug that also results in an ICE, but I could not reproduce that one
with current linux sources.

$ cris-linux-gcc-7.2.1 -Wall -O2 8250_core.i -c
In file included from /git/arm-soc/include/linux/srcu.h:34:0,
                 from /git/arm-soc/include/linux/notifier.h:16,
                 from /git/arm-soc/include/linux/memory_hotplug.h:7,
                 from /git/arm-soc/include/linux/mmzone.h:775,
                 from /git/arm-soc/include/linux/gfp.h:6,
                 from /git/arm-soc/include/linux/umh.h:4,
                 from /git/arm-soc/include/linux/kmod.h:22,
                 from /git/arm-soc/include/linux/module.h:13,
                 from /git/arm-soc/drivers/tty/serial/8250/8250_core.c:17:
/git/arm-soc/include/linux/workqueue.h: In function 'work_static':
/git/arm-soc/include/linux/workqueue.h:198:2: warning: dereferencing
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  return *work_data_bits(work) & WORK_STRUCT_STATIC;
  ^~~~~~
/git/arm-soc/drivers/tty/serial/8250/8250_core.c: In function
'serial8250_unregister_port':
/git/arm-soc/drivers/tty/serial/8250/8250_core.c:1098:1: error: unrecognizable
insn:
 }
 ^
(insn 121 120 92 5 (set (reg:QI 9 r9 [95])
        (ior:QI (mem:QI (reg/f:SI 10 r10 [87]) [94 MEM[(struct uart_8250_port
*)&serial8250_ports][line_9(D)].port.quirks+0 S1 A8])
            (reg:QI 9 r9 [89])))
"/git/arm-soc/drivers/tty/serial/8250/8250_core.c":496 -1
     (nil))
/git/arm-soc/drivers/tty/serial/8250/8250_core.c:1098:1: internal compiler
error: in extract_insn, at recog.c:2311
0x9424f3 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        /home/arnd/git/gcc/gcc/rtl-error.c:108
0x942529 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        /home/arnd/git/gcc/gcc/rtl-error.c:116
0x910039 extract_insn(rtx_insn*)
        /home/arnd/git/gcc/gcc/recog.c:2311
0x9100a1 extract_insn_cached(rtx_insn*)
        /home/arnd/git/gcc/gcc/recog.c:2201
0x727449 cleanup_subreg_operands(rtx_insn*)
        /home/arnd/git/gcc/gcc/final.c:3152
0x90e58c split_insn
        /home/arnd/git/gcc/gcc/recog.c:2925
0x91230c split_all_insns()
        /home/arnd/git/gcc/gcc/recog.c:2978
0x9123b8 execute
        /home/arnd/git/gcc/gcc/recog.c:3983
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

$ /home/arnd/cross-gcc/bin/cris-linux-gcc-4.9.3 -Wall -O2 8250_core.i -c
/git/arm-soc/drivers/tty/serial/8250/8250_core.c: In function
'serial8250_unregister_port':
/git/arm-soc/drivers/tty/serial/8250/8250_core.c:1098:1: error: unrecognizable
insn:
 }
 ^
(insn 122 121 92 5 (set (reg:QI 13 r13 [orig:93 D.32632 ] [93])
        (ior:QI (mem/j:QI (reg/f:SI 9 r9 [85]) [0 MEM[(struct uart_8250_port
*)&serial8250_ports][line_3(D)].port.quirks+0 S1 A8])
            (reg:QI 13 r13 [87])))
/git/arm-soc/drivers/tty/serial/8250/8250_core.c:496 -1
     (nil))
/git/arm-soc/drivers/tty/serial/8250/8250_core.c:1098:1: internal compiler
error: in extract_insn, at recog.c:2202
0x7e5295 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        /home/arnd/git/gcc/gcc/rtl-error.c:109
0x7e52c9 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        /home/arnd/git/gcc/gcc/rtl-error.c:117
0x7b6fa4 extract_insn(rtx_def*)
        /home/arnd/git/gcc/gcc/recog.c:2202
0x7b7024 extract_insn_cached(rtx_def*)
        /home/arnd/git/gcc/gcc/recog.c:2105
0x664e8d cleanup_subreg_operands(rtx_def*)
        /home/arnd/git/gcc/gcc/final.c:3063
0x7b4b9c split_insn
        /home/arnd/git/gcc/gcc/recog.c:2920
0x7b9254 split_all_insns()
        /home/arnd/git/gcc/gcc/recog.c:2974
0x7b92f4 rest_of_handle_split_after_reload
        /home/arnd/git/gcc/gcc/recog.c:3925
0x7b92f4 execute
        /home/arnd/git/gcc/gcc/recog.c:3954

Reply via email to