Home | History | Annotate | Download | only in Windows
      1 // RUN: %clang_cl_asan -O0 %s -Fe%t
      2 // RUN: %run %t
      3 
      4 #include <windows.h>
      5 
      6 DWORD WINAPI thread_proc(void *) {
      7   volatile char stack_buffer[42];
      8   for (int i = 0; i < sizeof(stack_buffer); ++i)
      9     stack_buffer[i] = 42;
     10   return 0x42;
     11 }
     12 
     13 int main() {
     14   DWORD exitcode;
     15   HANDLE thr = CreateThread(NULL, 0, thread_proc, NULL, CREATE_SUSPENDED, NULL);
     16   ResumeThread(thr);
     17   if (thr == 0)
     18     return 1;
     19   if (WAIT_OBJECT_0 != WaitForSingleObject(thr, INFINITE))
     20     return 2;
     21 
     22   GetExitCodeThread(thr, &exitcode);
     23   if (exitcode != 0x42)
     24     return 3;
     25   CloseHandle(thr);
     26 }
     27 
     28