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 Bataevvoid foo() {} 1468446b72SAlexey Bataev 1568446b72SAlexey Bataev template <class T> tmain(T argc)1668446b72SAlexey BataevT 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 Bataevint 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