From: Nguyen Thai Ngoc Duy Date: Sun, 09 Oct 2011 21:35:34 GMT Subject: Re: [PATCH 1/3] traverse_trees(): allow pruning with pathspec Message-ID: In-Reply-To: <4E91C031.9030205@alum.mit.edu> On Mon, Oct 10, 2011 at 2:39 AM, Michael Haggerty 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): > > 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. -- Duy