1 // RUN: %clang_cc1 -verify -fopenmp -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s 2 // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s 3 // RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -debug-info-kind=limited -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s 4 // expected-no-diagnostics 5 #ifndef HEADER 6 #define HEADER 7 8 template <class T> 9 T tmain(T argc) { 10 static T a; 11 #pragma omp flush 12 #pragma omp flush(a) 13 return a + argc; 14 } 15 16 // CHECK-LABEL: @main 17 int main() { 18 static int a; 19 #pragma omp flush 20 #pragma omp flush(a) 21 // CHECK: call {{.*}}void @__kmpc_flush(%{{.+}}* {{(@|%).+}}) 22 // CHECK: call {{.*}}void @__kmpc_flush(%{{.+}}* {{(@|%).+}}) 23 return tmain(a); 24 // CHECK: call {{.*}} [[TMAIN:@.+]]( 25 // CHECK: ret 26 } 27 28 // CHECK: [[TMAIN]] 29 // CHECK: call {{.*}}void @__kmpc_flush(%{{.+}}* {{(@|%).+}}) 30 // CHECK: call {{.*}}void @__kmpc_flush(%{{.+}}* {{(@|%).+}}) 31 // CHECK: ret 32 33 #endif 34