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?).