[clang] [llvm] [Clang][OpenMP] This is addition fix for #92210. (PR #94802)
Alexey Bataev via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 3 12:41:09 PDT 2024
================
@@ -8025,6 +8025,19 @@ class MappableExprsHandler {
MapCombinedInfoTy StructBaseCurInfo;
const Decl *D = Data.first;
const ValueDecl *VD = cast_or_null<ValueDecl>(D);
+ bool HasMapBasePtr = false;
+ bool HasMapArraySec = false;
+ for (const auto &M : Data.second) {
+ for (const MapInfo &L : M) {
+ const Expr *E = L.VarRef;
+ if (VD && VD->getType()->isAnyPointerType() &&
+ isa_and_present<DeclRefExpr>(E))
+ HasMapBasePtr = true;
+ if (VD && VD->getType()->isAnyPointerType() &&
+ isa_and_present<ArraySectionExpr, ArraySubscriptExpr>(E))
+ HasMapArraySec = true;
+ }
----------------
alexey-bataev wrote:
```suggestion
HasMapBasePtr = any_of(M, [](const MapInfo &L) { return isa_and_present<DeclRefExpr>(L.VarRef); });
HasMapArraySec = any_of(M, [](const MapInfo &L) { return isa_and_present<ArraySectionExpr, ArraySubscriptExpr>(L.VarRef); });
if (HasMapBasePtr && HasMapArraySec)
break;
```
https://github.com/llvm/llvm-project/pull/94802
More information about the cfe-commits
mailing list