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 int nested(int a) {
6 #pragma omp parallel
7   ++a;
8 
9   auto F = [&]() {
10 #if __cplusplus <= 199711L
11   // expected-warning@-2 {{'auto' type specifier is a C++11 extension}}
12   // expected-error@-3 {{expected expression}}
13   // expected-error@-4 {{expected ';' at end of declaration}}
14 #else
15   // expected-no-diagnostics
16 #endif
17 
18 #pragma omp parallel
19     {
20 #pragma omp target
21       ++a;
22     }
23   };
24   F();
25 #if __cplusplus <= 199711L
26   // expected-error@-2 {{C++ requires a type specifier for all declarations}}
27 #endif
28   return a;
29 #if __cplusplus <= 199711L
30   // expected-error@-2 {{expected unqualified-id}}
31 #endif
32 }
33 #if __cplusplus <= 199711L
34 // expected-error@-2 {{extraneous closing brace ('}')}}
35 #endif
36