https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103818
Bug ID: 103818
Summary: ICE: in insert, at ipa-modref-tree.c:591
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: k.even-mendoza at imperial dot ac.uk
Target Milestone: ---
The following code fails with -O1, -O2, -O3, and -Os in GCC-12, but works fine
with -O0:
struct a {
int b[0]
} c(struct a *d) {
d->b[0] = d->b[-144115188075855873] + d->b[11] * d->b[2] +
d->b[0] % d->b[1025] + d->b[5];
d->b[0] =
d->b[144678138029277184] + d->b[0] & d->b[-3] * d->b[053] + d->b[7] ^
d->b[-9] + d->b[14] + d->b[9] % d->b[49] + d->b[024] + d->b[82] &
d->b[4096];
}
void main() {}
It works fine with GCC-11.
===
The trace in GCC-12 Version is:
/home/user42/data/gcc-csmith-1223/gcc-install/bin/gcc -O2 fuzzer-file-14593.c
fuzzer-file-14593.c:3:1: warning: no semicolon at end of struct or union
3 | } c(struct a *d) {
| ^
during GIMPLE pass: modref
fuzzer-file-14593.c: In function ācā:
fuzzer-file-14593.c:11:1: internal compiler error: in insert, at
ipa-modref-tree.c:591
11 | void main() {}
| ^~~~
0x73439f modref_access_node::insert(vec<modref_access_node, va_gc, vl_embed>*&,
modref_access_node, unsigned long, bool)
.././../gcc-source/gcc/ipa-modref-tree.c:591
0xcc201a modref_ref_node<int>::insert_access(modref_access_node, unsigned long,
bool)
.././../gcc-source/gcc/ipa-modref-tree.h:194
0xcc201a modref_tree<int>::insert(unsigned int, unsigned int, unsigned int,
int, int, modref_access_node, bool)
.././../gcc-source/gcc/ipa-modref-tree.h:445
0xcb303c modref_tree<int>::insert(tree_node*, int, int, modref_access_node
const&, bool)
.././../gcc-source/gcc/ipa-modref-tree.h:472
0xcb303c record_access
.././../gcc-source/gcc/ipa-modref.c:1076
0xcb3968 analyze_load
.././../gcc-source/gcc/ipa-modref.c:1707
0xc09dd1 walk_stmt_load_store_addr_ops(gimple*, void*, bool (*)(gimple*,
tree_node*, tree_node*, void*), bool (*)(gimple*, tree_node*, tree_node*,
void*), bool (*)(gimple*, tree_node*, tree_node*, void*))
.././../gcc-source/gcc/gimple-walk.c:800
0xcbc7a1 analyze_stmt
.././../gcc-source/gcc/ipa-modref.c:1788
0xcbc7a1 analyze
.././../gcc-source/gcc/ipa-modref.c:1900
0xcbc7a1 analyze_function
.././../gcc-source/gcc/ipa-modref.c:3219
0xcbec2a execute
.././../gcc-source/gcc/ipa-modref.c:4186
Please submit a full bug report,
===
I tested it with gcc (GCC) 12.0.0 20211023 (experimental), gcc (GCC) 12.0.0
20211216 (experimental), and gcc (GCC) 12.0.0 20211223 (experimental) (current
version: commit ef26c151c14a87177d46fd3d725e7f82e040e89f) checking the fix of
bugs 102687 and 103073 there.