Jonathan Nieder <jrnieder@xxxxxxxxx> writes: >> The versions which complain are 3.4.4 and 4.1.2, whereas 4.4.0 compiles >> the code without complaint. So, gcc *may* be getting more sane, but I wouldn't >> bet on it! :-P >> >> I've had examples of this kind of warning, which relies heavily on the >> analysis performed primarily for the optimizer, come-and-go in gcc before > > Yep, judging from the commit message, Junio found the same warning > in 4.6.2. > >> Having said that, unless you are going to decree that the project only >> supports gcc (and presumably only some particular versions of gcc), then you >> may well find similar warnings triggered when using other compilers anyway ... > > Sure, when the control flow grows too complicated, that's probably worth > fixing anyway, for the sake of humans especially. > > Sometimes gcc is the only crazy one, though. ;-) It's hard to see how any compiler could detect that "mode" always receives a value here .... it would have to realize that "stage" always becomes 2 before the loop is exited, and that seems to depend on non-trivial properties of external data structures... -miles -- Joy, n. An emotion variously excited, but in its highest degree arising from the contemplation of grief in another. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html