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() !=
if (SCD != CCD)
return false;
std::advance(CCI, 1);
+ if (CCI == CCE)
+ break;
}
return true;
})) {
#pragma omp target map(s.p->p->p->a)
// expected-error@+1 {{variable already marked as mapped in current construct}}
{ s.a++; }
+#pragma omp target map(s.s.s.b[:2])
+ { s.s.s.b[0]++; }
return tmain<int, 3>(argc)+tmain<from, 4>(argc); // expected-note {{in instantiation of function template specialization 'tmain<int, 3>' requested here}} expected-note {{in instantiation of function template specialization 'tmain<int, 4>' requested here}}
}