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

--- Comment #3 from Matthias Klose <doko at debian dot org> ---
trying to reproduce, it ICEs at a different place...

$ cat decNumber.i
typedef struct {
  int exponent;
  unsigned short lsu[];
} decNumber;
char __decd2utable[] = {};
decNumber *decExpOp_rhs;
void decExpOp() {
  decNumber buft[0];
  decNumber allocbuft;
  decNumber *t = buft;
  int t_0;
  if (decExpOp_rhs)
    t = &allocbuft;
  for (;;) {
    unsigned short varbuff[0];
    unsigned short *msu1, *source = t->lsu + (9 ? __decd2utable[t_0] : 3);
    for (; source >= t->lsu; source--, msu1--)
      *msu1 = *source;
    for (; msu1 >= varbuff;)
      ;
    if (t->exponent)
      break;
  }
}

$ build/gcc/xgcc -Bbuild/gcc/ -c -mtune=z15 -march=z13 -mzarch -O1 decNumber.i 
during RTL pass: reload
decNumber.i: In function ‘decExpOp’:
decNumber.i:24:1: internal compiler error: in lra_set_insn_recog_data, at
lra.c:1004
   24 | }
      | ^
0x1ea6333 lra_set_insn_recog_data(rtx_insn*)
        ../../src/gcc/lra.c:1004
0x1ea2063 lra_get_insn_recog_data
        ../../src/gcc/lra-int.h:487
0x1ea9f99 lra_update_insn_regno_info(rtx_insn*)
        ../../src/gcc/lra.c:1625
0x1eab8b7 lra_push_insn_1
        ../../src/gcc/lra.c:1780
0x1eab905 lra_push_insn(rtx_insn*)
        ../../src/gcc/lra.c:1788
0x1eabad9 push_insns
        ../../src/gcc/lra.c:1831
0x1eabd81 lra_process_new_insns(rtx_insn*, rtx_insn*, rtx_insn*, char const*)
        ../../src/gcc/lra.c:1871
0x1ed2bab curr_insn_transform
        ../../src/gcc/lra-constraints.c:4669
0x1ed5c17 lra_constraints(bool)
        ../../src/gcc/lra-constraints.c:5163
0x1eaddb3 lra(_IO_FILE*)
        ../../src/gcc/lra.c:2336
0x1e13ec3 do_reload
        ../../src/gcc/ira.c:5834
0x1e145f1 execute
        ../../src/gcc/ira.c:6020
Please submit a full bug report,
with preprocessed source if appropriate.

Reply via email to