https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87894
Bug ID: 87894 Summary: ICE inslpeel_duplicate_current_defs_from_edges at tree-vect-loop-manip.c:984 since r265812 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: rguenth at gcc dot gnu.org Target Milestone: --- Following causes a new ICE: $ cat ice.i int a, b, c, d; double e; void f(double g[][1]) { for (;;) { double h; for (; b < c; b++) { if (b >= 0) ; else if (d) h = 2.0; else h = 0.0; if (e) g[a][b] = 0.0; g[a][b] = h; } } } $ ./xgcc -B. ice.i -c -Ofast during GIMPLE pass: vect ice.i: In function âfâ: ice.i:4:6: internal compiler error: Segmentation fault 4 | void f(double g[][1]) { | ^ 0x1192692 crash_signal /home/marxin/Programming/gcc/gcc/toplev.c:325 0x7ffff6bc310f ??? /usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0 0x857a19 contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) /home/marxin/Programming/gcc/gcc/tree.h:3231 0x1558ddb slpeel_duplicate_current_defs_from_edges /home/marxin/Programming/gcc/gcc/tree-vect-loop-manip.c:984 0x1559204 slpeel_tree_duplicate_loop_to_edge_cfg(loop*, loop*, edge_def*) /home/marxin/Programming/gcc/gcc/tree-vect-loop-manip.c:1074 0x155d784 vect_do_peeling(_loop_vec_info*, tree_node*, tree_node*, tree_node**, tree_node**, tree_node**, int, bool, bool) /home/marxin/Programming/gcc/gcc/tree-vect-loop-manip.c:2580 0x154e144 vect_transform_loop(_loop_vec_info*) /home/marxin/Programming/gcc/gcc/tree-vect-loop.c:8243 0x1579808 try_vectorize_loop_1 /home/marxin/Programming/gcc/gcc/tree-vectorizer.c:965 0x1579ab0 try_vectorize_loop /home/marxin/Programming/gcc/gcc/tree-vectorizer.c:1015 0x1579c8c vectorize_loops() /home/marxin/Programming/gcc/gcc/tree-vectorizer.c:1097 0x13dd4ad execute /home/marxin/Programming/gcc/gcc/tree-ssa-loop.c:414