xref: /minix3/external/bsd/llvm/dist/clang/test/PCH/chain-openmp-threadprivate.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc // no PCH
2*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -fopenmp=libiomp5 -emit-llvm -include %s -include %s %s -o - | FileCheck %s
3*0a6a1f1dSLionel Sambuc // with PCH
4*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -fopenmp=libiomp5 -emit-llvm -chain-include %s -chain-include %s %s -o - | FileCheck %s
5*0a6a1f1dSLionel Sambuc #if !defined(PASS1)
6*0a6a1f1dSLionel Sambuc #define PASS1
7*0a6a1f1dSLionel Sambuc 
8*0a6a1f1dSLionel Sambuc extern "C" int* malloc (int size);
9*0a6a1f1dSLionel Sambuc int *a = malloc(20);
10*0a6a1f1dSLionel Sambuc 
11*0a6a1f1dSLionel Sambuc #elif !defined(PASS2)
12*0a6a1f1dSLionel Sambuc #define PASS2
13*0a6a1f1dSLionel Sambuc 
14*0a6a1f1dSLionel Sambuc #pragma omp threadprivate(a)
15*0a6a1f1dSLionel Sambuc 
16*0a6a1f1dSLionel Sambuc #else
17*0a6a1f1dSLionel Sambuc 
18*0a6a1f1dSLionel Sambuc // CHECK: call {{.*}} @__kmpc_threadprivate_register(
19*0a6a1f1dSLionel Sambuc 
20*0a6a1f1dSLionel Sambuc // CHECK-LABEL: foo
foo()21*0a6a1f1dSLionel Sambuc int foo() {
22*0a6a1f1dSLionel Sambuc   return *a;
23*0a6a1f1dSLionel Sambuc   // CHECK: call {{.*}} @__kmpc_global_thread_num(
24*0a6a1f1dSLionel Sambuc   // CHECK: call {{.*}} @__kmpc_threadprivate_cached(
25*0a6a1f1dSLionel Sambuc }
26*0a6a1f1dSLionel Sambuc #endif
27