Lines Matching defs:RefExpr

82     const Expr *RefExpr = nullptr;
88 const Expr *RefExpr, DeclRefExpr *PrivateCopy,
91 : DKind(DKind), CKind(CKind), Modifier(Modifier), RefExpr(RefExpr),
114 llvm::PointerIntPair<const Expr *, 1, bool> RefExpr;
144 void set(const Expr *RefExpr, SourceRange RR) {
146 ReductionOp = RefExpr;
1341 DVar.RefExpr = Data.RefExpr.getPointer();
1412 DVar.RefExpr = nullptr;
1521 Data.RefExpr.setPointer(E);
1532 Data.RefExpr.setInt(/*IntVal=*/true);
1538 Data.RefExpr.setPointerAndInt(E, IsLastprivate);
1545 Data.RefExpr.setPointerAndInt(PrivateCopy, IsLastprivate);
1654 return DSAVarData(I->Directive, OMPC_reduction, Data.RefExpr.getPointer(),
1681 return DSAVarData(I->Directive, OMPC_reduction, Data.RefExpr.getPointer(),
1761 DVar.RefExpr = TI->getSecond().RefExpr.getPointer();
1767 DVar.RefExpr = buildDeclRefExpr(
1771 addDSA(D, DVar.RefExpr, OMPC_threadprivate);
1783 DVar.RefExpr = buildDeclRefExpr(
1786 addDSA(D, DVar.RefExpr, OMPC_threadprivate);
1800 DVar.RefExpr =
1811 DVar.RefExpr = DSAIter->getSecond().RefExpr.getPointer();
1819 DVar.RefExpr =
1850 DVar.RefExpr = Data.RefExpr.getPointer();
1882 if (DVarTemp.CKind != OMPC_unknown && DVarTemp.RefExpr)
1901 DVar.RefExpr = Data.RefExpr.getPointer();
1991 if (I != StackElem.SharingMap.end() && I->getSecond().RefExpr.getPointer() &&
1993 (!NotLastprivate || !I->getSecond().RefExpr.getInt()))
2381 if (DVarTop.CKind != OMPC_unknown && DVarTop.RefExpr)
2576 !DSAStack->isLoopControlVariable(D, Level).first && !DVar.RefExpr) {
2805 getPrivateItem(Sema &S, Expr *&RefExpr, SourceLocation &ELoc,
2933 for (Expr *RefExpr : Clause->varlists()) {
2934 assert(RefExpr && "NULL expr in OpenMP nontemporal clause.");
2937 Expr *SimpleRefExpr = RefExpr;
2941 PrivateRefs.push_back(RefExpr);
2970 if (DVar.RefExpr ||
2990 if (DVar.RefExpr)
3260 for (Expr *RefExpr : VarList) {
3261 auto *DE = cast<DeclRefExpr>(RefExpr);
3322 Vars.push_back(RefExpr);
3365 Sema &S, DSAStackTy *Stack, Expr *RefExpr, VarDecl *VD,
3396 Allocator ? Allocator->getExprLoc() : RefExpr->getExprLoc();
3398 Allocator ? Allocator->getSourceRange() : RefExpr->getSourceRange();
3464 for (Expr *RefExpr : VarList) {
3465 auto *DE = cast<DeclRefExpr>(RefExpr);
3477 if (checkPreviousOMPAllocateAttribute(SemaRef, DSAStack, RefExpr, VD,
3499 Vars.push_back(RefExpr);
3629 if (DVar.RefExpr) {
3630 SemaRef.Diag(DVar.RefExpr->getExprLoc(), diag::note_omp_explicit_dsa)
3792 !Stack->getTopDSA(VD, /*FromParent=*/false).RefExpr &&
3816 if (DVar.RefExpr || !ImplicitDeclarations.insert(VD).second)
3972 !DVar.RefExpr)) &&
4002 if (DVar.RefExpr || !ImplicitDeclarations.insert(FD).second)
5148 static std::pair<ValueDecl *, bool> getPrivateItem(Sema &S, Expr *&RefExpr,
5153 if (RefExpr->isTypeDependent() || RefExpr->isValueDependent() ||
5154 RefExpr->containsUnexpandedParameterPack())
5162 RefExpr = RefExpr->IgnoreParens();
5169 if (auto *ASE = dyn_cast_or_null<ArraySubscriptExpr>(RefExpr)) {
5173 RefExpr = Base;
5175 } else if (auto *OASE = dyn_cast_or_null<ArraySectionExpr>(RefExpr)) {
5181 RefExpr = Base;
5185 ELoc = RefExpr->getExprLoc();
5186 ERange = RefExpr->getSourceRange();
5187 RefExpr = RefExpr->IgnoreParenImpCasts();
5188 auto *DE = dyn_cast_or_null<DeclRefExpr>(RefExpr);
5189 auto *ME = dyn_cast_or_null<MemberExpr>(RefExpr);
8988 if (!isOpenMPPrivate(Data.CKind) || !Data.RefExpr)
9109 DVar.CKind != PredeterminedCKind && DVar.RefExpr &&
9117 (DVar.CKind != OMPC_private || DVar.RefExpr)) {
9121 if (DVar.RefExpr == nullptr)
10567 for (Expr *RefExpr : LPC->varlists()) {
10570 Expr *SimpleRefExpr = RefExpr;
16687 Expr *RefExpr = InteropVarExpr;
16689 getPrivateItem(SemaRef, RefExpr, ELoc, ERange,
17106 for (Expr *RefExpr : VarList) {
17107 assert(RefExpr && "NULL expr in OpenMP private clause.");
17110 Expr *SimpleRefExpr = RefExpr;
17114 Vars.push_back(RefExpr);
17219 SemaRef, VDPrivate, RefExpr->getType().getUnqualifiedType(), ELoc);
17227 RefExpr->getExprLoc());
17232 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_private, Ref);
17234 ? RefExpr->IgnoreParens()
17258 for (Expr *RefExpr : VarList) {
17259 assert(RefExpr && "NULL expr in OpenMP firstprivate clause.");
17262 Expr *SimpleRefExpr = RefExpr;
17266 Vars.push_back(RefExpr);
17311 DVar.RefExpr) {
17330 if (!(IsConstant || (VD && VD->isStaticDataMember())) && !DVar.RefExpr &&
17463 buildVarDecl(SemaRef, RefExpr->getExprLoc(), ElemType, D->getName());
17467 VarDecl *VDInitTemp = buildVarDecl(SemaRef, RefExpr->getExprLoc(),
17482 VarDecl *VDInit = buildVarDecl(SemaRef, RefExpr->getExprLoc(), Type,
17484 VDInitRefExpr = buildDeclRefExpr(SemaRef, VDInit, RefExpr->getType(),
17485 RefExpr->getExprLoc());
17492 Diag(RefExpr->getExprLoc(),
17499 SemaRef, VDPrivate, RefExpr->getType().getUnqualifiedType(),
17500 RefExpr->getExprLoc());
17511 RefExpr->getExprLoc());
17519 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_firstprivate, Ref);
17521 ? RefExpr->IgnoreParens()
17554 for (Expr *RefExpr : VarList) {
17555 assert(RefExpr && "NULL expr in OpenMP lastprivate clause.");
17558 Expr *SimpleRefExpr = RefExpr;
17562 Vars.push_back(RefExpr);
17619 (DVar.CKind != OMPC_private || DVar.RefExpr != nullptr)) {
17700 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_lastprivate, Ref);
17702 ? RefExpr->IgnoreParens()
17724 for (Expr *RefExpr : VarList) {
17725 assert(RefExpr && "NULL expr in OpenMP lastprivate clause.");
17728 Expr *SimpleRefExpr = RefExpr;
17732 Vars.push_back(RefExpr);
17748 DVar.RefExpr) {
17759 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_shared, Ref);
17761 ? RefExpr->IgnoreParens()
17780 if (DVar.CKind == OMPC_shared && !DVar.RefExpr)
18323 for (Expr *RefExpr : VarList) {
18324 assert(RefExpr && "nullptr expr in OpenMP reduction clause.");
18337 Expr *SimpleRefExpr = RefExpr;
18354 RD.push(RefExpr, ReductionOp);
18362 auto *ASE = dyn_cast<ArraySubscriptExpr>(RefExpr->IgnoreParens());
18363 auto *OASE = dyn_cast<ArraySectionExpr>(RefExpr->IgnoreParens());
18425 if (DVar.RefExpr)
18426 S.Diag(DVar.RefExpr->getExprLoc(), diag::note_omp_referenced);
18477 RD.push(RefExpr, DeclareReductionRef.get());
18868 << ReductionIdRange << RefExpr->getSourceRange();
18872 << (IsParentBOK ? ParentBOKDSA.RefExpr
18873 : ParentReductionOpDSA.RefExpr)
18882 Expr *VarsExpr = RefExpr->IgnoreParens();
18887 RebuildToCapture.TransformExpr(RefExpr->IgnoreParens()).get();
18905 S.Diag(RefExpr->getExprLoc(),
18907 << RefExpr->getSourceRange();
18922 Stack->addDSA(D, RefExpr->IgnoreParens(), OMPC_reduction, Ref, Modifier,
19099 for (Expr *RefExpr : VarList) {
19100 assert(RefExpr && "NULL expr in OpenMP linear clause.");
19103 Expr *SimpleRefExpr = RefExpr;
19107 Vars.push_back(RefExpr);
19123 if (DVar.RefExpr) {
19171 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_linear, Ref);
19173 ? RefExpr->IgnoreParens()
19243 for (Expr *RefExpr : Clause.varlists()) {
19246 Expr *SimpleRefExpr = RefExpr;
19285 SemaRef, S, RefExpr->getExprLoc(), *CurPrivate, InitExpr, IV, Step,
19296 S, RefExpr->getExprLoc(), BO_Assign, CapturedRef,
19331 for (Expr *RefExpr : VarList) {
19332 assert(RefExpr && "NULL expr in OpenMP linear clause.");
19335 Expr *SimpleRefExpr = RefExpr;
19339 Vars.push_back(RefExpr);
19379 (VD || !Ref) ? RefExpr->IgnoreParens() : Ref)
19410 for (Expr *RefExpr : VarList) {
19411 assert(RefExpr && "NULL expr in OpenMP copyin clause.");
19412 if (isa<DependentScopeDeclRefExpr>(RefExpr)) {
19414 Vars.push_back(RefExpr);
19421 SourceLocation ELoc = RefExpr->getExprLoc();
19426 auto *DE = dyn_cast<DeclRefExpr>(RefExpr);
19429 << 0 << RefExpr->getSourceRange();
19506 for (Expr *RefExpr : VarList) {
19507 assert(RefExpr && "NULL expr in OpenMP linear clause.");
19510 Expr *SimpleRefExpr = RefExpr;
19514 Vars.push_back(RefExpr);
19533 DVar.RefExpr) {
19577 buildVarDecl(SemaRef, RefExpr->getBeginLoc(), Type, ".copyprivate.src",
19581 buildVarDecl(SemaRef, RefExpr->getBeginLoc(), Type, ".copyprivate.dst",
19597 VD ? RefExpr->IgnoreParens()
19697 for (Expr *RefExpr : VarList) {
19698 assert(RefExpr && "NULL expr in OpenMP doacross clause.");
19699 if (isa<DependentScopeDeclRefExpr>(RefExpr)) {
19701 Vars.push_back(RefExpr);
19705 SourceLocation ELoc = RefExpr->getExprLoc();
19706 Expr *SimpleExpr = RefExpr->IgnoreParenCasts();
19724 Vars.push_back(RefExpr);
19756 Vars.push_back(RefExpr);
19788 Vars.push_back(RefExpr->IgnoreParenImpCasts());
19863 for (Expr *RefExpr : VarList) {
19864 assert(RefExpr && "NULL expr in OpenMP shared clause.");
19865 if (isa<DependentScopeDeclRefExpr>(RefExpr)) {
19867 Vars.push_back(RefExpr);
19871 SourceLocation ELoc = RefExpr->getExprLoc();
19872 Expr *SimpleExpr = RefExpr->IgnoreParenCasts();
19882 if (!RefExpr->isValueDependent() && !RefExpr->isTypeDependent() &&
19883 !RefExpr->isInstantiationDependent() &&
19884 !RefExpr->containsUnexpandedParameterPack() &&
19887 DSAStack->getOMPDependT(), RefExpr->getType()))) {
19889 << 0 << RefExpr->getType() << RefExpr->getSourceRange();
19892 if (!RefExpr->isLValue()) {
19894 << 1 << RefExpr->getType() << RefExpr->getSourceRange();
19901 QualType ExprTy = RefExpr->getType().getNonReferenceType();
19931 if (!RefExpr->isValueDependent() && !RefExpr->isTypeDependent() &&
19932 !RefExpr->isInstantiationDependent() &&
19933 !RefExpr->containsUnexpandedParameterPack() &&
19934 (!RefExpr->IgnoreParenImpCasts()->isLValue() ||
19940 << RefExpr->getSourceRange();
19954 << RefExpr->getSourceRange();
19962 RefExpr->IgnoreParenImpCasts());
19969 << RefExpr->getSourceRange();
19974 Vars.push_back(RefExpr->IgnoreParenImpCasts());
21918 DVar.RefExpr) {
22458 for (Expr *RefExpr : VarList) {
22459 assert(RefExpr && "NULL expr in OpenMP use_device_ptr clause.");
22462 Expr *SimpleRefExpr = RefExpr;
22466 MVLI.ProcessedVarList.push_back(RefExpr);
22482 << 0 << RefExpr->getSourceRange();
22496 SemaRef, VDPrivate, RefExpr->getType().getUnqualifiedType(), ELoc);
22500 buildVarDecl(SemaRef, RefExpr->getExprLoc(), Type, ".devptr.temp");
22502 SemaRef, VDInit, RefExpr->getType(), RefExpr->getExprLoc());
22512 MVLI.ProcessedVarList.push_back(VD ? RefExpr->IgnoreParens() : Ref);
22519 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_firstprivate, Ref);
22542 for (Expr *RefExpr : VarList) {
22543 assert(RefExpr && "NULL expr in OpenMP use_device_addr clause.");
22546 Expr *SimpleRefExpr = RefExpr;
22551 MVLI.ProcessedVarList.push_back(RefExpr);
22563 MVLI.ProcessedVarList.push_back(VD ? RefExpr->IgnoreParens() : Ref);
22568 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_firstprivate, Ref);
22575 if (VD && (isa<ArraySectionExpr>(RefExpr->IgnoreParenImpCasts()) ||
22576 isa<ArraySubscriptExpr>(RefExpr->IgnoreParenImpCasts())))
22595 for (Expr *RefExpr : VarList) {
22596 assert(RefExpr && "NULL expr in OpenMP is_device_ptr clause.");
22599 Expr *SimpleRefExpr = RefExpr;
22603 MVLI.ProcessedVarList.push_back(RefExpr);
22614 << 0 << RefExpr->getSourceRange();
22639 Diag(ELoc, diag::err_omp_map_shared_storage) << RefExpr->getSourceRange();
22679 for (Expr *RefExpr : VarList) {
22680 assert(RefExpr && "NULL expr in OpenMP has_device_addr clause.");
22683 Expr *SimpleRefExpr = RefExpr;
22688 MVLI.ProcessedVarList.push_back(RefExpr);
22715 Diag(ELoc, diag::err_omp_map_shared_storage) << RefExpr->getSourceRange();
22725 if (VD && (isa<ArraySectionExpr>(RefExpr->IgnoreParenImpCasts()) ||
22726 isa<ArraySubscriptExpr>(RefExpr->IgnoreParenImpCasts())))
22741 MVLI.ProcessedVarList.push_back(RefExpr->IgnoreParens());
22794 for (Expr *RefExpr : VarList) {
22795 assert(RefExpr && "NULL expr in OpenMP private clause.");
22798 Expr *SimpleRefExpr = RefExpr;
22802 Vars.push_back(RefExpr);
22813 ? RefExpr->IgnoreParens()
22831 for (Expr *RefExpr : VarList) {
22832 assert(RefExpr && "NULL expr in OpenMP nontemporal clause.");
22835 Expr *SimpleRefExpr = RefExpr;
22839 Vars.push_back(RefExpr);
22855 Vars.push_back(RefExpr);
22883 for (Expr *RefExpr : VarList) {
22884 assert(RefExpr && "NULL expr in OpenMP nontemporal clause.");
22887 Expr *SimpleRefExpr = RefExpr;
22892 Vars.push_back(RefExpr);
22905 << RefExpr->getSourceRange();
22909 Vars.push_back(RefExpr);
22924 for (Expr *RefExpr : VarList) {
22925 assert(RefExpr && "NULL expr in OpenMP nontemporal clause.");
22928 Expr *SimpleRefExpr = RefExpr;
22933 Vars.push_back(RefExpr);
22949 << RefExpr->getSourceRange();
22953 Vars.push_back(RefExpr);
23117 for (Expr *RefExpr : Locators) {
23118 assert(RefExpr && "NULL expr in OpenMP shared clause.");
23119 if (isa<DependentScopeDeclRefExpr>(RefExpr) || RefExpr->isTypeDependent()) {
23121 Vars.push_back(RefExpr);
23125 SourceLocation ELoc = RefExpr->getExprLoc();
23126 Expr *SimpleExpr = RefExpr->IgnoreParenImpCasts();
23130 << 1 << 0 << RefExpr->getSourceRange();
23142 << 1 << 0 << RefExpr->getSourceRange();