diff options
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaOpenMP.cpp | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index 54492b50770..ea619ffb326 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -3316,6 +3316,16 @@ StmtResult Sema::ActOnOpenMPParallelForSimdDirective(    if (NestedLoopCount == 0)      return StmtError(); +  if (!CurContext->isDependentContext()) { +    // Finalize the clauses that need pre-built expressions for CodeGen. +    for (auto C : Clauses) { +      if (auto LC = dyn_cast<OMPLinearClause>(C)) +        if (FinishOpenMPLinearClause(*LC, cast<DeclRefExpr>(B.IterationVarRef), +                                     B.NumIterations, *this, CurScope)) +          return StmtError(); +    } +  } +    getCurFunction()->setHasBranchProtectedScope();    return OMPParallelForSimdDirective::Create(        Context, StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);  | 

