kernel32: Disable diagnostics when testing corner cases in test_heap().

Gerald Pfeifer gerald at pfeifer.com
Tue Feb 21 10:16:33 CST 2017


On Tue, 21 Feb 2017, Erich E. Hoover wrote:
> On Sat, Feb 11, 2017 at 2:41 PM, Gerald Pfeifer <gerald at pfeifer.com> wrote:
>> With that dlls/kernel32/tests/heap.c triggers three warnings, all of
>> which are correct positives, but in fact do want to test those corner
>> cases:
> I'm not convinced that this statement is true.  For example, while
> "~(SIZE_T)0 - 7" gives us 4294967288 (matching what is indicated by
> the warning), HeapReAlloc accepts a SIZE_T.  So, this should support a
> maximum value of 4294967295 (not 2147483647).  This says to me that
> gcc thinks SIZE_T is a signed value instead of an unsigned value, do
> you have any idea why this might be the case?

Hmm, so here is an excerpt from the documentation of the forthcoming 
GCC 7 release about this warning:

  Warn about calls to functions decorated with attribute @code{alloc_size}
  that attempt to allocate objects larger than the specified number of 
  bytes, or where the result of the size computation in an integer type 
  with infinite precision would exceed @code{SIZE_MAX / 2}. 

(I believe this boils down to "half the address space", which indeed
would be at least unusual for a memory allocation. ;-)

Gerald



More information about the wine-devel mailing list