Clang skipped annot_pragma_openmp token, while it should be considered as a stop token while skipping tokens.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@250684
91177308-0d34-0410-b5e6-
96231b3b80d8
// Ran out of tokens.
return false;
+ case tok::annot_pragma_openmp:
case tok::annot_pragma_openmp_end:
// Stop before an OpenMP pragma boundary.
case tok::annot_module_begin:
--- /dev/null
+// RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 %s
+int nested(int a) {
+#pragma omp parallel
+ ++a;
+
+ auto F = [&]() { // expected-error {{expected expression}} expected-error {{expected ';' at end of declaration}} expected-warning {{'auto' type specifier is a C++11 extension}}
+#pragma omp parallel
+ {
+#pragma omp target
+ ++a;
+ }
+ };
+ F(); // expected-error {{C++ requires a type specifier for all declarations}}
+ return a; // expected-error {{expected unqualified-id}}
+}// expected-error {{extraneous closing brace ('}')}}