https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103073
Bug ID: 103073
Summary: [12 Regression] ICE in insert_access, at
ipa-modref-tree.h:578
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: vsevolod.livinskij at frtk dot ru
CC: marxin at gcc dot gnu.org
Target Milestone: ---
I'm not sure about the component. Would you mind checking and fixing it in case
it is wrong?
Link to the Compiler Explorer: https://godbolt.org/z/K17Grnez9
Reproducer:
int a;
void b(bool c[], char d[], bool g[][55][21]) {
for (signed e = 0; e < 11; e += 3)
for (unsigned f = c[0] + 1; f < d[0]; f += 3)
a = g[0][e][f + 2];
}
Error:
>$ g++ -c func.cpp -O3
during GIMPLE pass: modref
func.cpp: In function 'void b(bool*, char*, bool (*)[55][21])':
func.cpp:2:6: internal compiler error: in insert_access, at
ipa-modref-tree.h:578
2 | void b(bool c[], char d[], bool g[][55][21]) {
| ^
0x103ae7a modref_ref_node<int>::insert_access(modref_access_node, unsigned
long, bool)
/testing/gcc/gcc_src_master/gcc/ipa-modref-tree.h:578
0x103b16d modref_tree<int>::insert(int, int, modref_access_node, bool)
/testing/gcc/gcc_src_master/gcc/ipa-modref-tree.h:848
0x102cafe record_access
/testing/gcc/gcc_src_master/gcc/ipa-modref.c:758
0x102d7ff analyze_load
/testing/gcc/gcc_src_master/gcc/ipa-modref.c:1262
0xf84246 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*))
/testing/gcc/gcc_src_master/gcc/gimple-walk.c:800
0x1034872 analyze_stmt
/testing/gcc/gcc_src_master/gcc/ipa-modref.c:1313
0x1034872 analyze_function
/testing/gcc/gcc_src_master/gcc/ipa-modref.c:2366
0x1035e21 execute
/testing/gcc/gcc_src_master/gcc/ipa-modref.c:3213
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.
GCC version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/testing/gcc/bin_master/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /testing/gcc/gcc_src_master/configure --enable-multilib
--prefix=/testing/gcc/bin_master --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20211103 (62af7d9402f551fa708125fafed2950d8912b25e) (GCC)