On 9/24/21 11:29 AM, Andrew Pinski wrote:
On Fri, Sep 24, 2021 at 1:05 AM Aldy Hernandez via Gcc <[email protected]> wrote:Hi folks. My upcoming threading improvements turn the test below into an infinite runtime loop: int a, b; short c; int main () { int j, d = 1; for (; c >= 0; c++) { BODY: a = d; d = 0; if (b) { xprintf (0); if (j) xprintf (0); } } xprintf (d); exit (0); } On the false edge out of if(b) we thread directly to BODY, eliding the loop conditional, because we know that c>=0 because it could never overflow.Huh about c>=0 being always true? the expression, "c++" is really c= (short)(((int)c)+1). So it will definitely wrap over when c is SHRT_MAX.
I see. Is this only for C++ or does it affect C as well? Aldy
