// RUN: %clang_cl_asan -O0 %s -Fe%t // RUN: %run %t #include <windows.h> DWORD WINAPI thread_proc_1(void *) { volatile int x, y, z; x = 1; y = 2; z = 3; return 0; } DWORD WINAPI thread_proc_2(void *) { volatile char stack_buffer[42]; for (int i = 0; i < sizeof(stack_buffer); ++i) stack_buffer[i] = 42; return 0; } int main(void) { HANDLE thr = NULL; thr = CreateThread(NULL, 0, thread_proc_1, NULL, 0, NULL); if (thr == 0) return 1; if (WAIT_OBJECT_0 != WaitForSingleObject(thr, INFINITE)) return 2; thr = CreateThread(NULL, 0, thread_proc_2, NULL, 0, NULL); if (thr == 0) return 3; if (WAIT_OBJECT_0 != WaitForSingleObject(thr, INFINITE)) return 4; CloseHandle(thr); }