Re: pgsql: Provide overflow safe integer math inline functions.
От | Andres Freund |
---|---|
Тема | Re: pgsql: Provide overflow safe integer math inline functions. |
Дата | |
Msg-id | 20171217003207.3myeahkbsm63kbvl@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: pgsql: Provide overflow safe integer math inline functions. (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: pgsql: Provide overflow safe integer math inline functions.
Re: pgsql: Provide overflow safe integer math inline functions. |
Список | pgsql-committers |
On 2017-12-13 13:37:54 -0800, Andres Freund wrote: > Hi Michael, > > On 2017-12-13 01:01:19 +0000, Andres Freund wrote: > > Provide overflow safe integer math inline functions. > > https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=dangomushi&dt=2017-12-13%2018%3A00%3A18 > > which seems half like a compiler bug to me. But either way, we gotta > work around it. I suspect the reason configure test doesn't > sufficiently detect this here is because it's testing the function with > constant arguments. > > Could you perhaps test whether replacing PGAC_C_BUILTIN_OP_OVERFLOW's body with something like > result > PG_INT64_TYPE a; > PG_INT64_TYPE b; > PG_INT64_TYPE result; > __builtin_mul_overflow(*(volatile PG_INT64_TYPE*) &a, *(volatile PG_INT64_TYPE*) &b, &result); > > makes it fail? I'd rather not test this via the buildfarm, given that > dangomushi isn't the most frequently running / fastest animal. I've since tried this via the buildfarm, but still: configure:14480: checking for __builtin_mul_overflow configure:14500: ccache clang -o conftest -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument-g -O2 -D_GNU_SOURCE -I/usr/include/et conftest.c -lssl -lcrypto -lz -lreadline -lrt-lcrypt -ldl -lm >&5 configure:14500: $? = 0 configure:14508: result: yes I'm not quite following. Could you check if the same happens without -O2? Not because that'd be a solution, but to narrow down how this happens? Greetings, Andres Freund
В списке pgsql-committers по дате отправления: