1*7c3d14c8STreehugger Robot // RUN: %clang_cl_asan -O0 %s -Fe%t 2*7c3d14c8STreehugger Robot // RUN: %run %t 3*7c3d14c8STreehugger Robot 4*7c3d14c8STreehugger Robot #include <windows.h> 5*7c3d14c8STreehugger Robot #include <process.h> 6*7c3d14c8STreehugger Robot thread_proc(void *)7*7c3d14c8STreehugger Robotunsigned WINAPI thread_proc(void *) { 8*7c3d14c8STreehugger Robot volatile char stack_buffer[42]; 9*7c3d14c8STreehugger Robot for (int i = 0; i < sizeof(stack_buffer); ++i) 10*7c3d14c8STreehugger Robot stack_buffer[i] = 42; 11*7c3d14c8STreehugger Robot return 0; 12*7c3d14c8STreehugger Robot } 13*7c3d14c8STreehugger Robot main()14*7c3d14c8STreehugger Robotint main() { 15*7c3d14c8STreehugger Robot HANDLE thr = (HANDLE)_beginthreadex(NULL, 0, thread_proc, NULL, 0, NULL); 16*7c3d14c8STreehugger Robot if (thr == 0) 17*7c3d14c8STreehugger Robot return 1; 18*7c3d14c8STreehugger Robot if (WAIT_OBJECT_0 != WaitForSingleObject(thr, INFINITE)) 19*7c3d14c8STreehugger Robot return 2; 20*7c3d14c8STreehugger Robot CloseHandle(thr); 21*7c3d14c8STreehugger Robot } 22