Re: pgsql: Use new overflow aware integer operations.
От | Andres Freund |
---|---|
Тема | Re: pgsql: Use new overflow aware integer operations. |
Дата | |
Msg-id | 20180214223026.m2alym4qrdnimqrd@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: pgsql: Use new overflow aware integer operations. (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: pgsql: Use new overflow aware integer operations.
|
Список | pgsql-committers |
On 2017-12-29 12:21:54 -0800, Andres Freund wrote: > On 2017-12-27 17:59:26 -0500, Tom Lane wrote: > > #if defined(HAVE__BUILTIN_OP_OVERFLOW) > > return __builtin_add_overflow(a, b, result); > > #else > > int32 res = (int32) a + (int32) b; > > > > if (res > PG_INT16_MAX || res < PG_INT16_MIN) > > + { > > + *result = 0; /* just to keep compiler quiet */ > > return true; > > + } > > *result = (int16) res; > > return false; > > #endif > > > > I do not think this would cause any performance loss in our expected > > usage, because reasonably bright compilers would detect that the store > > is dead code and remove it. But less-bright compilers would not be > > issuing warnings. > > Yea, that works for me. I wonder if we should choose an absurd sentinel > value to prevent code from relying on one? 0x0000beef or such. Unless > somebody protests soon-ish I'll make it so. Pushed that way (with 0x5EED as the value, seems more appropriate ;)). I can't convince any of my compilers to actual emit warnings in this case, so we'll have to see whether prairiedog like this... Greetings, Andres Freund
В списке pgsql-committers по дате отправления: