https://github.com/chandraghale updated https://github.com/llvm/llvm-project/pull/114221
>From 4e6d8c1edb73fe08659519d8798cab162875ebc0 Mon Sep 17 00:00:00 2001 From: Chandra Ghale <gh...@pe31.hpc.amslabs.hpecorp.net> Date: Wed, 30 Oct 2024 07:18:06 -0500 Subject: [PATCH 1/2] Fix for codegen Crash in Clang when using locator omp_all_memory with depobj --- clang/lib/CodeGen/CGStmtOpenMP.cpp | 10 ++++++---- clang/test/OpenMP/depobj_codegen.cpp | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp index 1c32a675380c7f..5125044b2aa629 100644 --- a/clang/lib/CodeGen/CGStmtOpenMP.cpp +++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp @@ -5556,12 +5556,14 @@ void CodeGenFunction::EmitOMPDepobjDirective(const OMPDepobjDirective &S) { const auto *DO = S.getSingleClause<OMPDepobjClause>(); LValue DOLVal = EmitLValue(DO->getDepobj()); if (const auto *DC = S.getSingleClause<OMPDependClause>()) { - OMPTaskDataTy::DependData Dependencies(DC->getDependencyKind(), - DC->getModifier()); - Dependencies.DepExprs.append(DC->varlist_begin(), DC->varlist_end()); + // Build list and emit dependences + OMPTaskDataTy Data; + buildDependences(S, Data); + for (auto &Dep : Data.Dependences) { Address DepAddr = CGM.getOpenMPRuntime().emitDepobjDependClause( - *this, Dependencies, DC->getBeginLoc()); + *this, Dep, DC->getBeginLoc()); EmitStoreOfScalar(DepAddr.emitRawPointer(*this), DOLVal); + } return; } if (const auto *DC = S.getSingleClause<OMPDestroyClause>()) { diff --git a/clang/test/OpenMP/depobj_codegen.cpp b/clang/test/OpenMP/depobj_codegen.cpp index 92751ac44b8c78..00cf43f54d6695 100644 --- a/clang/test/OpenMP/depobj_codegen.cpp +++ b/clang/test/OpenMP/depobj_codegen.cpp @@ -36,6 +36,8 @@ int main(int argc, char **argv) { #pragma omp depobj(b) update(mutexinoutset) #pragma omp depobj(a) depend(iterator(char *p = argv[argc]:argv[0]:-1), out: p[0]) (void)tmain(a), tmain(b); + omp_depend_t obj; +#pragma omp depobj(obj) depend(inout: omp_all_memory) return 0; } >From 30eb82552f431604695ac55e584bb2bfcf6a927d Mon Sep 17 00:00:00 2001 From: Chandra Ghale <gh...@pe31.hpc.amslabs.hpecorp.net> Date: Mon, 4 Nov 2024 02:13:38 -0600 Subject: [PATCH 2/2] clang-format fix --- clang/lib/CodeGen/CGStmtOpenMP.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp index 5125044b2aa629..390516fea38498 100644 --- a/clang/lib/CodeGen/CGStmtOpenMP.cpp +++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp @@ -5560,9 +5560,9 @@ void CodeGenFunction::EmitOMPDepobjDirective(const OMPDepobjDirective &S) { OMPTaskDataTy Data; buildDependences(S, Data); for (auto &Dep : Data.Dependences) { - Address DepAddr = CGM.getOpenMPRuntime().emitDepobjDependClause( - *this, Dep, DC->getBeginLoc()); - EmitStoreOfScalar(DepAddr.emitRawPointer(*this), DOLVal); + Address DepAddr = CGM.getOpenMPRuntime().emitDepobjDependClause( + *this, Dep, DC->getBeginLoc()); + EmitStoreOfScalar(DepAddr.emitRawPointer(*this), DOLVal); } return; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits