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 11 12 #if !defined(PASS1) 13 #define PASS1 14 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; 25 26 int a; 27 // CHECK: int a; 28 29 #elif !defined(PASS2) 30 #define PASS2 31 32 #pragma omp allocate(a) allocator(omp_default_mem_alloc) 33 // CHECK: #pragma omp allocate(a) allocator(omp_default_mem_alloc) 34 35 #else 36 37 // CHECK-LABEL: foo 38 // CHECK-ALLOC-LABEL: foo foo()39int foo() { 40 return a; 41 // CHECK: return a; 42 // CHECK-ALLOC-1: return a; 43 } 44 45 // CHECK-ALLOC-2: return a; 46 47 #endif 48