diff options
Diffstat (limited to 'lib/Parse')
-rw-r--r-- | lib/Parse/ParsePragma.cpp | 15 | ||||
-rw-r--r-- | lib/Parse/ParseStmt.cpp | 3 |
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/Parse/ParsePragma.cpp b/lib/Parse/ParsePragma.cpp index dc6b3ed4fa..038636d108 100644 --- a/lib/Parse/ParsePragma.cpp +++ b/lib/Parse/ParsePragma.cpp @@ -122,6 +122,19 @@ void Parser::HandlePragmaFPContract() { ConsumeToken(); // The annotation token. } +StmtResult Parser::HandlePragmaCaptured() +{ + assert(Tok.is(tok::annot_pragma_captured)); + ConsumeToken(); + + if (Tok.isNot(tok::l_brace)) { + PP.Diag(Tok, diag::err_expected_lbrace); + return StmtError(); + } + + return StmtEmpty(); +} + namespace { typedef llvm::PointerIntPair<IdentifierInfo *, 1, bool> OpenCLExtData; } @@ -151,6 +164,8 @@ void Parser::HandlePragmaOpenCLExtension() { } } + + // #pragma GCC visibility comes in two variants: // 'push' '(' [visibility] ')' // 'pop' diff --git a/lib/Parse/ParseStmt.cpp b/lib/Parse/ParseStmt.cpp index 355f3694bb..5fa4f17026 100644 --- a/lib/Parse/ParseStmt.cpp +++ b/lib/Parse/ParseStmt.cpp @@ -289,6 +289,9 @@ Retry: HandlePragmaOpenCLExtension(); return StmtEmpty(); + case tok::annot_pragma_captured: + return HandlePragmaCaptured(); + case tok::annot_pragma_openmp: SourceLocation DeclStart = Tok.getLocation(); DeclGroupPtrTy Res = ParseOpenMPDeclarativeDirective(); |