Tom Lane wrote:
> Magnus Hagander <magnus@hagander.net> writes:
>> Tom Lane wrote:
>>> Surely this patch is wrong. It is suppressing, not fixing, a critical
>>> warning about a datatype mismatch.
>
>> You mean the signed vs unsigned part? Other than that, int and dword are
>> always the same on win32...
>
> Hmm, need more caffeine I guess. I was thinking dword == long. But in
> any case, I'd feel a lot more comfortable if the patch ifdef'd the
> declaration of exit_status to match, rather than forcing a cast of the
> pointer value. Just a couple weeks ago I wasted a great deal of time
> finding a bug that was created by someone overriding this exact type of
> compiler warning with a cast to something that *wasn't* binary
> compatible. (It worked fine on the author's machine, of course, but
> not so much on one with a different sizeof long...)
Hmm. I looked at that, but that kind of just moves things around.
If i change that variable to be DWORD, it still stuffs it into
statuses[i] three lines further down, which then means that the whole
definition of the function wait_for_tests need to be #ifdefed.
I guess the proper solution in that case is to #define a datatype used
for return codes. Is it really worth that for this, though?
//Magnus