On Mon, Apr 18, 2011 at 19:00, Tom Lane <t...@sss.pgh.pa.us> wrote:
> Alvaro Herrera <alvhe...@commandprompt.com> writes:
>> Excerpts from Andrew Dunstan's message of sáb abr 16 21:46:44 -0300 2011:
>>> The other, slightly more serious case, is at
>>> src/test/regress/pg_regress.c:2280, which is this code:
>>>
>>> printf(_("running on port %d with pid %lu\n"),
>>> port, (unsigned long) postmaster_pid);
>>>
>>> Here the postmaster_pid is in fact a HANDLE which is 8 bytes, and so it
>>> should probably be cast to an unsigned long long and  rendered with the
>>> format %llu in Win64.
>
>> Is this "uint64" and UINT64_FORMAT?
>
> Considering that this is a purely informational printout, I don't see
> any reason to give a damn about the possibility of high-order bits in
> the HANDLE being dropped.  And it's not an especially good idea to stick
> UINT64_FORMAT into a translatable string, because of the platform
> dependency that creates.

IIRC, even while HANDLE is a 64-bit value on Win64, only the lower
32-bits are actually used. Took me a while to find a ref, but this is
one I found: http://msdn.microsoft.com/en-us/library/aa384203(v=vs.85).aspx



> I think all we need here is a way to shut up the overly-anal-retentive
> warning.  I would have expected that explicit cast to be enough,
> actually, but apparently it's not.  Ideas?

Not sure about that one. Certainly seems like that case should be
enough - it always was enough to silence similar warnings on MSVC in
the past...

-- 
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to