Gregory Stark <[EMAIL PROTECTED]> writes: >> Tom Lane wrote: >>> Specifically, I think what you missed is that on some platforms C >>> functions pass or return float values differently from similar-sized >>> integer or pointer values (typically, the float values get passed in >>> floating-point registers).
> But I'm skeptical that it would hit such a wide swathe of the build farm. In > particular AFAIK the standard ABI for i386 does no such thing. I did some digging, and it seems you're mistaken. The standard gcc ABI for both i386 and x86_64 returns floats in float registers (387 registers in the first case, and SSE registers in the second case). This appears to have been the case for a very long time. I quote from the manual for gcc 2.95: `-mno-fp-ret-in-387' Do not use the FPU registers for return values of functions. The usual calling convention has functions return values of types `float' and `double' in an FPU register, even if there is no FPU. The idea is that the operating system should emulate an FPU. The option `-mno-fp-ret-in-387' causes such values to be returned in ordinary CPU registers instead. It seems very odd that Alvaro's testing on an AMD64 platform didn't show the problem. regards, tom lane -- Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-patches