https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90474
Bug ID: 90474
Summary: [10 Regression] ICE: verify_gimple failed (error:
DECL_GIMPLE_REG_P set on a variable with address
taken; error: invalid address operand in MEM_REF)
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: ice-checking, ice-on-valid-code
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
Target: x86_64-unknown-linux-gnu
gcc-10.0.0-alpha20190512 snapshot (r271111) ICEs when compiling the following
testcase at any optimization level (except -Og) and w/ -ftree-vectorize
-fno-tree-ccp -fno-tree-loop-optimize -fno-tree-sra --param
dse-max-alias-queries-per-store=0:
typedef int v8si __attribute__ ((vector_size (32)));
v8si
cl (v8si w4)
{
while ((v8si) {0, w4[0]}[1])
{
}
return w4;
}
% x86_64-unknown-linux-gnu-gcc-10.0.0-alpha20190512 -O1 -ftree-vectorize
-fno-tree-ccp -fno-tree-loop-optimize -fno-tree-sra --param
dse-max-alias-queries-per-store=0 -w -c uqwxndwh.c
uqwxndwh.c: In function 'cl':
uqwxndwh.c:4:1: note: the ABI for passing parameters with 32-byte alignment has
changed in GCC 4.6
4 | cl (v8si w4)
| ^~
uqwxndwh.c:4:1: error: DECL_GIMPLE_REG_P set on a variable with address taken
uqwxndwh.c:4:1: error: invalid address operand in MEM_REF
MEM[(vector(8) int *)&D.1909];
# .MEM_19 = VDEF <.MEM_3>
MEM[(vector(8) int *)&D.1909] = vect_cst__18;
during GIMPLE pass: slp
uqwxndwh.c:4:1: internal compiler error: verify_gimple failed
0xd69d18 verify_gimple_in_cfg(function*, bool)
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190512/work/gcc-10-20190512/gcc/tree-cfg.c:5387
0xc45d29 execute_function_todo
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190512/work/gcc-10-20190512/gcc/passes.c:1963
0xc46ae1 execute_todo
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190512/work/gcc-10-20190512/gcc/passes.c:2017