RSABASE/TESTS: Fix signed/unsigned comparison warnings

Hans Leidekker hans at
Mon Aug 9 06:31:34 CDT 2004

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

  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?


More information about the wine-devel mailing list