ABataev added inline comments.
================ Comment at: clang/lib/CodeGen/CGOpenMPRuntime.cpp:7709-7712 isa<MemberExpr>(Next->getAssociatedExpression()) || isa<ArraySubscriptExpr>(Next->getAssociatedExpression()) || - isa<OMPArraySectionExpr>(Next->getAssociatedExpression())) && + isa<OMPArraySectionExpr>(Next->getAssociatedExpression()) || + isa<UnaryOperator>(Next->getAssociatedExpression())) && ---------------- This assertion must check that the expression is just an lvalue, no? ================ Comment at: clang/lib/Sema/SemaOpenMP.cpp:15442-15443 + CurComponents.emplace_back(CurE, nullptr); + } else if (auto *CurE = dyn_cast<BinaryOperator>(E)) { + E = CurE->getLHS()->IgnoreParenImpCasts(); } else { ---------------- Why just the LHS is analyzed? Also, what about support for other expressions, like casting, call, choose etc., which may result in lvalue? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72811/new/ https://reviews.llvm.org/D72811 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits