11d97d2a3SAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 %s 24f800746SCharles Li // RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -std=c++98 %s 34f800746SCharles Li // RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -std=c++11 %s 44f800746SCharles Li 5a8a9153aSAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 %s 6a8a9153aSAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 -std=c++98 %s 7a8a9153aSAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 -std=c++11 %s 8a8a9153aSAlexey Bataev // SIMD-ONLY0-NOT: {{__kmpc|__tgt}} 9a8a9153aSAlexey Bataev 10*96dae81dSAlexey Bataev #define p _Pragma("omp parallel") 11*96dae81dSAlexey Bataev nested(int a)121d97d2a3SAlexey Bataevint nested(int a) { 13*96dae81dSAlexey Bataev #pragma omp parallel p // expected-error {{unexpected OpenMP directive}} 14*96dae81dSAlexey Bataev ++a; 151d97d2a3SAlexey Bataev #pragma omp parallel 161d97d2a3SAlexey Bataev ++a; 171d97d2a3SAlexey Bataev 184f800746SCharles Li auto F = [&]() { 194f800746SCharles Li #if __cplusplus <= 199711L 204f800746SCharles Li // expected-warning@-2 {{'auto' type specifier is a C++11 extension}} 214f800746SCharles Li // expected-error@-3 {{expected expression}} 224f800746SCharles Li #endif 234f800746SCharles Li 241d97d2a3SAlexey Bataev #pragma omp parallel 251d97d2a3SAlexey Bataev { 261d97d2a3SAlexey Bataev #pragma omp target 271d97d2a3SAlexey Bataev ++a; 281d97d2a3SAlexey Bataev } 291d97d2a3SAlexey Bataev }; 304f800746SCharles Li F(); 314f800746SCharles Li return a; 324f800746SCharles Li } 33