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