AW: AW: Could turn on -O2 in AIX

Поиск
Список
Период
Сортировка
От Zeugswetter Andreas SB
Тема AW: AW: Could turn on -O2 in AIX
Дата
Msg-id 11C1E6749A55D411A9670001FA687963368109@sdexcsrv1.f000.d0188.sd.spardat.at
обсуждение исходный текст
Ответы Re: AW: AW: Could turn on -O2 in AIX  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
> There is a special case in nabstime.h for AIX, which imho
> got swapped. The normal case for me would be INT_MIN
> and not the 0x80000001.
> There is a comment that I don't understand at all given the below 
> source code:
> 
> /*
>  * AIX considers 2147483648 == -2147483648 (since they have 
> the same bit
>  * representation) but uses a different sign sense in a comparison to
>  * these integer constants depending on whether the constant is signed
>  * or not!
>  */
> #if defined (_AIX)
> #define NOSTART_ABSTIME ((AbsoluteTime) INT_MIN)
> #else 
> #define NOSTART_ABSTIME ((AbsoluteTime) 0x80000001)           
>   /* -2147483647 (- 2^31) */
> #endif
> 
> But that is unfortunately not the problem. Looks like yet 
> another broken compiler to me :-(

Ok, the comparison ((int) time) > ((int) 0x80000001) is the problem.
Reading the comment again and again, I have come to the conclusion,
that the intent was originally to avoid INT_MIN on AIX.

My solution would be to use INT_MIN for all ports, which has the advantage 
that the above problematic comparison can be converted to !=,
since no integer will be smaller than INT_MIN.

Please apply the patch and all works well.

Thanks
Andreas


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

Предыдущее
От: "Martin A. Marques"
Дата:
Сообщение: Postgres article
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: Problems with Perl