On Wed Nov 8 18:10:17 2023 +0000, Evan Tang wrote:
It does not. Above 47 bits, it fails with `ERROR_INVALID_PARAMETER`. Around 47 bits, it fails with `ERROR_NOT_ENOUGH_MEMORY`, I assume based on whether it was able to find that much contiguous address space. (The important thing being that none of them kill the program as long as it handles any allocation errors)
OK, thanks for the info. I think we can safely say that Windows doesn't (and probably can't due to microarchitectural limitations) support more 47 bits. How about, in addition to the comment about evading the OOM killer, we add `if (i < 48) ok(GetLastError() == 0xdeadbeef || GetLastError() == ERROR_NOT_ENOUGH_MEMORY, ...) else ok(GetLastError() == ERROR_INVALID_PARAMETER, ...)`?