Re: Git compile warnings (under mac/clang)
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 23, 2015, 18:07 UTC
- Message-ID
- <xmqqwq4dqskp.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <20150123133033.GA27692@peff.net>
Jeff King <peff@peff.net> writes:
Show 19 quoted lines
>> diff --git a/fsck.c b/fsck.c
>> index 15cb8bd..8f8c82f 100644
>> --- a/fsck.c
>> +++ b/fsck.c
>> @@ -107,7 +107,7 @@ static int fsck_msg_severity(enum fsck_msg_id msg_id,
>> {
>> int severity;
>>
>> - if (options->msg_severity && msg_id >= 0 && msg_id < FSCK_MSG_MAX)
>> + if (options->msg_severity && ((unsigned int) msg_id) < FSCK_MSG_MAX)
>> severity = options->msg_severity[msg_id];
>> else {
>> severity = msg_id_info[msg_id].severity;
>> -- snap --
>>
>> What do you think? Michael, does this cause more Clang warnings,
>> or would it resolve the issue?
>
> Hmm, yeah, that does not seem unreasonable, and is more localized.Or we could force enum to be signed by defining FSCK_MSG_UNUSED to be -1 at the very beginning of enum definition, without changing anything else. Then "msg_id < 0" would become a very valid protection against programming mistakes, no?