https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89527
Bug ID: 89527
Summary: GCC ICE internal compiler error during RTL pass: mach
on arm/thumb2
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: raj.khem at gmail dot com
Target Milestone: ---
While compiling glibc-2.29, timezone/zic, gcc started to ICE( this was working
ok few weeks ago), this only happens when compiling with thumb2, it works ok in
arm mode.
$
../../recipe-sysroot-native/usr/bin/arm-yoe-linux-gnueabi/arm-yoe-linux-gnueabi-gcc
-mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7
--sysroot=/mnt/a/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/glibc/2.29-r0/recipe-sysroot
a.c -c
a.c: In function 'foo':
a.c:9:1: error: unrecognizable insn:
9 | }
| ^
(insn 33 32 23 2 (parallel [
(set (reg:CC 100 cc)
(compare:CC (reg:SI 3 r3 [ min_year.0_1+4 ])
(const_int -2147483648 [0xffffffff80000000])))
(set (reg:SI 3 r3 [113])
(minus:SI (plus:SI (reg:SI 3 r3 [ min_year.0_1+4 ])
(const_int -2147483648 [0xffffffff80000000]))
(ltu:SI (reg:CC_C 100 cc)
(const_int 0 [0]))))
]) "a.c":6:6 -1
(nil))
during RTL pass: mach
a.c:9:1: internal compiler error: in extract_insn, at recog.c:2310
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
==============================================
reduced testcase a.c
==============================================
static long long int min_year;
void foo() {
enum { years_of_observations = 400 + 2 };
if (min_year >= (-9223372036854775807LL -1) + years_of_observations)
return;
}
==============================================