https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89324
Bug ID: 89324
Summary: ICE in extract_constrain_insn, at recog.c:2211 on
aarch64
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
Target Milestone: ---
Following is causing ICE:
$ cat ice.f90
module a
contains
pure function myotherlen()
myotherlen = 99
end
subroutine b
characterx
block
character(myotherlen()) c
c = "abc"
x = c
end block
end
end
$ aarch64-linux-gnu-gcc ice.f90 -fsanitize=undefined -fno-schedule-insns -O2 -c
ice.f90
ice.f90:14:0:
14 | end
|
Error: insn does not satisfy its constraints:
(insn 85 16 22 2 (parallel [
(set (reg:CC 66 cc)
(compare:CC (reg/f:DI 31 sp)
(const_int -3 [0xfffffffffffffffd])))
(set (reg/f:DI 19 x19 [110])
(plus:DI (reg/f:DI 31 sp)
(const_int 3 [0x3])))
]) "ice.f90":10:0 314 {subdi3_compare1_imm}
(nil))
during RTL pass: cprop_hardreg
ice.f90:14:0: internal compiler error: in extract_constrain_insn, at
recog.c:2211
0x5d848d _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/rtl-error.c:108
0x5d84b3 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/rtl-error.c:118
0x5d7a28 extract_constrain_insn(rtx_insn*)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/recog.c:2211
0xabec97 copyprop_hardreg_forward_1
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/regcprop.c:801
0xabf7e4 execute
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/regcprop.c:1307