* Bruce Korb: > I wrote a loop that figures out how many items are in a list, > counts down from that count to -1, changes direction and counts > up from 0 to the limit, a la: > > > inc = -1; > int idx = 0; > while (opts->papzHomeList[idx+1] != NULL) > idx++; > for (;;) { > if (idx < 0) { <<<=== line 1025 > inc = 1; > idx = 0; > } > char const * path = opts->papzHomeList[ idx ]; > if (path == NULL) > break; > idx += inc; > // do a bunch of stuff > } > > ../../autoopts/configfile.c: In function 'intern_file_load': > ../../autoopts/configfile.c:1025:12: error: assuming signed overflow does not > occur \ > when simplifying conditional to constant [-Werror=strict-overflow]
I can't reproduce this. Can you post a minimal example that actually shows this warning? > My guess is that some code somewhere presumes that "idx" never gets > decremented. Not true. The warning can trigger after inlining and constant propogation, somewhat obscuring its cause. PR55616 is one such example.