https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95649
Bug ID: 95649 Summary: ICE during GIMPLE pass: cunroll Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: vsevolod.livinskij at frtk dot ru Target Milestone: --- Error: >$ g++ -O2 -c func.cpp during GIMPLE pass: cunroll func.cpp: In function ‘void test()’: func.cpp:4:6: internal compiler error: Segmentation fault 4 | void test() { | ^~~~ 0x1102483 crash_signal gcc/toplev.c:328 0x1b58f3b loop_containing_stmt gcc/tree-ssa-loop.h:76 0x1b58f3b chrec_contains_symbols_defined_in_loop gcc/tree-chrec.c:1009 0x1b59248 chrec_contains_symbols_defined_in_loop gcc/tree-chrec.c:1026 0x1b59248 chrec_contains_symbols_defined_in_loop gcc/tree-chrec.c:1026 0x1b59248 chrec_contains_symbols_defined_in_loop gcc/tree-chrec.c:1026 0x1b593cb chrec_contains_symbols_defined_in_loop(tree_node const*, unsigned int) gcc/tree-chrec.c:1039 0x11dfff3 compute_overall_effect_of_inner_loop(loop*, tree_node*) gcc/tree-scalar-evolution.c:473 0x11dfff3 compute_overall_effect_of_inner_loop(loop*, tree_node*) gcc/tree-scalar-evolution.c:447 0x11de08c analyze_scalar_evolution_1 gcc/tree-scalar-evolution.c:1960 0x11deb9d analyze_scalar_evolution(loop*, tree_node*) gcc/tree-scalar-evolution.c:2038 0x11df04f instantiate_scev_name gcc/tree-scalar-evolution.c:2335 0x11df04f instantiate_scev_r gcc/tree-scalar-evolution.c:2636 0x11df1ca instantiate_scev_binary gcc/tree-scalar-evolution.c:2466 0x11df1ca instantiate_scev_r gcc/tree-scalar-evolution.c:2649 0x11ded9e instantiate_scev_poly gcc/tree-scalar-evolution.c:2409 0x11ded9e instantiate_scev_r gcc/tree-scalar-evolution.c:2641 0x11dfde5 instantiate_scev(edge_def*, loop*, tree_node*) gcc/tree-scalar-evolution.c:2718 0x127743a instantiate_parameters gcc/tree-scalar-evolution.h:63 0x127743a idx_infer_loop_bounds gcc/tree-ssa-loop-niter.c:3612 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. Reproducer: extern unsigned short var_5; extern int var_8, var_9; extern short arr_7[]; void test() { for (; 0 < (char)var_5;) for (int a(var_9 ? var_5 : 0); a < 3002972621U + 1291994699; a += 19499 - 19497) for (long b(var_8); b; b += 4) arr_7[a * b] = 0; } GCC version: 11.0.0 (87af4f40453a9c84363bde5d9a58466de7fbee2e)