https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85788
--- Comment #4 from qinzhao at gcc dot gnu.org --- (In reply to Martin Liška from comment #0) > As seen, d == 0, thus 'for (; c; c = e)' never executes. It's combination of > jump-threading and VRP that triggers the warning. Yes, in this specific testing case, d == 0, the loop never executes. This is a very special situation, and under such situation, the reported warning is a false positive. However, Whenever we slightly modify the testing case to make d not being 0, the warning still there, and the loop executes, Then this warning catches a REAL bug in the source code. So, I think that the warning is good to have in general. similar as PR109071, providing more context to the user will be beneficial in general.