[OPENMP] Fix handling of implicit mapping of array sections.
llvm-svn: 314220
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index 735e827..4d04f5a 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -1972,9 +1972,8 @@
OMPClauseMappableExprCommon::MappableExprComponentListRef
StackComponents,
OpenMPClauseKind) {
- if (CurComponents.size() < StackComponents.size())
- return false;
auto CCI = CurComponents.rbegin();
+ auto CCE = CurComponents.rend();
for (const auto &SC : llvm::reverse(StackComponents)) {
// Do both expressions have the same kind?
if (CCI->getAssociatedExpression()->getStmtClass() !=
@@ -1992,6 +1991,8 @@
if (SCD != CCD)
return false;
std::advance(CCI, 1);
+ if (CCI == CCE)
+ break;
}
return true;
})) {