John, could you confirm that you trigger the -Wtautological-compare warning with your version of clang ? And that this patch makes clang compilation warning-free (with the very latest clang) ? Cheers, On Wed, Jan 16, 2013 at 11:47 PM, Antoine Pelisse <apelisse@xxxxxxxxx> wrote: > Create a GREP_HEADER_FIELD_MIN so we can check that the field value is > sane and silent the clang warning. > > Clang warning happens because the enum is unsigned (this is > implementation-defined, and there is no negative fields) and the check > is then tautological. > > Signed-off-by: Antoine Pelisse <apelisse@xxxxxxxxx> > --- > I tried to consider discussion [1] and this [2] discussion on clang's list > > With these two patches and the patch from Max Horne, I'm finally able to > compile with CC=clang CFLAGS=-Werror. > > [1]: http://thread.gmane.org/gmane.comp.version-control.git/184908 > [2]: http://clang-developers.42468.n3.nabble.com/Possibly-invalid-enum-tautology-warning-td3233140.html > > grep.c | 3 ++- > grep.h | 3 ++- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/grep.c b/grep.c > index 4bd1b8b..bb548ca 100644 > --- a/grep.c > +++ b/grep.c > @@ -625,7 +625,8 @@ static struct grep_expr *prep_header_patterns(struct grep_opt *opt) > for (p = opt->header_list; p; p = p->next) { > if (p->token != GREP_PATTERN_HEAD) > die("bug: a non-header pattern in grep header list."); > - if (p->field < 0 || GREP_HEADER_FIELD_MAX <= p->field) > + if (p->field < GREP_HEADER_FIELD_MIN || > + GREP_HEADER_FIELD_MAX <= p->field) > die("bug: unknown header field %d", p->field); > compile_regexp(p, opt); > } > diff --git a/grep.h b/grep.h > index 8fc854f..e4a1df5 100644 > --- a/grep.h > +++ b/grep.h > @@ -28,7 +28,8 @@ enum grep_context { > }; > > enum grep_header_field { > - GREP_HEADER_AUTHOR = 0, > + GREP_HEADER_FIELD_MIN = 0, > + GREP_HEADER_AUTHOR = GREP_HEADER_FIELD_MIN, > GREP_HEADER_COMMITTER, > GREP_HEADER_REFLOG, > > -- > 1.8.1.1.435.g20d29be.dirty > -- 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