brintos

brintos / llvm-project-archived public Read only

0
0
Text · 730 B · f727d43 Raw
38 lines · cpp
1// RUN: %clang_cl_asan %Od %s %Fe%t2// RUN: %run %t3 4#include <windows.h>5 6DWORD 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 14DWORD 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 21int 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