<p dir="ltr"><br>
On Mar 10, 2016 1:21 PM, "Eirik Byrkjeflot Anonsen" <<a href="mailto:eirik@eirikba.org">eirik@eirikba.org</a>> wrote:<br>
><br>
> Ian Romanick <<a href="mailto:idr@freedesktop.org">idr@freedesktop.org</a>> writes:<br>
><br>
> > From: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com">ian.d.romanick@intel.com</a>><br>
> ><br>
> > I don't understand why the old code was bad, but the new code is fine.<br>
><br>
> Probably because the *loop counter* can no longer overflow. Thus the<br>
> loop can be optimized. The fact that "i" might overflow has become<br>
> irrelevant to the warning.</p>
<p dir="ltr">Right.  In theory, since i is incremented by 4 each time it could, in theory, skip right over size/4 and overflow.  However, this can never happen since size is 32 bits and is divided by 4 so it has a maximum value of 2^30-1.  Apparently, GCC isn't quite that smart. :-)</p>
<p dir="ltr">> (And from that perspective, it isn't equivalent. If "i" overflows in the<br>
> original code, you would get an infinite loop.)<br>
><br>
> eirik<br>
> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</p>