https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106078

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #2)
> (In reply to Jan Hubicka from comment #1)
> > This is version that does not need -fnon-call-exceptions
> > If called test (NULL, 0) it should be indefinitely increasing val rather
> > then segfaulting.  Seems clang gets this one right.
> > 
> > int array[10000];
> > volatile int val;
> > int test(short *b,int s)
> > {
> >         for (int i = 0; i<10000;i++)
> >           {
> >             for (int j = 0; j < 10; j+=s)
> >                     val++;
> >             array[i]+=*b;
> >           }
> > }
> 
> For this one it's PRE hoisting *b across the endless loop (PRE handles
> calls as possibly not returning but not loops as possibly not terminating...)
> So it's a different bug.

Btw, C++ requiring forward progress makes the testcase undefined.

Reply via email to