From 3778b60176e1c7de4f8f42ba921cf52634a6e951 Mon Sep 17 00:00:00 2001 From: Alexey Bataev Date: Thu, 17 Jul 2014 07:32:53 +0000 Subject: [OPENMP] Initial parsing and sema analysis for 'final' clause. llvm-svn: 213232 --- clang/lib/Sema/TreeTransform.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'clang/lib/Sema/TreeTransform.h') diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 1a71c0a4a5e..f9775c1ad10 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -1318,6 +1318,17 @@ public: LParenLoc, EndLoc); } + /// \brief Build a new OpenMP 'final' clause. + /// + /// By default, performs semantic analysis to build the new OpenMP clause. + /// Subclasses may override this routine to provide different behavior. + OMPClause *RebuildOMPFinalClause(Expr *Condition, SourceLocation StartLoc, + SourceLocation LParenLoc, + SourceLocation EndLoc) { + return getSema().ActOnOpenMPFinalClause(Condition, StartLoc, LParenLoc, + EndLoc); + } + /// \brief Build a new OpenMP 'num_threads' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. @@ -6542,6 +6553,15 @@ OMPClause *TreeTransform::TransformOMPIfClause(OMPIfClause *C) { C->getLParenLoc(), C->getLocEnd()); } +template +OMPClause *TreeTransform::TransformOMPFinalClause(OMPFinalClause *C) { + ExprResult Cond = getDerived().TransformExpr(C->getCondition()); + if (Cond.isInvalid()) + return nullptr; + return getDerived().RebuildOMPFinalClause(Cond.get(), C->getLocStart(), + C->getLParenLoc(), C->getLocEnd()); +} + template OMPClause * TreeTransform::TransformOMPNumThreadsClause(OMPNumThreadsClause *C) { -- cgit v1.2.3