[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / PCH / chain-openmp-allocate.cpp
blobcab265309dc08e02c09af04e5d36615b5bae13ec
1 // no PCH
2 // RUN: %clang_cc1 -fopenmp -fnoopenmp-use-tls -ast-print -include %s -include %s %s -o - | FileCheck %s
3 // with PCH
4 // RUN: %clang_cc1 -fopenmp -fnoopenmp-use-tls -ast-print -chain-include %s -chain-include %s %s -o - | FileCheck %s
5 // no PCH
6 // RUN: %clang_cc1 -fopenmp -ast-print -include %s -include %s %s -o - | FileCheck %s -check-prefix=CHECK-ALLOC-1
7 // RUN: %clang_cc1 -fopenmp -ast-print -include %s -include %s %s -o - | FileCheck %s -check-prefix=CHECK-ALLOC-2
8 // with PCH
9 // RUN: %clang_cc1 -fopenmp -ast-print -chain-include %s -chain-include %s %s -o - | FileCheck %s -check-prefix=CHECK-ALLOC-1
10 // RUN: %clang_cc1 -fopenmp -ast-print -chain-include %s -chain-include %s %s -o - | FileCheck %s -check-prefix=CHECK-ALLOC-2
12 #if !defined(PASS1)
13 #define PASS1
15 typedef void **omp_allocator_handle_t;
16 extern const omp_allocator_handle_t omp_null_allocator;
17 extern const omp_allocator_handle_t omp_default_mem_alloc;
18 extern const omp_allocator_handle_t omp_large_cap_mem_alloc;
19 extern const omp_allocator_handle_t omp_const_mem_alloc;
20 extern const omp_allocator_handle_t omp_high_bw_mem_alloc;
21 extern const omp_allocator_handle_t omp_low_lat_mem_alloc;
22 extern const omp_allocator_handle_t omp_cgroup_mem_alloc;
23 extern const omp_allocator_handle_t omp_pteam_mem_alloc;
24 extern const omp_allocator_handle_t omp_thread_mem_alloc;
26 int a;
27 // CHECK: int a;
29 #elif !defined(PASS2)
30 #define PASS2
32 #pragma omp allocate(a) allocator(omp_default_mem_alloc)
33 // CHECK: #pragma omp allocate(a) allocator(omp_default_mem_alloc)
35 #else
37 // CHECK-LABEL: foo
38 // CHECK-ALLOC-LABEL: foo
39 int foo() {
40 return a;
41 // CHECK: return a;
42 // CHECK-ALLOC-1: return a;
45 // CHECK-ALLOC-2: return a;
47 #endif