https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87197
Bug ID: 87197
Summary: [9 Regression] ICE in is_gimple_reg_type at
gimple-expr.h:75 since r264021
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: rguenth at gcc dot gnu.org
Target Milestone: ---
Following isolated snippet from perlbench cases an ICE:
$ cat pp_pack.i
int a, c, e, f, g;
void
h (int i)
{
a = i;
}
void
j (char *i, long k)
{
while (k--)
c = *i++;
}
void
l (unsigned char *i, long k)
{
unsigned char *b = i + k;
while (i < b)
{
h (*i);
i++;
}
}
void
m ()
{
while (e)
{
float d = g;
l ((char *) &d, sizeof (g));
if (f)
j ((char *) &d, sizeof (g));
}
}
$ gcc pp_pack.i -c -O3
during GIMPLE pass: cunrolli
pp_pack.i: In function ‘m’:
pp_pack.i:24:1: internal compiler error: Segmentation fault
24 | m ()
| ^
0xd34cc6 crash_signal
/home/marxin/Programming/gcc/gcc/toplev.c:325
0x7ffff6bc310f ???
/usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0xa87ce5 is_gimple_reg_type
/home/marxin/Programming/gcc/gcc/gimple-expr.h:75
0xa87ce5 is_gimple_val(tree_node*)
/home/marxin/Programming/gcc/gcc/gimple-expr.c:789
0xd6be39 verify_gimple_assign_unary
/home/marxin/Programming/gcc/gcc/tree-cfg.c:3576
0xd7dc61 verify_gimple_in_cfg(function*, bool)
/home/marxin/Programming/gcc/gcc/tree-cfg.c:5360
0xc5072e execute_function_todo
/home/marxin/Programming/gcc/gcc/passes.c:1943
0xc5104a execute_todo
/home/marxin/Programming/gcc/gcc/passes.c:1997