Lines Matching refs:VD

214       VarDecl *VD = nullptr;  member
216 VarDecl *VD) in ImplicitDefaultFDInfoTy()
217 : FD(FD), StackLevel(StackLevel), VD(VD) {} in ImplicitDefaultFDInfoTy()
586 bool isTaskgroupReductionRef(const ValueDecl *VD, unsigned Level) const { in isTaskgroupReductionRef() argument
589 ->getDecl() == VD; in isTaskgroupReductionRef()
1013 const ValueDecl *VD, bool CurrentRegionOnly, in checkMappableExprComponentListsForDecl() argument
1032 auto MI = SI->MappedExprComponents.find(VD); in checkMappableExprComponentListsForDecl()
1045 const ValueDecl *VD, unsigned Level, in checkMappableExprComponentListsForDeclAtLevel() argument
1054 auto MI = StackElem.MappedExprComponents.find(VD); in checkMappableExprComponentListsForDeclAtLevel()
1066 const ValueDecl *VD, in addMappableExpressionComponents() argument
1069 MappedExprComponentTy &MEC = getTopOfStack().MappedExprComponents[VD]; in addMappableExpressionComponents()
1180 void addIteratorVarDecl(VarDecl *VD) { in addIteratorVarDecl() argument
1182 StackElem.IteratorVarDecls.push_back(VD->getCanonicalDecl()); in addIteratorVarDecl()
1185 bool isIteratorVarDecl(const VarDecl *VD) const { in isIteratorVarDecl()
1190 return llvm::is_contained(Top->IteratorVarDecls, VD->getCanonicalDecl()); in isIteratorVarDecl()
1207 return IFD.VD; in getImplicitFDCapExprDecl()
1211 bool isImplicitDefaultFirstprivateFD(VarDecl *VD) const { in isImplicitDefaultFirstprivateFD()
1220 if (IFD.VD == VD) in isImplicitDefaultFirstprivateFD()
1225 void addImplicitDefaultFirstprivateFD(const FieldDecl *FD, VarDecl *VD) { in addImplicitDefaultFirstprivateFD() argument
1231 I->ImplicitDefaultFirstprivateFDs.emplace_back(FD, StackLevel, VD); in addImplicitDefaultFirstprivateFD()
1274 const auto *VD = dyn_cast<VarDecl>(D); in getCanonicalDecl() local
1276 if (VD != nullptr) { in getCanonicalDecl()
1277 VD = VD->getCanonicalDecl(); in getCanonicalDecl()
1278 D = VD; in getCanonicalDecl()
1295 auto *VD = dyn_cast<VarDecl>(D); in getDSA() local
1304 if (VD && !VD->isFunctionOrMethodVarDecl() && !isa<ParmVarDecl>(VD)) in getDSA()
1311 if (VD && VD->hasGlobalStorage()) in getDSA()
1325 if (VD && isOpenMPLocal(VD, Iter) && VD->isLocalVarDecl() && in getDSA()
1326 (VD->getStorageClass() == SC_Auto || VD->getStorageClass() == SC_None)) { in getDSA()
1357 if (VD && VD->getStorageDuration() == SD_Static && in getDSA()
1358 VD->getDeclContext()->isFileContext()) { in getDSA()
1369 if (VD && VD->getStorageDuration() == SD_Static && in getDSA()
1370 VD->getDeclContext()->isFileContext()) { in getDSA()
1597 VarDecl *VD = buildVarDecl(SemaRef, SR.getBegin(), in addTaskgroupReductionData() local
1600 buildDeclRefExpr(SemaRef, VD, SemaRef.Context.VoidPtrTy, SR.getBegin()); in addTaskgroupReductionData()
1622 VarDecl *VD = buildVarDecl(SemaRef, SR.getBegin(), in addTaskgroupReductionData() local
1625 buildDeclRefExpr(SemaRef, VD, SemaRef.Context.VoidPtrTy, SR.getBegin()); in addTaskgroupReductionData()
1736 const VarDecl *VD = dyn_cast<VarDecl>(D); in rejectConstNotMutableType() local
1737 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in rejectConstNotMutableType()
1753 auto *VD = dyn_cast<VarDecl>(D); in getTopDSA() local
1761 if (VD && VD->hasAttr<OMPThreadPrivateDeclAttr>()) { in getTopDSA()
1763 SemaRef, VD, D->getType().getNonReferenceType(), in getTopDSA()
1764 VD->getAttr<OMPThreadPrivateDeclAttr>()->getLocation()); in getTopDSA()
1772 if ((VD && VD->getTLSKind() != VarDecl::TLS_None && in getTopDSA()
1773 !(VD->hasAttr<OMPThreadPrivateDeclAttr>() && in getTopDSA()
1776 (VD && VD->getStorageClass() == SC_Register && in getTopDSA()
1777 VD->hasAttr<AsmLabelAttr>() && !VD->isLocalVarDecl())) { in getTopDSA()
1779 SemaRef, VD, D->getType().getNonReferenceType(), D->getLocation()); in getTopDSA()
1784 if (SemaRef.getLangOpts().OpenMPCUDAMode && VD && in getTopDSA()
1785 VD->isLocalVarDeclOrParm() && !isStackEmpty() && in getTopDSA()
1794 if (isOpenMPLocal(VD, Iter)) { in getTopDSA()
1796 buildDeclRefExpr(SemaRef, VD, D->getType().getNonReferenceType(), in getTopDSA()
1815 buildDeclRefExpr(SemaRef, VD, D->getType().getNonReferenceType(), in getTopDSA()
1835 if (VD && VD->isStaticDataMember()) { in getTopDSA()
2114 getVariableCategoryFromDecl(const LangOptions &LO, const ValueDecl *VD) { in getVariableCategoryFromDecl() argument
2116 if (VD->getType().getNonReferenceType()->isScalarType()) in getVariableCategoryFromDecl()
2120 if (VD->getType().getNonReferenceType()->isAnyPointerType()) in getVariableCategoryFromDecl()
2122 if (VD->getType().getNonReferenceType()->isScalarType()) in getVariableCategoryFromDecl()
2355 auto *VD = dyn_cast<VarDecl>(D); in isOpenMPCapturedDecl() local
2357 if (VD && VD->isConstexpr()) in isOpenMPCapturedDecl()
2370 if (VD && !VD->hasLocalStorage() && in isOpenMPCapturedDecl()
2376 return VD; in isOpenMPCapturedDecl()
2380 if (OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(VD)) in isOpenMPCapturedDecl()
2399 return VD; in isOpenMPCapturedDecl()
2405 !OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(VD)) in isOpenMPCapturedDecl()
2406 checkDeclIsAllowedInOpenMPTarget(nullptr, VD); in isOpenMPCapturedDecl()
2432 (VD && VD->hasLocalStorage() && in isOpenMPCapturedDecl()
2434 (VD && DSAStack->isForceVarCapturing())) in isOpenMPCapturedDecl()
2435 return VD ? VD : Info.second; in isOpenMPCapturedDecl()
2439 (!VD || VD->hasLocalStorage() || !DVarTop.AppliedToPointee)) in isOpenMPCapturedDecl()
2440 return VD ? VD : cast<VarDecl>(DVarTop.PrivateCopy->getDecl()); in isOpenMPCapturedDecl()
2454 if (VD && !VD->hasLocalStorage() && DVarPrivate.CKind == OMPC_unknown && in isOpenMPCapturedDecl()
2461 if (DVarPrivate.CKind != OMPC_unknown && !VD && FD && in isOpenMPCapturedDecl()
2476 VarDecl *VD = DSAStack->getImplicitFDCapExprDecl(FD); in isOpenMPCapturedDecl() local
2477 if (VD) in isOpenMPCapturedDecl()
2478 return VD; in isOpenMPCapturedDecl()
2495 VD = cast<VarDecl>(VDPrivateRefExpr->getDecl()); in isOpenMPCapturedDecl()
2496 DSAStack->addImplicitDefaultFirstprivateFD(FD, VD); in isOpenMPCapturedDecl()
2497 return VD; in isOpenMPCapturedDecl()
2500 (VD && (DSAStack->getDefaultDSA() == DSA_none || in isOpenMPCapturedDecl()
2503 return VD ? VD : cast<VarDecl>(DVarPrivate.PrivateCopy->getDecl()); in isOpenMPCapturedDecl()
2588 if (const auto *VD = dyn_cast<VarDecl>(D)) { in isOpenMPPrivateDecl() local
2589 if (DSAStack->isThreadPrivate(const_cast<VarDecl *>(VD)) && in isOpenMPPrivateDecl()
2668 const auto *VD = dyn_cast<VarDecl>(D); in isOpenMPTargetCapturedDecl() local
2669 return VD && !VD->hasLocalStorage() && in isOpenMPTargetCapturedDecl()
2680 if (const auto *VD = dyn_cast<VarDecl>(D)) { in isOpenMPGlobalCapturedDecl() local
2681 if (!VD->hasLocalStorage()) { in isOpenMPGlobalCapturedDecl()
2890 auto *VD = cast<VarDecl>(DRE->getDecl()); in EndOpenMPDSABlock() local
2891 QualType Type = VD->getType().getNonReferenceType(); in EndOpenMPDSABlock()
2893 DSAStack->getTopDSA(VD, /*FromParent=*/false); in EndOpenMPDSABlock()
2902 VD->getName(), VD->hasAttrs() ? &VD->getAttrs() : nullptr, DRE); in EndOpenMPDSABlock()
2949 ValueDecl *VD = DRE->getDecl(); in EndOpenMPDSABlock() local
2950 if (!VD || !isa<VarDecl>(VD)) in EndOpenMPDSABlock()
2953 DSAStack->getTopDSA(VD, /*FromParent=*/false); in EndOpenMPDSABlock()
2961 VD, /*CurrentRegionOnly=*/true, in EndOpenMPDSABlock()
2962 [VD, &MapExpr]( in EndOpenMPDSABlock()
2970 VD->getCanonicalDecl()) { in EndOpenMPDSABlock()
2980 reportOriginalDsa(*this, DSAStack, VD, DVar); in EndOpenMPDSABlock()
3014 if (const auto *VD = dyn_cast_or_null<VarDecl>(ND)) { in ValidateCandidate() local
3015 return VD->hasGlobalStorage() && in ValidateCandidate()
3060 VarDecl *VD; in ActOnOpenMPIdExpression() local
3071 VD = Corrected.getCorrectionDeclAs<VarDecl>(); in ActOnOpenMPIdExpression()
3078 } else if (!(VD = Lookup.getAsSingle<VarDecl>())) { in ActOnOpenMPIdExpression()
3087 if (Kind == OMPD_threadprivate && !VD->hasGlobalStorage()) { in ActOnOpenMPIdExpression()
3089 << getOpenMPDirectiveName(Kind) << !VD->isStaticLocal(); in ActOnOpenMPIdExpression()
3091 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in ActOnOpenMPIdExpression()
3092 Diag(VD->getLocation(), in ActOnOpenMPIdExpression()
3094 << VD; in ActOnOpenMPIdExpression()
3098 VarDecl *CanonicalVD = VD->getCanonicalDecl(); in ActOnOpenMPIdExpression()
3106 << getOpenMPDirectiveName(Kind) << VD; in ActOnOpenMPIdExpression()
3108 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in ActOnOpenMPIdExpression()
3109 Diag(VD->getLocation(), in ActOnOpenMPIdExpression()
3111 << VD; in ActOnOpenMPIdExpression()
3121 << getOpenMPDirectiveName(Kind) << VD; in ActOnOpenMPIdExpression()
3123 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in ActOnOpenMPIdExpression()
3124 Diag(VD->getLocation(), in ActOnOpenMPIdExpression()
3126 << VD; in ActOnOpenMPIdExpression()
3137 << getOpenMPDirectiveName(Kind) << VD; in ActOnOpenMPIdExpression()
3139 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in ActOnOpenMPIdExpression()
3140 Diag(VD->getLocation(), in ActOnOpenMPIdExpression()
3142 << VD; in ActOnOpenMPIdExpression()
3151 << getOpenMPDirectiveName(Kind) << VD; in ActOnOpenMPIdExpression()
3153 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in ActOnOpenMPIdExpression()
3154 Diag(VD->getLocation(), in ActOnOpenMPIdExpression()
3156 << VD; in ActOnOpenMPIdExpression()
3163 if (Kind == OMPD_threadprivate && VD->isUsed() && in ActOnOpenMPIdExpression()
3164 !DSAStack->isThreadPrivate(VD)) { in ActOnOpenMPIdExpression()
3166 << getOpenMPDirectiveName(Kind) << VD; in ActOnOpenMPIdExpression()
3170 QualType ExprType = VD->getType().getNonReferenceType(); in ActOnOpenMPIdExpression()
3172 SourceLocation(), VD, in ActOnOpenMPIdExpression()
3194 if (const auto *VD = dyn_cast<VarDecl>(E->getDecl())) { in VisitDeclRefExpr() local
3195 if (VD->hasLocalStorage()) { in VisitDeclRefExpr()
3199 SemaRef.Diag(VD->getLocation(), diag::note_defined_here) in VisitDeclRefExpr()
3200 << VD << VD->getSourceRange(); in VisitDeclRefExpr()
3222 auto *VD = cast<VarDecl>(DE->getDecl()); in CheckOMPThreadPrivateDecl() local
3226 VD->setReferenced(); in CheckOMPThreadPrivateDecl()
3227 VD->markUsed(Context); in CheckOMPThreadPrivateDecl()
3229 QualType QType = VD->getType(); in CheckOMPThreadPrivateDecl()
3238 if (RequireCompleteType(ILoc, VD->getType(), in CheckOMPThreadPrivateDecl()
3245 if (VD->getType()->isReferenceType()) { in CheckOMPThreadPrivateDecl()
3247 << getOpenMPDirectiveName(OMPD_threadprivate) << VD->getType(); in CheckOMPThreadPrivateDecl()
3249 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in CheckOMPThreadPrivateDecl()
3250 Diag(VD->getLocation(), in CheckOMPThreadPrivateDecl()
3252 << VD; in CheckOMPThreadPrivateDecl()
3258 if ((VD->getTLSKind() != VarDecl::TLS_None && in CheckOMPThreadPrivateDecl()
3259 !(VD->hasAttr<OMPThreadPrivateDeclAttr>() && in CheckOMPThreadPrivateDecl()
3262 (VD->getStorageClass() == SC_Register && VD->hasAttr<AsmLabelAttr>() && in CheckOMPThreadPrivateDecl()
3263 !VD->isLocalVarDecl())) { in CheckOMPThreadPrivateDecl()
3265 << VD << ((VD->getTLSKind() != VarDecl::TLS_None) ? 0 : 1); in CheckOMPThreadPrivateDecl()
3267 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in CheckOMPThreadPrivateDecl()
3268 Diag(VD->getLocation(), in CheckOMPThreadPrivateDecl()
3270 << VD; in CheckOMPThreadPrivateDecl()
3276 if (const Expr *Init = VD->getAnyInitializer()) { in CheckOMPThreadPrivateDecl()
3283 DSAStack->addDSA(VD, DE, OMPC_threadprivate); in CheckOMPThreadPrivateDecl()
3284 VD->addAttr(OMPThreadPrivateDeclAttr::CreateImplicit( in CheckOMPThreadPrivateDecl()
3287 ML->DeclarationMarkedOpenMPThreadPrivate(VD); in CheckOMPThreadPrivateDecl()
3325 Sema &S, DSAStackTy *Stack, Expr *RefExpr, VarDecl *VD, in checkPreviousOMPAllocateAttribute() argument
3327 if (!VD->hasAttr<OMPAllocateDeclAttr>()) in checkPreviousOMPAllocateAttribute()
3329 const auto *A = VD->getAttr<OMPAllocateDeclAttr>(); in checkPreviousOMPAllocateAttribute()
3375 applyOMPAllocateAttribute(Sema &S, VarDecl *VD, in applyOMPAllocateAttribute() argument
3378 if (VD->hasAttr<OMPAllocateDeclAttr>()) in applyOMPAllocateAttribute()
3393 VD->addAttr(A); in applyOMPAllocateAttribute()
3395 ML->DeclarationMarkedOpenMPAllocate(VD, A); in applyOMPAllocateAttribute()
3427 auto *VD = cast<VarDecl>(DE->getDecl()); in ActOnOpenMPAllocateDirective() local
3430 if (VD->getTLSKind() != VarDecl::TLS_None || in ActOnOpenMPAllocateDirective()
3431 VD->hasAttr<OMPThreadPrivateDeclAttr>() || in ActOnOpenMPAllocateDirective()
3432 (VD->getStorageClass() == SC_Register && VD->hasAttr<AsmLabelAttr>() && in ActOnOpenMPAllocateDirective()
3433 !VD->isLocalVarDecl())) in ActOnOpenMPAllocateDirective()
3438 if (checkPreviousOMPAllocateAttribute(*this, DSAStack, RefExpr, VD, in ActOnOpenMPAllocateDirective()
3446 if (Allocator && VD->hasGlobalStorage()) { in ActOnOpenMPAllocateDirective()
3451 bool IsDecl = VD->isThisDeclarationADefinition(Context) == in ActOnOpenMPAllocateDirective()
3453 Diag(VD->getLocation(), in ActOnOpenMPAllocateDirective()
3455 << VD; in ActOnOpenMPAllocateDirective()
3461 applyOMPAllocateAttribute(*this, VD, AllocatorKind, Allocator, Alignment, in ActOnOpenMPAllocateDirective()
3607 auto *VD = dyn_cast<VarDecl>(D); in reportOriginalDsa() local
3619 } else if (VD && VD->isStaticLocal()) in reportOriginalDsa()
3621 else if (VD && VD->isStaticDataMember()) in reportOriginalDsa()
3623 else if (VD && VD->isFileVarDecl()) in reportOriginalDsa()
3627 else if (VD && VD->isLocalVarDecl() && DVar.CKind == OMPC_private) { in reportOriginalDsa()
3747 if (auto *VD = dyn_cast<VarDecl>(E->getDecl())) { in VisitDeclRefExpr() local
3749 if (!CS || (isa<OMPCapturedExprDecl>(VD) && !CS->capturesVariable(VD) && in VisitDeclRefExpr()
3750 !Stack->getTopDSA(VD, /*FromParent=*/false).RefExpr && in VisitDeclRefExpr()
3751 !Stack->isImplicitDefaultFirstprivateFD(VD))) { in VisitDeclRefExpr()
3752 if (auto *CED = dyn_cast<OMPCapturedExprDecl>(VD)) in VisitDeclRefExpr()
3757 } else if (VD->isImplicit() || isa<OMPCapturedExprDecl>(VD)) in VisitDeclRefExpr()
3760 if (!Stack->isImplicitDefaultFirstprivateFD(VD)) in VisitDeclRefExpr()
3762 VD = VD->getCanonicalDecl(); in VisitDeclRefExpr()
3764 if (VD->hasLocalStorage() && CS && !CS->capturesVariable(VD) && in VisitDeclRefExpr()
3765 !Stack->isImplicitDefaultFirstprivateFD(VD) && in VisitDeclRefExpr()
3766 !Stack->isImplicitTaskFirstprivate(VD)) in VisitDeclRefExpr()
3769 if (Stack->isUsesAllocatorsDecl(VD)) in VisitDeclRefExpr()
3772 DSAStackTy::DSAVarData DVar = Stack->getTopDSA(VD, /*FromParent=*/false); in VisitDeclRefExpr()
3774 if (DVar.RefExpr || !ImplicitDeclarations.insert(VD).second) in VisitDeclRefExpr()
3779 OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(VD); in VisitDeclRefExpr()
3780 if (VD->hasGlobalStorage() && CS && !CS->capturesVariable(VD) && in VisitDeclRefExpr()
3783 !Stack->isImplicitDefaultFirstprivateFD(VD) && in VisitDeclRefExpr()
3784 !Stack->isImplicitTaskFirstprivate(VD)) in VisitDeclRefExpr()
3798 VarsWithInheritedDSA.count(VD) == 0) { in VisitDeclRefExpr()
3803 Stack->getImplicitDSA(VD, /*FromParent=*/false); in VisitDeclRefExpr()
3807 VarsWithInheritedDSA[VD] = E; in VisitDeclRefExpr()
3821 getVariableCategoryFromDecl(SemaRef.getLangOpts(), VD); in VisitDeclRefExpr()
3826 VarsWithInheritedDSA.count(VD) == 0 && !Res) { in VisitDeclRefExpr()
3831 VD, /*CurrentRegionOnly=*/true, in VisitDeclRefExpr()
3832 [VD](OMPClauseMappableExprCommon::MappableExprComponentListRef in VisitDeclRefExpr()
3837 return MI != ME && MI->getAssociatedDeclaration() == VD; in VisitDeclRefExpr()
3839 VarsWithInheritedDSA[VD] = E; in VisitDeclRefExpr()
3857 !Stack->isLoopControlVariable(VD).first) { in VisitDeclRefExpr()
3859 VD, /*CurrentRegionOnly=*/true, in VisitDeclRefExpr()
3885 VD->getType().getNonReferenceType()->getAsCXXRecordDecl()) in VisitDeclRefExpr()
3907 VD, in VisitDeclRefExpr()
3919 reportOriginalDsa(SemaRef, Stack, VD, DVar); in VisitDeclRefExpr()
3924 DVar = Stack->getImplicitDSA(VD, /*FromParent=*/false); in VisitDeclRefExpr()
3931 !Stack->isLoopControlVariable(VD).first) { in VisitDeclRefExpr()
4038 const auto *VD = cast<ValueDecl>( in VisitMemberExpr() local
4041 VD, /*CurrentRegionOnly=*/true, in VisitMemberExpr()
4136 VarDecl *VD = Cap.getCapturedVar(); in visitSubCaptures() local
4141 VD, /*CurrentRegionOnly=*/true, in visitSubCaptures()
4146 SemaRef, VD, VD->getType().getNonLValueExprType(SemaRef.Context), in visitSubCaptures()
4675 if (VarDecl *VD = S.isOpenMPCapturedDecl(D)) in buildCapture() local
4676 CD = cast<OMPCapturedExprDecl>(VD); in buildCapture()
4756 VarDecl *VD = cast<VarDecl>(LC.getCapturedVar()); in tryCaptureOpenMPLambdas() local
4757 DeclContext *VDC = VD->getDeclContext(); in tryCaptureOpenMPLambdas()
4760 MarkVariableReferenced(LC.getLocation(), VD); in tryCaptureOpenMPLambdas()
5566 ValueDecl *VD = Res.first; in checkAllocateClauses() local
5567 DSAStackTy::DSAVarData Data = Stack->getTopDSA(VD, /*FromParent=*/false); in checkAllocateClauses()
5573 VarDecl *PrivateVD = DeclToCopy[VD]; in checkAllocateClauses()
5659 auto BuildVarRef = [&](VarDecl *VD) { in buildDistanceFunc() argument
5660 return buildDeclRefExpr(Actions, VD, VD->getType(), {}); in buildDistanceFunc()
8219 bool checkDecl(const Expr *E, const ValueDecl *VD) { in checkDecl() argument
8220 if (getCanonicalDecl(VD) == getCanonicalDecl(CurLCDecl)) { in checkDecl()
8225 const auto &&Data = Stack.isLoopControlVariable(VD); in checkDecl()
8229 if (Data.first && VD->getType()->isRecordType()) { in checkDecl()
8232 VD->getNameForDiagnostic(OS, SemaRef.getPrintingPolicy(), in checkDecl()
8237 SemaRef.Diag(VD->getLocation(), diag::note_previous_decl) << VD; in checkDecl()
8246 getCanonicalDecl(VD) != getCanonicalDecl(PrevDepDecl)))) { in checkDecl()
8259 DepDecl = VD; in checkDecl()
8267 const ValueDecl *VD = E->getDecl(); in VisitDeclRefExpr() local
8268 if (isa<VarDecl>(VD)) in VisitDeclRefExpr()
8269 return checkDecl(E, VD); in VisitDeclRefExpr()
8274 const ValueDecl *VD = E->getMemberDecl(); in VisitMemberExpr() local
8275 if (isa<VarDecl>(VD) || isa<FieldDecl>(VD)) in VisitMemberExpr()
8276 return checkDecl(E, VD); in VisitMemberExpr()
8415 if (const auto *VD = dyn_cast<VarDecl>(DRE->getDecl())) in getInitLCDecl() local
8416 return getCanonicalDecl(VD); in getInitLCDecl()
9173 auto *VD = dyn_cast<VarDecl>(LCDecl); in buildCounterVar() local
9174 if (!VD) { in buildCounterVar()
9175 VD = SemaRef.isOpenMPCapturedDecl(LCDecl); in buildCounterVar()
9177 SemaRef, VD, VD->getType().getNonReferenceType(), DefaultLoc); in buildCounterVar()
9259 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPLoopInitialization() local
9261 if (!VD) { in ActOnOpenMPLoopInitialization()
9263 VD = Private; in ActOnOpenMPLoopInitialization()
9267 VD = cast<VarDecl>(PrivateRef->getDecl()); in ActOnOpenMPLoopInitialization()
9270 DSAStack->addLoopControlVariable(D, VD); in ActOnOpenMPLoopInitialization()
10339 auto *VD = cast<VarDecl>(cast<DeclRefExpr>(IS.CounterVar)->getDecl()); in checkOpenMPLoop() local
10341 SemaRef, VD, IS.CounterVar->getType(), IS.CounterVar->getExprLoc(), in checkOpenMPLoop()
13385 return llvm::all_of(TC->all_decls(), [](ValueDecl *VD) { in isClauseMappable() argument
13386 return !VD || !VD->hasAttr<OMPDeclareTargetDeclAttr>() || in isClauseMappable()
13387 (VD->isExternallyVisible() && in isClauseMappable()
13388 VD->getVisibility() != HiddenVisibility); in isClauseMappable()
13391 return llvm::all_of(FC->all_decls(), [](ValueDecl *VD) { in isClauseMappable() argument
13392 return !VD || !VD->hasAttr<OMPDeclareTargetDeclAttr>() || in isClauseMappable()
13393 (VD->isExternallyVisible() && in isClauseMappable()
13394 VD->getVisibility() != HiddenVisibility); in isClauseMappable()
16821 auto *VD = dyn_cast_or_null<ValueDecl>( in findOMPAllocatorHandleT() local
16823 if (!VD) { in findOMPAllocatorHandleT()
16828 VD->getType().getNonLValueExprType(S.getASTContext()); in findOMPAllocatorHandleT()
16829 ExprResult Res = S.BuildDeclRefExpr(VD, AllocatorType, VK_LValue, Loc); in findOMPAllocatorHandleT()
18328 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPPrivateClause() local
18370 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in ActOnOpenMPPrivateClause()
18390 VD, /*CurrentRegionOnly=*/true, in ActOnOpenMPPrivateClause()
18418 VD ? cast<DeclRefExpr>(SimpleRefExpr) : nullptr); in ActOnOpenMPPrivateClause()
18426 if (!VD && !CurContext->isDependentContext()) { in ActOnOpenMPPrivateClause()
18428 VarDecl *VD = FD ? DSAStack->getImplicitFDCapExprDecl(FD) : nullptr; in ActOnOpenMPPrivateClause() local
18429 if (VD) in ActOnOpenMPPrivateClause()
18430 Ref = buildDeclRefExpr(*this, VD, VD->getType().getNonReferenceType(), in ActOnOpenMPPrivateClause()
18437 Vars.push_back((VD || CurContext->isDependentContext()) in ActOnOpenMPPrivateClause()
18480 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPFirstprivateClause() local
18533 if (!(IsConstant || (VD && VD->isStaticDataMember())) && !DVar.RefExpr && in ActOnOpenMPFirstprivateClause()
18620 VD, /*CurrentRegionOnly=*/true, in ActOnOpenMPFirstprivateClause()
18643 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in ActOnOpenMPFirstprivateClause()
18655 VD ? cast<DeclRefExpr>(SimpleRefExpr) : nullptr); in ActOnOpenMPFirstprivateClause()
18705 if (!VD && !CurContext->isDependentContext()) { in ActOnOpenMPFirstprivateClause()
18710 VarDecl *VD = FD ? DSAStack->getImplicitFDCapExprDecl(FD) : nullptr; in ActOnOpenMPFirstprivateClause() local
18711 if (VD) in ActOnOpenMPFirstprivateClause()
18712 Ref = buildDeclRefExpr(*this, VD, VD->getType().getNonReferenceType(), in ActOnOpenMPFirstprivateClause()
18716 if (VD || !isOpenMPCapturedDecl(D)) in ActOnOpenMPFirstprivateClause()
18722 Vars.push_back((VD || CurContext->isDependentContext()) in ActOnOpenMPFirstprivateClause()
18774 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPLastprivateClause() local
18800 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in ActOnOpenMPLastprivateClause()
18879 if (!VD && !CurContext->isDependentContext()) { in ActOnOpenMPLastprivateClause()
18903 Vars.push_back((VD || CurContext->isDependentContext()) in ActOnOpenMPLastprivateClause()
18940 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPSharedClause() local
18958 if (!VD && isOpenMPCapturedDecl(D) && !CurContext->isDependentContext()) in ActOnOpenMPSharedClause()
18961 Vars.push_back((VD || !Ref || CurContext->isDependentContext()) in ActOnOpenMPSharedClause()
18978 if (auto *VD = dyn_cast<VarDecl>(E->getDecl())) { in VisitDeclRefExpr() local
18979 DSAStackTy::DSAVarData DVar = Stack->getTopDSA(VD, /*FromParent=*/false); in VisitDeclRefExpr()
18985 VD, in VisitDeclRefExpr()
19203 if (auto *VD = filterLookupForUDReductionAndMapper<ValueDecl *>( in buildDeclareReductionRef() local
19210 return SemaRef.BuildDeclRefExpr(VD, VD->getType().getNonReferenceType(), in buildDeclareReductionRef()
19213 if (auto *VD = filterLookupForUDReductionAndMapper<ValueDecl *>( in buildDeclareReductionRef() local
19223 if (SemaRef.IsDerivedFrom(Loc, Ty, VD->getType(), Paths)) { in buildDeclareReductionRef()
19225 VD->getType().getUnqualifiedType()))) { in buildDeclareReductionRef()
19227 Loc, VD->getType(), Ty, Paths.front(), in buildDeclareReductionRef()
19231 VD, VD->getType().getNonReferenceType(), VK_LValue, Loc); in buildDeclareReductionRef()
19575 auto *VD = dyn_cast<VarDecl>(D); in actOnOMPReductionKindClause() local
19595 if (VD) { in actOnOMPReductionKindClause()
19596 VarDecl *VDDef = VD->getDefinition(); in actOnOMPReductionKindClause()
19597 if (VD->getType()->isReferenceType() && VDDef && VDDef->hasInit()) { in actOnOMPReductionKindClause()
19706 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in actOnOMPReductionKindClause()
19719 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in actOnOMPReductionKindClause()
19785 VD ? cast<DeclRefExpr>(SimpleRefExpr) : nullptr); in actOnOMPReductionKindClause()
19917 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in actOnOMPReductionKindClause()
20081 if (!VD && !S.CurContext->isDependentContext()) { in actOnOMPReductionKindClause()
20237 const auto *VD = dyn_cast_or_null<VarDecl>(D); in CheckOpenMPLinearDecl() local
20265 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in CheckOpenMPLinearDecl()
20311 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPLinearClause() local
20333 VD ? cast<DeclRefExpr>(SimpleRefExpr) : nullptr); in ActOnOpenMPLinearClause()
20339 if (!VD && !CurContext->isDependentContext()) { in ActOnOpenMPLinearClause()
20358 InitExpr = VD ? VD->getInit() : SimpleRefExpr; in ActOnOpenMPLinearClause()
20360 InitExpr = VD ? SimpleRefExpr : Ref; in ActOnOpenMPLinearClause()
20366 Vars.push_back((VD || CurContext->isDependentContext()) in ActOnOpenMPLinearClause()
20539 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPAlignedClause() local
20549 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in ActOnOpenMPAlignedClause()
20568 if (!VD && isOpenMPCapturedDecl(D)) in ActOnOpenMPAlignedClause()
20571 (VD || !Ref) ? RefExpr->IgnoreParens() : Ref) in ActOnOpenMPAlignedClause()
20626 auto *VD = cast<VarDecl>(D); in ActOnOpenMPCopyinClause() local
20628 QualType Type = VD->getType(); in ActOnOpenMPCopyinClause()
20640 if (!DSAStack->isThreadPrivate(VD)) { in ActOnOpenMPCopyinClause()
20654 ".copyin.src", VD->hasAttrs() ? &VD->getAttrs() : nullptr); in ActOnOpenMPCopyinClause()
20659 VD->hasAttrs() ? &VD->getAttrs() : nullptr); in ActOnOpenMPCopyinClause()
20674 DSAStack->addDSA(VD, DE, OMPC_copyin); in ActOnOpenMPCopyinClause()
20714 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPCopyprivateClause() local
20719 if (!VD || !DSAStack->isThreadPrivate(VD)) { in ActOnOpenMPCopyprivateClause()
20751 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in ActOnOpenMPCopyprivateClause()
20784 assert(VD || isOpenMPCapturedDecl(D)); in ActOnOpenMPCopyprivateClause()
20786 VD ? RefExpr->IgnoreParens() in ActOnOpenMPCopyprivateClause()
20960 const ValueDecl *VD = in ProcessOpenMPDoacrossClauseCommon() local
20962 if (VD) in ProcessOpenMPDoacrossClauseCommon()
20964 << 1 << VD; in ProcessOpenMPDoacrossClauseCommon()
21714 Sema &SemaRef, DSAStackTy *DSAS, const ValueDecl *VD, const Expr *E, in checkMapConflicts() argument
21718 assert(VD && E); in checkMapConflicts()
21727 assert(CurComponents.back().getAssociatedDeclaration() == VD && in checkMapConflicts()
21735 VD, CurrentRegionOnly, in checkMapConflicts()
21736 [&IsEnclosedByDataEnvironmentExpr, &SemaRef, VD, CurrentRegionOnly, ELoc, in checkMapConflicts()
21745 assert(StackComponents.back().getAssociatedDeclaration() == VD && in checkMapConflicts()
21747 (void)VD; in checkMapConflicts()
22031 if (auto *VD = filterLookupForUDReductionAndMapper<ValueDecl *>( in buildUserDefinedMapperRef() local
22038 return SemaRef.BuildDeclRefExpr(VD, Type, VK_LValue, Loc); in buildUserDefinedMapperRef()
22041 if (auto *VD = filterLookupForUDReductionAndMapper<ValueDecl *>( in buildUserDefinedMapperRef() local
22051 if (SemaRef.IsDerivedFrom(Loc, Type, VD->getType(), Paths)) { in buildUserDefinedMapperRef()
22053 VD->getType().getUnqualifiedType()))) { in buildUserDefinedMapperRef()
22055 Loc, VD->getType(), Type, Paths.front(), in buildUserDefinedMapperRef()
22057 return SemaRef.BuildDeclRefExpr(VD, Type, VK_LValue, Loc); in buildUserDefinedMapperRef()
22227 auto *VD = dyn_cast<VarDecl>(CurDeclaration); in checkMappableExpressionList() local
22230 assert((VD || FD) && "Only variables or fields are expected here!"); in checkMappableExpressionList()
22237 if (VD && DSAS->isThreadPrivate(VD)) { in checkMappableExpressionList()
22240 DSAStackTy::DSAVarData DVar = DSAS->getTopDSA(VD, /*FromParent=*/false); in checkMappableExpressionList()
22243 reportOriginalDsa(SemaRef, DSAS, VD, DVar); in checkMappableExpressionList()
22373 if (VD && ((SemaRef.LangOpts.OpenMP <= 45 && in checkMappableExpressionList()
22376 DSAStackTy::DSAVarData DVar = DSAS->getTopDSA(VD, /*FromParent=*/false); in checkMappableExpressionList()
22830 auto *VD = cast<DeclRefExpr>(MapperVarRef)->getDecl(); in ActOnOpenMPDeclareMapperDirective() local
22831 VD->setDeclContext(DMD); in ActOnOpenMPDeclareMapperDirective()
22832 VD->setLexicalDeclContext(DMD); in ActOnOpenMPDeclareMapperDirective()
22833 DMD->addDecl(VD); in ActOnOpenMPDeclareMapperDirective()
22845 auto *VD = VarDecl::Create(Context, Context.getTranslationUnitDecl(), in ActOnOpenMPDeclareMapperDirectiveVarDecl() local
22849 PushOnScopeChains(VD, S, /*AddToContext=*/false); in ActOnOpenMPDeclareMapperDirectiveVarDecl()
22850 Expr *E = buildDeclRefExpr(*this, VD, MapperType, StartLoc); in ActOnOpenMPDeclareMapperDirectiveVarDecl()
22855 void Sema::ActOnOpenMPIteratorVarDecl(VarDecl *VD) { in ActOnOpenMPIteratorVarDecl() argument
22857 DSAStack->addIteratorVarDecl(VD); in ActOnOpenMPIteratorVarDecl()
22860 bool Sema::isOpenMPDeclareMapperVarDeclAllowed(const VarDecl *VD) const { in isOpenMPDeclareMapperVarDeclAllowed()
22864 if (VD->getCanonicalDecl() == DRE->getDecl()->getCanonicalDecl()) in isOpenMPDeclareMapperVarDeclAllowed()
22866 if (VD->isUsableInConstantExpressions(Context)) in isOpenMPDeclareMapperVarDeclAllowed()
22868 if (LangOpts.OpenMP >= 52 && DSAStack->isIteratorVarDecl(VD)) in isOpenMPDeclareMapperVarDeclAllowed()
23067 auto *VD = dyn_cast_or_null<VarDecl>(Ref->getDecl()); in ActOnOpenMPDetachClause() local
23068 if (!VD) { in ActOnOpenMPDetachClause()
23074 VD->getType()) || in ActOnOpenMPDetachClause()
23075 VD->getType().isConstant(Context)) { in ActOnOpenMPDetachClause()
23077 << "omp_event_handle_t" << 1 << VD->getType() in ActOnOpenMPDetachClause()
23084 DSAStackTy::DSAVarData DVar = DSAStack->getTopDSA(VD, /*FromParent=*/false); in ActOnOpenMPDetachClause()
23090 reportOriginalDsa(*this, DSAStack, VD, DVar); in ActOnOpenMPDetachClause()
23335 auto *VD = cast<ValueDecl>(ND); in ActOnOpenMPDeclareTargetName() local
23337 OMPDeclareTargetDeclAttr::getActiveAttr(VD); in ActOnOpenMPDeclareTargetName()
23369 if (auto *VD = dyn_cast<VarDecl>(ND); in ActOnOpenMPDeclareTargetName() local
23370 LangOpts.OpenMP && VD && VD->hasAttr<OMPDeclareTargetDeclAttr>() && in ActOnOpenMPDeclareTargetName()
23371 VD->hasGlobalStorage()) in ActOnOpenMPDeclareTargetName()
23379 auto *VD = cast<VarDecl>(D); in checkDeclInTargetContext() local
23381 OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(VD); in checkDeclInTargetContext()
23385 VD->hasGlobalStorage()) { in checkDeclInTargetContext()
23393 SemaRef.Diag(VD->getLocation(), in checkDeclInTargetContext()
23396 << VD << 0 << SR; in checkDeclInTargetContext()
23402 SemaRef.Diag(VD->getLocation(), diag::warn_omp_not_in_target_context); in checkDeclInTargetContext()
23408 ValueDecl *VD) { in checkValueDeclInTarget() argument
23409 return OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(VD) || in checkValueDeclInTarget()
23410 checkTypeMappable(SL, SR, SemaRef, Stack, VD->getType(), in checkValueDeclInTarget()
23420 if (auto *VD = dyn_cast<VarDecl>(D)) { in checkDeclIsAllowedInOpenMPTarget() local
23422 if (!VD->isFileVarDecl() && !VD->isStaticLocal() && in checkDeclIsAllowedInOpenMPTarget()
23423 !VD->isStaticDataMember()) in checkDeclIsAllowedInOpenMPTarget()
23427 if (DSAStack->isThreadPrivate(VD)) { in checkDeclIsAllowedInOpenMPTarget()
23429 reportOriginalDsa(*this, DSAStack, VD, DSAStack->getTopDSA(VD, false)); in checkDeclIsAllowedInOpenMPTarget()
23444 if (auto *VD = dyn_cast<ValueDecl>(D)) { in checkDeclIsAllowedInOpenMPTarget() local
23447 if ((E || !VD->getType()->isIncompleteType()) && in checkDeclIsAllowedInOpenMPTarget()
23448 !checkValueDeclInTarget(SL, SR, *this, DSAStack, VD)) in checkDeclIsAllowedInOpenMPTarget()
23455 OMPDeclareTargetDeclAttr::getActiveAttr(VD); in checkDeclIsAllowedInOpenMPTarget()
23496 if (auto *VD = dyn_cast<VarDecl>(Node->getDecl())) { in VisitDeclRefExpr() local
23497 VD->addAttr(A); in VisitDeclRefExpr()
23498 DeclVector.push_back(VD); in VisitDeclRefExpr()
23633 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPUseDevicePtrClause() local
23646 VD ? cast<DeclRefExpr>(SimpleRefExpr) : nullptr); in ActOnOpenMPUseDevicePtrClause()
23666 if (!VD) in ActOnOpenMPUseDevicePtrClause()
23668 MVLI.ProcessedVarList.push_back(VD ? RefExpr->IgnoreParens() : Ref); in ActOnOpenMPUseDevicePtrClause()
23711 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPUseDeviceAddrClause() local
23716 if (!VD) in ActOnOpenMPUseDeviceAddrClause()
23718 MVLI.ProcessedVarList.push_back(VD ? RefExpr->IgnoreParens() : Ref); in ActOnOpenMPUseDeviceAddrClause()
23730 if (VD && (isa<OMPArraySectionExpr>(RefExpr->IgnoreParenImpCasts()) || in ActOnOpenMPUseDeviceAddrClause()
23876 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPHasDeviceAddrClause() local
23877 if (VD && (isa<OMPArraySectionExpr>(RefExpr->IgnoreParenImpCasts()) || in ActOnOpenMPHasDeviceAddrClause()
23886 if (!VD && !CurContext->isDependentContext()) { in ActOnOpenMPHasDeviceAddrClause()
23959 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPAllocateClause() local
23961 if (!VD && !CurContext->isDependentContext()) in ActOnOpenMPAllocateClause()
23963 Vars.push_back((VD || CurContext->isDependentContext()) in ActOnOpenMPAllocateClause()