summaryrefslogtreecommitdiffstats
path: root/clang/test/OpenMP/openmp_check.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2015-10-19 06:40:17 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2015-10-19 06:40:17 +0000
commit1d97d2a3d20e1490a72d3275c37ad57df3ede45c (patch)
treee24628f1815fec181bba378fff598822efd1213d /clang/test/OpenMP/openmp_check.cpp
parentd0a7d6e4eebf22800b955080ca754188e73acb64 (diff)
downloadbcm5719-llvm-1d97d2a3d20e1490a72d3275c37ad57df3ede45c.tar.gz
bcm5719-llvm-1d97d2a3d20e1490a72d3275c37ad57df3ede45c.zip
[OPENMP] Fix for http://llvm.org/PR25221: Infinite loop while parsing OpenMP directive
Clang skipped annot_pragma_openmp token, while it should be considered as a stop token while skipping tokens. llvm-svn: 250684
Diffstat (limited to 'clang/test/OpenMP/openmp_check.cpp')
-rw-r--r--clang/test/OpenMP/openmp_check.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/OpenMP/openmp_check.cpp b/clang/test/OpenMP/openmp_check.cpp
new file mode 100644
index 00000000000..c9b5eb0b9cb
--- /dev/null
+++ b/clang/test/OpenMP/openmp_check.cpp
@@ -0,0 +1,15 @@
+// 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 ('}')}}
OpenPOWER on IntegriCloud