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

Marc Glisse <glisse at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2019-08-31
          Component|c                           |middle-end
     Ever confirmed|0                           |1

--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> ---
typedef long long b __attribute__((__vector_size__(16)));
b e, h;
int d;
const int i;
void m();
void j(int k, int l) {
  if (d && 0 <= k - 1 && l)
    m();
}
void p() {
  b n = (b){1};
  b g = (b){};
  b o = g;
  for (int f=0; f < i; ++f) {
    b a = o == n;
    h = a;
    j(f, i);
    o = e;
  }
}

Program received signal SIGSEGV, Segmentation fault.
0x0000000000c0f5f8 in expand_expr_real_1 (exp=<ssa_name 0x7ffff75c8360>,
target=0x7ffff75da960, tmode=E_V2DImode, modifier=EXPAND_NORMAL, 
    alt_rtl=0x7fffffffd3f0, inner_reference_p=false) at
/home/glisse/repos/gcc/trunk/gcc/expr.c:9961
9961              if (REG_P (r) && !REG_EXPR (r))
(gdb) bt
#0  0x0000000000c0f5f8 in expand_expr_real_1 (exp=<ssa_name 0x7ffff75c8360>,
target=0x7ffff75da960, tmode=E_V2DImode, modifier=EXPAND_NORMAL, 
    alt_rtl=0x7fffffffd3f0, inner_reference_p=false) at
/home/glisse/repos/gcc/trunk/gcc/expr.c:9961
#1  0x0000000000c07d19 in expand_expr_real (exp=<ssa_name 0x7ffff75c8360>,
target=0x7ffff75da960, tmode=E_V2DImode, modifier=EXPAND_NORMAL, 
    alt_rtl=0x7fffffffd3f0, inner_reference_p=false) at
/home/glisse/repos/gcc/trunk/gcc/expr.c:8280
#2  0x0000000000bfd2ae in store_expr (exp=<ssa_name 0x7ffff75c8360>,
target=0x7ffff75da960, call_param_p=0, nontemporal=false, reverse=false)
    at /home/glisse/repos/gcc/trunk/gcc/expr.c:5679
#3  0x0000000000bfb68f in expand_assignment (to=<var_decl 0x7ffff7fd0b40 h>,
from=<ssa_name 0x7ffff75c8360>, nontemporal=false)
    at /home/glisse/repos/gcc/trunk/gcc/expr.c:5441
#4  0x0000000000a4bd8d in expand_gimple_stmt_1 (stmt=<gimple_assign
0x7ffff75d4d20>) at /home/glisse/repos/gcc/trunk/gcc/cfgexpand.c:3777

Seems to happen for the statement

  a_6 = VEC_COND_EXPR <{ 0, -1 }, { -1, -1 }, { 0, 0 }>;

which was created by DOM3 (missed constant folding?).

Reply via email to