@lanodan @hj @Moon I think the comparison might be actually undefined, since there is no sequence point in that expression, so it is possible that the RHS is evaluated before LHS, thus resulting in true. (Or house fire, given it is UB…)
One of the favourite gotchas of C… I only remember: when pre-/postincrementing, do not do anything clever like reusing the variable. And I had to check the standard to be at least slightly confident in what I write here.