From 8035bb4a6573f7d20f17044a68a1405691000525 Mon Sep 17 00:00:00 2001 From: Alexey Bataev Date: Fri, 13 Dec 2019 16:05:30 -0500 Subject: [OPENMP]Fix skipping of functions body. When parsing the code with OpenMP and the function's body must be skipped, need to skip also OpenMP annotation tokens. Otherwise the counters for braces/parens are unbalanced and parsing fails. --- clang/lib/Parse/Parser.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'clang/lib/Parse/Parser.cpp') diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp index 2645f27e656..ed4e6ff0fc5 100644 --- a/clang/lib/Parse/Parser.cpp +++ b/clang/lib/Parse/Parser.cpp @@ -278,6 +278,10 @@ bool Parser::SkipUntil(ArrayRef Toks, SkipUntilFlags Flags) { case tok::annot_pragma_openmp: case tok::annot_pragma_openmp_end: // Stop before an OpenMP pragma boundary. + if (OpenMPDirectiveParsing) + return false; + ConsumeAnnotationToken(); + break; case tok::annot_module_begin: case tok::annot_module_end: case tok::annot_module_include: -- cgit v1.2.3