On 12/15/2011 05:20 AM, Miles Bader wrote: > Junio C Hamano <gitster@xxxxxxxxx> writes: >>> builtin/checkout.c: In function ‘cmd_checkout’: >>> builtin/checkout.c:210:5: warning: ‘mode’ may be used uninitialized >>> in this function [-Wuninitialized] >>> builtin/checkout.c:160:11: note: ‘mode’ was declared here >> >> Isn't this just your gcc being overly cautious (aka "silly")? >> >> The variable "mode" is assigned to when we see an stage #2 entry in the >> loop, and we should have updated threeway[1] immediately before doing so. >> If threeway[1] is not updated, we would have already returned before using >> the variable in make_cache_entry(). > > Maybe that is actually guaranteed (I dunno), but it's certainly not > obvious from the code here, even to a human... any guarantee would > have to come from external invariants that the compiler doesn't know > about. > > Given that, I think it's a fair warning, certainly not "silly." This > aspect of the code doesn't seem easy to understand... Silly or not: That's what gcc 4.6.x is warning about with -Wuninitialized (-Wall) set - I didn't set any additional options, just plain `make all`. -- 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