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

--- Comment #4 from ak at gcc dot gnu.org ---
Reduced test cases for all three crashes. I suspect multiple have a similar
root cause (except perhaps for the expand_expr_addr_expr_1 one)

It looks like the transaction code messes up cfgloops.

copy_bbs:

(illegal code due to goto into transaction?)

g_56[];
fn1() {
  int *p_79;
  if (g_56[7])
    __transaction_atomic {
    lbl_196:
      *p_79 = 1;
    }
  else
    goto lbl_196;
}


expand_expr_addr_expr_1:

struct {
  unsigned : 7;
  signed f6 : 4
} g_35;
safe_rshift_func_uint16_t_u_s() {}

func_28() {
  __transaction_atomic { safe_rshift_func_uint16_t_u_s(g_35.f6); }
}

copy_loops:

func_65() {
  __transaction_atomic {
    for (;;)
      func_65();
  }
}

Reply via email to