| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // no PCH
- // RUN: %clang_cc1 -fopenmp -fnoopenmp-use-tls -emit-llvm -include %s -include %s %s -o - | FileCheck %s
- // with PCH
- // RUN: %clang_cc1 -fopenmp -fnoopenmp-use-tls -emit-llvm -chain-include %s -chain-include %s %s -o - | FileCheck %s
- // no PCH
- // RUN: %clang_cc1 -fopenmp -emit-llvm -include %s -include %s %s -o - | FileCheck %s -check-prefix=CHECK-TLS-1
- // RUN: %clang_cc1 -fopenmp -emit-llvm -include %s -include %s %s -o - | FileCheck %s -check-prefix=CHECK-TLS-2
- // with PCH
- // RUN: %clang_cc1 -fopenmp -emit-llvm -chain-include %s -chain-include %s %s -o - | FileCheck %s -check-prefix=CHECK-TLS-1
- // RUN: %clang_cc1 -fopenmp -emit-llvm -chain-include %s -chain-include %s %s -o - | FileCheck %s -check-prefix=CHECK-TLS-2
- // REQUIRES: tls
- #if !defined(PASS1)
- #define PASS1
- extern "C" int* malloc (int size);
- int *a = malloc(20);
- #elif !defined(PASS2)
- #define PASS2
- #pragma omp threadprivate(a)
- #else
- // CHECK: call {{.*}} @__kmpc_threadprivate_register(
- // CHECK-TLS-1: @{{a|\"\\01\?a@@3PE?AHE?A\"}} = {{.*}}thread_local {{.*}}global {{.*}}i32*
- // CHECK-LABEL: foo
- // CHECK-TLS-LABEL: foo
- int foo() {
- return *a;
- // CHECK: call {{.*}} @__kmpc_global_thread_num(
- // CHECK: call {{.*}} @__kmpc_threadprivate_cached(
- // CHECK-TLS-1: call {{.*}} @{{_ZTW1a|\"\\01\?\?__Ea@@YAXXZ\"}}()
- }
- // CHECK-TLS-2: define {{.*}} @{{_ZTW1a|\"\\01\?\?__Ea@@YAXXZ\"}}()
- #endif
|