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