Re: RELEASE STOPPER? nonportable int64 constants in pg_crc.c

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: RELEASE STOPPER? nonportable int64 constants in pg_crc.c
Дата
Msg-id 2754.985229195@sss.pgh.pa.us
обсуждение исходный текст
Ответ на RELEASE STOPPER? nonportable int64 constants in pg_crc.c  (Zeugswetter Andreas SB <ZeugswetterA@wien.spardat.at>)
Ответы Re: Re: RELEASE STOPPER? nonportable int64 constants in pg_crc.c  (The Hermit Hacker <scrappy@hub.org>)
Re: Re: RELEASE STOPPER? nonportable int64 constants in pg_crc.c  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Zeugswetter Andreas SB  <ZeugswetterA@wien.spardat.at> writes:
> Recent changes in pg_crc.c (64 bit CRC) introduced non portable constants of the form:

>  -c -o pg_crc.o pg_crc.c
>       287 |         0x0000000000000000, 0x42F0E1EBA9EA3693,
>             ............................a..................
> a - 1506-207 (W) Integer constant 0x42F0E1EBA9EA3693 out of range.

Please observe that this is a warning, not an error.  Your proposed
fix is considerably worse than the disease, because it will break on
compilers that do not recognize "LL" constants, to say nothing of
machines where L is correct and LL is some yet wider datatype.

I'm aware that some compilers will produce warnings about these
constants, but there should not be any that fail completely, since
(a) we won't be compiling this code unless we've proven that the
compiler supports a 64-bit-int datatype, and (b) the C standard
forbids a compiler from requiring width suffixes (cf. 6.4.4.1 in C99).

I don't think it's a good tradeoff to risk breaking some platforms in
order to suppress warnings from overly anal-retentive compilers.
        regards, tom lane


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

Предыдущее
От: Limin Liu
Дата:
Сообщение: Re: Can I use SPI in postgres.c
Следующее
От: The Hermit Hacker
Дата:
Сообщение: Re: Re: RELEASE STOPPER? nonportable int64 constants in pg_crc.c