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)