https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97079

--- Comment #4 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Related testcase that gives a similar ICE:

int c, d;
int e[1];
void a(int *);
void f(void) {
  while (d);
  int g[5];
  for (; d < 2; d++)
    e[d] = c;
  for (; d; d++)
    g[d] = (long)e;
  a(g);
}

$ aarch64-elf-gcc -c test.c -O1 -ftree-vectorize -march=armv8.2-a+sve
during GIMPLE pass: slp
test.c: In function 'f':
test.c:4:6: internal compiler error: Segmentation fault
    4 | void f(void) {
      |      ^
0xd89397 crash_signal
        /home/alecop01/toolchain/src/gcc/gcc/toplev.c:330
0x1a408b7 contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
        /home/alecop01/toolchain/src/gcc/gcc/tree.h:3416
0x1a408b7 vect_convert_input
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:728
0x1a411f6 vect_convert_inputs
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:818
0x1a418bb vect_recog_over_widening_pattern
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:1718
0x1a3ba60 vect_pattern_recog_1
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:5344
0x1a44001 vect_pattern_recog(vec_info*)
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:5502
0x10c994e vect_slp_analyze_bb_1
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3564
0x10c994e vect_slp_region
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3663
0x10c994e vect_slp_bbs
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3819
0x10cb0d1 vect_slp_function(function*)
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3870
0x10ce3d9 execute
        /home/alecop01/toolchain/src/gcc/gcc/tree-vectorizer.c:1432
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.

We don't ICE at -O2 and above here.

Reply via email to