1db39021cSAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp -ast-print %s | FileCheck %s
2db39021cSAlexey Bataev // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -emit-pch -o %t %s
3db39021cSAlexey Bataev // RUN: %clang_cc1 -fopenmp -std=c++11 -include-pch %t -fsyntax-only -verify %s -ast-print | FileCheck %s
4a8a9153aSAlexey Bataev 
5a8a9153aSAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp-simd -ast-print %s | FileCheck %s
6a8a9153aSAlexey Bataev // RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++11 -emit-pch -o %t %s
7a8a9153aSAlexey Bataev // RUN: %clang_cc1 -fopenmp-simd -std=c++11 -include-pch %t -fsyntax-only -verify %s -ast-print | FileCheck %s
868446b72SAlexey Bataev // expected-no-diagnostics
968446b72SAlexey Bataev 
1068446b72SAlexey Bataev #ifndef HEADER
1168446b72SAlexey Bataev #define HEADER
1268446b72SAlexey Bataev 
foo()1368446b72SAlexey Bataev void foo() {}
1468446b72SAlexey Bataev 
1568446b72SAlexey Bataev template <class T>
tmain(T argc)1668446b72SAlexey Bataev T tmain(T argc) {
1768446b72SAlexey Bataev   static T a;
1868446b72SAlexey Bataev #pragma omp taskyield
1968446b72SAlexey Bataev   return a + argc;
2068446b72SAlexey Bataev }
21a67a4d2fSSerge Pavlov // CHECK:      static T a;
22*cbecfdfeSAlexey Bataev // CHECK-NEXT: #pragma omp taskyield{{$}}
2368446b72SAlexey Bataev // CHECK:      static int a;
2468446b72SAlexey Bataev // CHECK-NEXT: #pragma omp taskyield
2568446b72SAlexey Bataev // CHECK:      static char a;
2668446b72SAlexey Bataev // CHECK-NEXT: #pragma omp taskyield
2768446b72SAlexey Bataev 
main(int argc,char ** argv)2868446b72SAlexey Bataev int main(int argc, char **argv) {
2968446b72SAlexey Bataev   static int a;
3068446b72SAlexey Bataev // CHECK: static int a;
3168446b72SAlexey Bataev #pragma omp taskyield
3268446b72SAlexey Bataev   // CHECK-NEXT: #pragma omp taskyield
3368446b72SAlexey Bataev   return tmain(argc) + tmain(argv[0][0]) + a;
3468446b72SAlexey Bataev }
3568446b72SAlexey Bataev 
3668446b72SAlexey Bataev #endif
37