https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101562
Bug ID: 101562
Summary: [9/10/11/12 Regression] ICE in insert, at
wide-int.cc:682
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: [email protected]
Target Milestone: ---
Started with r7, at -O2+ :
(gcc here configured with --enable-checking=yes)
(helpful warning with -O2 -Wall, but not with -O1 -Wall)
(-> array subscript is above array bounds)
$ cat z1.c
struct S { char c; };
void g (struct S a, struct S b);
void f ()
{
struct S x[1];
x[0].c = 0;
x[1].c = 1;
g (x[0], x[1]);
return;
}
$ gcc-6 -c z1.c -O2
$ gcc-12-20210718 -c z1.c -O1
$
$ gcc-12-20210718 -c z1.c -O2
during RTL pass: combine
z1.c: In function 'f':
z1.c:10:1: internal compiler error: in insert, at wide-int.cc:682
10 | }
| ^
0x11ad9c1 wi::insert(generic_wide_int<wide_int_storage> const&,
generic_wide_int<wide_int_storage> const&, unsigned int, unsigned int)
../../gcc/wide-int.cc:682
0x17f6c2e try_combine
../../gcc/combine.c:2839
0x17f9860 combine_instructions
../../gcc/combine.c:1269
0x17f9860 rest_of_handle_combine
../../gcc/combine.c:14873
0x17f9860 execute
../../gcc/combine.c:14918