[clang] [OpenMP][Clang] Enable inscan modifier for generic datatypes (PR #82220)

via cfe-commits cfe-commits at lists.llvm.org
Sun Feb 18 22:59:01 PST 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: Animesh Kumar (animeshk-amd)

<details>
<summary>Changes</summary>

This patch fixes the #<!-- -->67002 ([OpenMP][Clang] Scan Directive not supported for Generic types). It disables the Sema checks/analysis that are run on the helper arrays which go into the implementation of the `omp scan` directive until the template instantiation happens.
Grateful to @<!-- -->alexey-bataev for suggesting these changes.

---
Full diff: https://github.com/llvm/llvm-project/pull/82220.diff


1 Files Affected:

- (modified) clang/lib/Sema/SemaOpenMP.cpp (+2-1) 


``````````diff
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index 7f75cfc5b54f35..f4364a259ad57f 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -4962,7 +4962,8 @@ StmtResult Sema::ActOnOpenMPRegionEnd(StmtResult S,
           if (RC->getModifier() != OMPC_REDUCTION_inscan)
             continue;
           for (Expr *E : RC->copy_array_temps())
-            MarkDeclarationsReferencedInExpr(E);
+            if (E)
+              MarkDeclarationsReferencedInExpr(E);
         }
         if (auto *AC = dyn_cast<OMPAlignedClause>(C)) {
           for (Expr *E : AC->varlists())

``````````

</details>


https://github.com/llvm/llvm-project/pull/82220


More information about the cfe-commits mailing list