Re: Keep compiler silence (clang 10, implicit conversion from'long' to 'double' )
От | Kyotaro Horiguchi |
---|---|
Тема | Re: Keep compiler silence (clang 10, implicit conversion from'long' to 'double' ) |
Дата | |
Msg-id | 20191107.150944.889761811766014411.horikyota.ntt@gmail.com обсуждение исходный текст |
Ответ на | Re: Keep compiler silence (clang 10, implicit conversion from 'long'to 'double' ) (Yuya Watari <watari.yuya@gmail.com>) |
Ответы |
Re: Keep compiler silence (clang 10, implicit conversion from 'long'to 'double' )
|
Список | pgsql-hackers |
At Wed, 6 Nov 2019 13:56:46 +0900, Yuya Watari <watari.yuya@gmail.com> wrote in > Hello Tom, Thomas, and Andrew, > > > Tom> That commit presumes that floats follow the IEEE bitwise > > Tom> representation, I think; > > > > Correct. (It notably does _not_ make any assumptions about how floating > > point arithmetic or comparisons work - all the computation is done in > > integers.) > > > > Tom> but it's a long way from there to assuming that float comparisons > > Tom> do something that is explicitly *not* promised by C99. > > > > I agree. > > Thank you for your comments. I agree that we should not assume > anything that is not guaranteed in the language specification. The > modified patch (attached in the previous e-mail) checks NaN explicitly > if needed. Mmm? See the bit in the patch cited below (v5). + /* Range check */ + if (unlikely(!FLOAT8_FITS_IN_INT32(num)) || isnan(num)) If compiler doesn't any fancy, num is fed to an arithmetic before checking if it is NaN. That seems have a chance of exception. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
В списке pgsql-hackers по дате отправления: