Re: Git compile warnings (under mac/clang)
- From
Jeff King <peff@peff.net>
- Date
- Jan 22, 2015, 22:01 UTC
- Message-ID
- <20150122220140.GB6695@peff.net>
- In-Reply-To
- <b2cbad0d8e59a0c4eb0565608f3f90bc@www.dscho.org>
On Thu, Jan 22, 2015 at 10:20:01PM +0100, Johannes Schindelin wrote:
Show 17 quoted lines
> On 2015-01-22 20:59, Stefan Beller wrote: > > cc Johannes Schindelin <Johannes.Schindelin@gmx.de> who is working in > > the fsck at the moment > > > > On Thu, Jan 22, 2015 at 11:43 AM, Michael Blume <blume.mike@gmail.com> wrote: > > > >> CC fsck.o > >> fsck.c:110:38: warning: comparison of unsigned enum expression >= 0 is > >> always true [-Wtautological-compare] > >> if (options->msg_severity && msg_id >= 0 && msg_id < FSCK_MSG_MAX) > >> ~~~~~~ ^ ~ > > According to A2.5.4 of The C Programming Language 2nd edition: > > Identifiers declared as enumerators (see Par.A.8.4) are constants of type int. > > Therefore, the warning is incorrect: any assumption about enum fsck_msg_id to be unsigned is false.
I'm not sure that made it to ANSI. C99 says (setion 6.7.2.2, paragraph 4):
Each enumerated type shall be compatible with char, a signed integer type, or an unsigned integer type. The choice of type is implementation-defined, but shall be capable of representing the values of all the members of the enumeration.
I don't have a copy of C89, but this isn't mentioned in the (very cursory) list of changes found in C99. Anyway, that's academic.
I think we dealt with a similar situation before, in 3ce3ffb840a1dfa7fcbafa9309fab37478605d08.
-Peff