19772000aSAlexey Bataev // no PCH 2*532dc62bSNikita Popov // RUN: %clang_cc1 -no-opaque-pointers -fopenmp -fnoopenmp-use-tls -emit-llvm -include %s -include %s %s -o - | FileCheck %s 39772000aSAlexey Bataev // with PCH 4*532dc62bSNikita Popov // RUN: %clang_cc1 -no-opaque-pointers -fopenmp -fnoopenmp-use-tls -emit-llvm -chain-include %s -chain-include %s %s -o - | FileCheck %s 5f8b5012dSSamuel Antao // no PCH 6*532dc62bSNikita Popov // RUN: %clang_cc1 -no-opaque-pointers -fopenmp -emit-llvm -include %s -include %s %s -o - | FileCheck %s -check-prefix=CHECK-TLS-1 7*532dc62bSNikita Popov // RUN: %clang_cc1 -no-opaque-pointers -fopenmp -emit-llvm -include %s -include %s %s -o - | FileCheck %s -check-prefix=CHECK-TLS-2 8f8b5012dSSamuel Antao // with PCH 9*532dc62bSNikita Popov // RUN: %clang_cc1 -no-opaque-pointers -fopenmp -emit-llvm -chain-include %s -chain-include %s %s -o - | FileCheck %s -check-prefix=CHECK-TLS-1 10*532dc62bSNikita Popov // RUN: %clang_cc1 -no-opaque-pointers -fopenmp -emit-llvm -chain-include %s -chain-include %s %s -o - | FileCheck %s -check-prefix=CHECK-TLS-2 11bbfa514fSNAKAMURA Takumi 129772000aSAlexey Bataev #if !defined(PASS1) 139772000aSAlexey Bataev #define PASS1 149772000aSAlexey Bataev 159772000aSAlexey Bataev extern "C" int* malloc (int size); 169772000aSAlexey Bataev int *a = malloc(20); 179772000aSAlexey Bataev 189772000aSAlexey Bataev #elif !defined(PASS2) 199772000aSAlexey Bataev #define PASS2 209772000aSAlexey Bataev 219772000aSAlexey Bataev #pragma omp threadprivate(a) 229772000aSAlexey Bataev 239772000aSAlexey Bataev #else 249772000aSAlexey Bataev 259772000aSAlexey Bataev // CHECK: call {{.*}} @__kmpc_threadprivate_register( 26332a3e07SReid Kleckner // CHECK-TLS-1: @{{a|\"\?a@@3PE?AHE?A\"}} = {{.*}}thread_local {{.*}}global {{.*}}i32* 279772000aSAlexey Bataev 289772000aSAlexey Bataev // CHECK-LABEL: foo 29f8b5012dSSamuel Antao // CHECK-TLS-LABEL: foo foo()309772000aSAlexey Bataevint foo() { 319772000aSAlexey Bataev return *a; 329772000aSAlexey Bataev // CHECK: call {{.*}} @__kmpc_global_thread_num( 339772000aSAlexey Bataev // CHECK: call {{.*}} @__kmpc_threadprivate_cached( 34332a3e07SReid Kleckner // CHECK-TLS-1: call {{.*}} @{{_ZTW1a|\"\?\?__Ea@@YAXXZ\"}}() 359772000aSAlexey Bataev } 36f8b5012dSSamuel Antao 37332a3e07SReid Kleckner // CHECK-TLS-2: define {{.*}} @{{_ZTW1a|\"\?\?__Ea@@YAXXZ\"}}() 38f8b5012dSSamuel Antao 399772000aSAlexey Bataev #endif 40