Re: fix compile warning for pg_backup_tar.c

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: fix compile warning for pg_backup_tar.c
Дата
Msg-id 418FB9CA.9090405@dunslane.net
обсуждение исходный текст
Ответ на Re: fix compile warning for pg_backup_tar.c  (Peter Eisentraut <peter_e@gmx.net>)
Ответы Re: fix compile warning for pg_backup_tar.c
Список pgsql-patches

Peter Eisentraut wrote:

>Andrew Dunstan wrote:
>
>
>>Yet another fix for a useless compile warning. This one is slightly
>>ugly ;-(
>>
>>
>
>First of all, ugly code needs to be documented in the code.
>
>

Ok. Perhaps code that is expected to generate warnings should be too ;-)

>Then, the diff
>
>+ #ifdef INT64_IS_BUSTED
>        if (th->fileLen > MAX_TAR_MEMBER_FILELEN)
>+ #else
>+       if (((int64) th->fileLen -1) >= MAX_TAR_MEMBER_FILELEN)
>+ #endif
>
>seems to imply that the current code corresponds to INT64_IS_BUSTED,
>which obviously defies reason.
>
>I remember when I wrote that code I consciously let the compile warning
>stand for platforms with busted int64 because it became too confusing
>to fix.  Maybe you can clear that up for us. :)
>
>

The error I saw was on Windows, for which I don't think int64 is busted,
as we have long long int:

  pg_backup_tar.c:1022: warning: comparison is always false due to
limited range of data type

ISTM that what is happening here is that the compiler is smart enough to
know that what is in MAX_TAR_MEMBER_FILELEN can't be exceeded by any
possible value of type off_t.

cheers

andrew



В списке pgsql-patches по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: fix compile warning for pg_backup_tar.c
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: fix compile warning for pg_backup_tar.c