diff options
Diffstat (limited to 'clang/lib/CodeGen/CGOpenMPRuntime.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGOpenMPRuntime.cpp | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp index 66fea92..121de42 100644 --- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp +++ b/clang/lib/CodeGen/CGOpenMPRuntime.cpp @@ -3731,6 +3731,7 @@ CGOpenMPRuntime::emitTaskInit(CodeGenFunction &CGF, SourceLocation Loc,      DestructorsFlag = 0x8,      PriorityFlag = 0x20,      DetachableFlag = 0x40, +    FreeAgentFlag = 0x80,    };    unsigned Flags = Data.Tied ? TiedFlag : 0;    bool NeedsCleanup = false; @@ -3740,6 +3741,11 @@ CGOpenMPRuntime::emitTaskInit(CodeGenFunction &CGF, SourceLocation Loc,      if (NeedsCleanup)        Flags = Flags | DestructorsFlag;    } +  if (const auto *Clause = D.getSingleClause<OMPThreadsetClause>()) { +    OpenMPThreadsetKind Kind = Clause->getThreadsetKind(); +    if (Kind == OMPC_THREADSET_omp_pool) +      Flags = Flags | FreeAgentFlag; +  }    if (Data.Priority.getInt())      Flags = Flags | PriorityFlag;    if (D.hasClausesOfKind<OMPDetachClause>()) | 
