The functions take a WAIT_TYPE argument instead of a BOOLEAN.
This causes test failures in kernel32:sync when compiled with clang and
optimizations enabled, as it optimizes away clearing the higher bytes
of the register used for the WAIT_TYPE argument, leaving set bits in
the higher bytes ending up with an invalid WAIT_TYPE value.
--
v3: ntdll: Fix (Nt|Zw)WaitForMultipleObjects signature.
https://gitlab.winehq.org/wine/wine/-/merge_requests/9240
The functions take a WAIT_TYPE argument instead of a BOOLEAN.
This causes test failures in kernel32:sync when compiled with clang and
optimizations enabled, as it optimizes away clearing the higher bytes
of the register used for the WAIT_TYPE argument, leaving set bits in
the higher bytes ending up with an invalid WAIT_TYPE value.
--
v2: ntdll: Fix (Nt|Zw)WaitForMultipleObjects signature.
https://gitlab.winehq.org/wine/wine/-/merge_requests/9240
Unwinding should stop on access violation. This matches windows behavior.
Below is a test that demonstrates the problem:
```c
#include <windows.h>
#include <stdio.h>
int main() {
void *retaddr = __builtin_extract_return_addr(__builtin_return_address(0));
DWORD64 imagebase;
UNWIND_HISTORY_TABLE table;
RUNTIME_FUNCTION *rf = RtlLookupFunctionEntry((DWORD64)retaddr, &imagebase, &table);
DWORD old;
VirtualProtect(rf, 0x100, PAGE_READWRITE, &old);
rf->UnwindData = 0x12345678;
VirtualProtect(rf, 0x100, old, &old);
void *bt[100];
RtlCaptureStackBackTrace(0, 100, bt, NULL);
return 0;
}
```
This crashes on wine but not on windows.
--
v2: ntdll: Stop unwinding on access violation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/9218
This would hopefully fix some comctl32 test failures which started happening after I changed my nightly winetest runs to build Wine with Clang.
--
v2: winegcc: Force default subsystem version to MSVC modern values.
user32/tests: Force console subsystem version 5.2.
quartz/tests: Force console subsystem version 5.2.
dxgi/tests: Force console subsystem version 5.2.
comctl32/tests: Force console subsystem version 5.2.
winegcc: Support subsystem version number in link.exe-style cmdline.
winegcc: Consistently use the subsystem option with Clang and MinGW.
https://gitlab.winehq.org/wine/wine/-/merge_requests/9027