On Monday 09 August 2004 12:17, Hans Leidekker wrote:
variable. We somehow have to live with the fact that NTE_BAD_KEYSET is defined as ((HRESULT)0x80090016L), which is signed, and GetLastError() returning DWORD, i.e unsigned.
On a related note, I am looking at the last testsuite with signed/unsigned comparison warnings, ntdll, and I'm trying to deal with constructs like this one:
NTSTATUS ntstatus;
ok(ntstatus == STATUS_SUCCESS, "Call failed (%lu)\n", ntstatus);
where Wine defines STATUS_SUCCESS like so:
#define STATUS_SUCCESS 0x00000000
which means STATUS_SUCCESS is handled by gcc as an unsigned value. This generates a warning because NTSTATUS is signed. If we look at the SDK definition we see something different:
#define STATUS_SUCCESS ((NTSTATUS)0x00000000L)
Which would get rid of the warnings for us if we add the cast there too. Should I submit a patch to do this? To add a cast in every such code sequence is not a good alternative if you ask me, as it's a very common idiom. Any other solutions?
-Hans