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)

Reply via email to