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

--- Comment #13 from Pengfei Li <pfustc at gcc dot gnu.org> ---
Just tried with Andrew's patch:
https://forge.sourceware.org/gcc/gcc-TEST/pulls/77/commits

An ICE appears after applying it.

during GIMPLE pass: forwprop
a.cc: In function ‘int8x16_t foo()’:
a.cc:15:1: internal compiler error: Segmentation fault
   15 | }
      | ^
0x3e99623 internal_error(char const*, ...)
        /home/penli02/src/gcc/gcc/diagnostic-global-context.cc:786
0x1fed5ff crash_signal
        /home/penli02/src/gcc/gcc/toplev.cc:323
0x101f000 tree_check(tree_node*, char const*, int, char const*, tree_code)
        /home/penli02/src/gcc/gcc/tree.h:3732
0x175a2d7 first_imm_use_stmt(imm_use_iterator*, tree_node*)
        /home/penli02/src/gcc/gcc/ssa-iterators.h:931
0x21e463b optimize_agr_copyprop
        /home/penli02/src/gcc/gcc/tree-ssa-forwprop.cc:1741
0x21f4fd3 execute
        /home/penli02/src/gcc/gcc/tree-ssa-forwprop.cc:5299
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Here's the reduced test case triggering the ICE:

typedef __Int8x16_t int8x16_t;

typedef struct {
  int8x16_t i8;
} neon_vec;

neon_vec get_vec() {
  neon_vec r;
  return r;
}

int8x16_t foo() {
  neon_vec r = get_vec();
  return r.i8;
}

Reply via email to