On 10/09/2011 11:35 PM, Nguyen Thai Ngoc Duy wrote: > On Mon, Oct 10, 2011 at 2:39 AM, Michael Haggerty <mhagger@xxxxxxxxxxxx> wrote: >> On 08/29/2011 11:33 PM, Junio C Hamano wrote: >>> diff --git a/tree-walk.c b/tree-walk.c >>> index 33f749e..808bb55 100644 >>> --- a/tree-walk.c >>> +++ b/tree-walk.c >>> [...] >>> @@ -376,16 +396,22 @@ int traverse_trees(int n, struct tree_desc *t, struct traverse_info *info) >>> mask |= 1ul << i; >>> if (S_ISDIR(entry[i].mode)) >>> dirmask |= 1ul << i; >>> + e = &entry[i]; >>> } >>> if (!mask) >>> break; >>> - ret = info->fn(n, mask, dirmask, entry, info); >>> - if (ret < 0) { >>> - error = ret; >>> - if (!info->show_all_errors) >>> - break; >>> + interesting = prune_traversal(e, info, &base, interesting); >> >> According to gcc 4.2.4 (though, strangely, not gcc 4.4.3): I checked this a bit more carefully. gcc 4.2.4 emits a warning when the -O1 or -O2 optimization levels are used, but not with -O0. gcc 4.4.3 does not emit a warning regardless of optimization level. >> tree-walk.c: In function ‘traverse_trees’: >> tree-walk.c:347: warning: ‘e’ may be used uninitialized in this function > > False alarm. If e is not initialized in the for loop, mask would be > zero and therefore prune_traversal(e, info, &base, interesting), which > would use uninitialized "e", would never be called. That's good to know. Still, it might be worthwhile to initialize the variable explicitly to avoid future confusion. Michael -- Michael Haggerty mhagger@xxxxxxxxxxxx http://softwareswirl.blogspot.com/ -- 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