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_1(void *) {
      7   volatile int x, y, z;
      8   x = 1;
      9   y = 2;
     10   z = 3;
     11   return 0;
     12 }
     13 
     14 DWORD WINAPI thread_proc_2(void *) {
     15   volatile char stack_buffer[42];
     16   for (int i = 0; i < sizeof(stack_buffer); ++i)
     17     stack_buffer[i] = 42;
     18   return 0;
     19 }
     20 
     21 int main(void) {
     22   HANDLE thr = NULL;
     23 
     24   thr = CreateThread(NULL, 0, thread_proc_1, NULL, 0, NULL);
     25   if (thr == 0)
     26     return 1;
     27   if (WAIT_OBJECT_0 != WaitForSingleObject(thr, INFINITE))
     28     return 2;
     29 
     30   thr = CreateThread(NULL, 0, thread_proc_2, NULL, 0, NULL);
     31   if (thr == 0)
     32     return 3;
     33   if (WAIT_OBJECT_0 != WaitForSingleObject(thr, INFINITE))
     34     return 4;
     35   CloseHandle(thr);
     36 }
     37 
     38