diff options
Diffstat (limited to 'lib/Parse/ParseOpenMP.cpp')
| -rw-r--r-- | lib/Parse/ParseOpenMP.cpp | 11 | 
1 files changed, 4 insertions, 7 deletions
| diff --git a/lib/Parse/ParseOpenMP.cpp b/lib/Parse/ParseOpenMP.cpp index 764619aae6f3..187289ee637d 100644 --- a/lib/Parse/ParseOpenMP.cpp +++ b/lib/Parse/ParseOpenMP.cpp @@ -223,6 +223,7 @@ Parser::ParseOpenMPDeclarativeOrExecutableDirective(bool StandAloneAllowed) {      ParseScope OMPDirectiveScope(this, ScopeFlags);      Actions.StartOpenMPDSABlock(DKind, DirName, Actions.getCurScope(), Loc); +    Actions.StartOpenMPClauses();      while (Tok.isNot(tok::annot_pragma_openmp_end)) {        OpenMPClauseKind CKind =            Tok.isAnnotation() @@ -242,6 +243,7 @@ Parser::ParseOpenMPDeclarativeOrExecutableDirective(bool StandAloneAllowed) {        if (Tok.is(tok::comma))          ConsumeToken();      } +    Actions.EndOpenMPClauses();      // End location of the directive.      EndLoc = Tok.getLocation();      // Consume final annot_pragma_openmp_end. @@ -257,13 +259,8 @@ Parser::ParseOpenMPDeclarativeOrExecutableDirective(bool StandAloneAllowed) {        // Parse statement        AssociatedStmt = ParseStatement();        Actions.ActOnFinishOfCompoundStmt(); -      if (!AssociatedStmt.isUsable()) { -        Actions.ActOnCapturedRegionError(); -        CreateDirective = false; -      } else { -        AssociatedStmt = Actions.ActOnCapturedRegionEnd(AssociatedStmt.get()); -        CreateDirective = AssociatedStmt.isUsable(); -      } +      AssociatedStmt = Actions.ActOnOpenMPRegionEnd(AssociatedStmt, Clauses); +      CreateDirective = AssociatedStmt.isUsable();      }      if (CreateDirective)        Directive = Actions.ActOnOpenMPExecutableDirective( | 
