https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91178
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |marxin at gcc dot gnu.org Known to work|10.0 | Summary|[9 Regression] Infinite |[9/10 Regression] Infinite |recursion in |recursion in |split_constant_offset in |split_constant_offset in |slp after r260289 |slp after r260289 Known to fail| |10.0 --- Comment #9 from Martin Liška <marxin at gcc dot gnu.org> --- (In reply to Vsevolod Livinskiy from comment #8) > It looks like the fix doesn't handle all of the cases. I still can see > similar bugs on the trunk. > > Reproducer: > int a[100][70304]; > int b[100]; > void c() { > for (int d = 2; d < 4; d++) > for (int e = 2; e <= 50; e++) > for (int f = 32; f <= 38; f++) > b[d + f] -= a[e][5]; > } > > Error" > >$ gcc -O3 -march=skylake-avx512 repr.c > gcc: internal compiler error: Segmentation fault signal terminated program > cc1 > > GCC version 10.0.0 (revision: 273743) Mee too, it's a stack overflow: $ valgrind --trace-children=yes gcc -c /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/torture/pr91178.c -O3 ... ==1832== Stack overflow in thread #1: can't grow stack to 0x1ffe801000 ==1832== Can't extend stack to 0x1ffe800fe8 during signal delivery for thread 1: ==1832== no stack segment ==1832== ==1832== Process terminating with default action of signal 11 (SIGSEGV): dumping core ==1832== Access not within mapped region at address 0x1FFE800FE8 ==1832== Stack overflow in thread #1: can't grow stack to 0x1ffe801000 ==1832== at 0xA87B0C: create (wide-int.h:1193) ==1832== by 0xA87B0C: get_binary_result<generic_wide_int<wide_int_storage>, generic_wide_int<wide_int_storage> > (wide-int.h:1207) ==1832== by 0xA87B0C: add<generic_wide_int<wide_int_storage>, generic_wide_int<wide_int_storage> > (wide-int.h:2463) ==1832== by 0xA87B0C: wide_int_binop(generic_wide_int<wide_int_storage>&, tree_code, generic_wide_int<wide_int_storage> const&, generic_wide_int<wide_int_storage> const&, signop, wi::overflow_type*) (fold-const.c:1036)