xref: /llvm-project/clang/test/OpenMP/openmp_check.cpp (revision 2699072b4bc8d8d5e84eb66af38face73ceeb4d3)
1 // RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 %s
2 // RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -std=c++98 %s
3 // RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -std=c++11 %s
4 
5 // RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 %s
6 // RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 -std=c++98 %s
7 // RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 -std=c++11 %s
8 // SIMD-ONLY0-NOT: {{__kmpc|__tgt}}
9 
10 #define p _Pragma("omp parallel")
11 
nested(int a)12 int nested(int a) {
13 #pragma omp parallel p // expected-error {{unexpected OpenMP directive}}
14   ++a;
15 #pragma omp parallel
16   ++a;
17 
18   auto F = [&]() {
19 #if __cplusplus <= 199711L
20   // expected-warning@-2 {{'auto' type specifier is a C++11 extension}}
21   // expected-warning@-3 {{lambdas are a C++11 extension}}
22 #endif
23 
24 #pragma omp parallel
25     {
26 #pragma omp target
27       ++a;
28     }
29   };
30   F();
31   return a;
32 }
33