On 2016-04-26 22:38:28 -0400, Noah Misch wrote: > On Fri, Apr 22, 2016 at 03:54:48PM +0000, Tom Lane wrote: > > Convert contrib/seg's bool-returning SQL functions to V1 call convention. > > > > It appears that we can no longer get away with using V0 call convention > > for bool-returning functions in newer versions of MSVC. The compiler > > seems to generate code that doesn't clear the higher-order bits of the > > result register, causing the bool result Datum to often read as "true" > > when "false" was intended. This is not very surprising, since the > > function thinks it's returning a bool-width result but fmgr_oldstyle > > assumes that V0 functions return "char *"; what's surprising is that > > that hack worked for so long on so many platforms. > > Does this warrant a change to the "Section 2" comment of postgres.h, > explaining that its precautions no longer suffice everywhere?
I don't understand why we don't just drop V0. It makes debugging harder, exploitation easier (call arbitrary functions), and really has no features making it desirable. Andres -- Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers