Lines Matching refs:VD
219 VarDecl *VD = nullptr; member
221 VarDecl *VD) in ImplicitDefaultFDInfoTy()
222 : FD(FD), StackLevel(StackLevel), VD(VD) {} in ImplicitDefaultFDInfoTy()
591 bool isTaskgroupReductionRef(const ValueDecl *VD, unsigned Level) const { in isTaskgroupReductionRef() argument
594 ->getDecl() == VD; in isTaskgroupReductionRef()
1018 const ValueDecl *VD, bool CurrentRegionOnly, in checkMappableExprComponentListsForDecl() argument
1037 auto MI = SI->MappedExprComponents.find(VD); in checkMappableExprComponentListsForDecl()
1050 const ValueDecl *VD, unsigned Level, in checkMappableExprComponentListsForDeclAtLevel() argument
1059 auto MI = StackElem.MappedExprComponents.find(VD); in checkMappableExprComponentListsForDeclAtLevel()
1071 const ValueDecl *VD, in addMappableExpressionComponents() argument
1074 MappedExprComponentTy &MEC = getTopOfStack().MappedExprComponents[VD]; in addMappableExpressionComponents()
1185 void addIteratorVarDecl(VarDecl *VD) { in addIteratorVarDecl() argument
1187 StackElem.IteratorVarDecls.push_back(VD->getCanonicalDecl()); in addIteratorVarDecl()
1190 bool isIteratorVarDecl(const VarDecl *VD) const { in isIteratorVarDecl()
1195 return llvm::is_contained(Top->IteratorVarDecls, VD->getCanonicalDecl()); in isIteratorVarDecl()
1212 return IFD.VD; in getImplicitFDCapExprDecl()
1216 bool isImplicitDefaultFirstprivateFD(VarDecl *VD) const { in isImplicitDefaultFirstprivateFD()
1225 if (IFD.VD == VD) in isImplicitDefaultFirstprivateFD()
1230 void addImplicitDefaultFirstprivateFD(const FieldDecl *FD, VarDecl *VD) { in addImplicitDefaultFirstprivateFD() argument
1236 I->ImplicitDefaultFirstprivateFDs.emplace_back(FD, StackLevel, VD); in addImplicitDefaultFirstprivateFD()
1279 const auto *VD = dyn_cast<VarDecl>(D); in getCanonicalDecl() local
1281 if (VD != nullptr) { in getCanonicalDecl()
1282 VD = VD->getCanonicalDecl(); in getCanonicalDecl()
1283 D = VD; in getCanonicalDecl()
1300 auto *VD = dyn_cast<VarDecl>(D); in getDSA() local
1309 if (VD && !VD->isFunctionOrMethodVarDecl() && !isa<ParmVarDecl>(VD)) in getDSA()
1316 if (VD && VD->hasGlobalStorage()) in getDSA()
1330 if (VD && isOpenMPLocal(VD, Iter) && VD->isLocalVarDecl() && in getDSA()
1331 (VD->getStorageClass() == SC_Auto || VD->getStorageClass() == SC_None)) { in getDSA()
1362 if (VD && VD->getStorageDuration() == SD_Static && in getDSA()
1363 VD->getDeclContext()->isFileContext()) { in getDSA()
1374 if (VD && VD->getStorageDuration() == SD_Static && in getDSA()
1375 VD->getDeclContext()->isFileContext()) { in getDSA()
1602 VarDecl *VD = buildVarDecl(SemaRef, SR.getBegin(), in addTaskgroupReductionData() local
1605 buildDeclRefExpr(SemaRef, VD, SemaRef.Context.VoidPtrTy, SR.getBegin()); in addTaskgroupReductionData()
1627 VarDecl *VD = buildVarDecl(SemaRef, SR.getBegin(), in addTaskgroupReductionData() local
1630 buildDeclRefExpr(SemaRef, VD, SemaRef.Context.VoidPtrTy, SR.getBegin()); in addTaskgroupReductionData()
1741 const VarDecl *VD = dyn_cast<VarDecl>(D); in rejectConstNotMutableType() local
1742 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in rejectConstNotMutableType()
1758 auto *VD = dyn_cast<VarDecl>(D); in getTopDSA() local
1766 if (VD && VD->hasAttr<OMPThreadPrivateDeclAttr>()) { in getTopDSA()
1768 SemaRef, VD, D->getType().getNonReferenceType(), in getTopDSA()
1769 VD->getAttr<OMPThreadPrivateDeclAttr>()->getLocation()); in getTopDSA()
1777 if ((VD && VD->getTLSKind() != VarDecl::TLS_None && in getTopDSA()
1778 !(VD->hasAttr<OMPThreadPrivateDeclAttr>() && in getTopDSA()
1781 (VD && VD->getStorageClass() == SC_Register && in getTopDSA()
1782 VD->hasAttr<AsmLabelAttr>() && !VD->isLocalVarDecl())) { in getTopDSA()
1784 SemaRef, VD, D->getType().getNonReferenceType(), D->getLocation()); in getTopDSA()
1789 if (SemaRef.getLangOpts().OpenMPCUDAMode && VD && in getTopDSA()
1790 VD->isLocalVarDeclOrParm() && !isStackEmpty() && in getTopDSA()
1799 if (isOpenMPLocal(VD, Iter)) { in getTopDSA()
1801 buildDeclRefExpr(SemaRef, VD, D->getType().getNonReferenceType(), in getTopDSA()
1820 buildDeclRefExpr(SemaRef, VD, D->getType().getNonReferenceType(), in getTopDSA()
1840 if (VD && VD->isStaticDataMember()) { in getTopDSA()
2119 getVariableCategoryFromDecl(const LangOptions &LO, const ValueDecl *VD) { in getVariableCategoryFromDecl() argument
2121 if (VD->getType().getNonReferenceType()->isScalarType()) in getVariableCategoryFromDecl()
2125 if (VD->getType().getNonReferenceType()->isAnyPointerType()) in getVariableCategoryFromDecl()
2127 if (VD->getType().getNonReferenceType()->isScalarType()) in getVariableCategoryFromDecl()
2360 auto *VD = dyn_cast<VarDecl>(D); in isOpenMPCapturedDecl() local
2362 if (VD && VD->isConstexpr()) in isOpenMPCapturedDecl()
2375 if (VD && !VD->hasLocalStorage() && in isOpenMPCapturedDecl()
2382 return VD; in isOpenMPCapturedDecl()
2386 if (OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(VD)) in isOpenMPCapturedDecl()
2406 return VD; in isOpenMPCapturedDecl()
2412 !OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(VD)) in isOpenMPCapturedDecl()
2413 checkDeclIsAllowedInOpenMPTarget(nullptr, VD); in isOpenMPCapturedDecl()
2439 (VD && VD->hasLocalStorage() && in isOpenMPCapturedDecl()
2441 (VD && DSAStack->isForceVarCapturing())) in isOpenMPCapturedDecl()
2442 return VD ? VD : Info.second; in isOpenMPCapturedDecl()
2446 (!VD || VD->hasLocalStorage() || !DVarTop.AppliedToPointee)) in isOpenMPCapturedDecl()
2447 return VD ? VD : cast<VarDecl>(DVarTop.PrivateCopy->getDecl()); in isOpenMPCapturedDecl()
2461 if (VD && !VD->hasLocalStorage() && DVarPrivate.CKind == OMPC_unknown && in isOpenMPCapturedDecl()
2468 if (DVarPrivate.CKind != OMPC_unknown && !VD && FD && in isOpenMPCapturedDecl()
2483 VarDecl *VD = DSAStack->getImplicitFDCapExprDecl(FD); in isOpenMPCapturedDecl() local
2484 if (VD) in isOpenMPCapturedDecl()
2485 return VD; in isOpenMPCapturedDecl()
2503 VD = cast<VarDecl>(VDPrivateRefExpr->getDecl()); in isOpenMPCapturedDecl()
2504 DSAStack->addImplicitDefaultFirstprivateFD(FD, VD); in isOpenMPCapturedDecl()
2505 return VD; in isOpenMPCapturedDecl()
2508 (VD && (DSAStack->getDefaultDSA() == DSA_none || in isOpenMPCapturedDecl()
2511 return VD ? VD : cast<VarDecl>(DVarPrivate.PrivateCopy->getDecl()); in isOpenMPCapturedDecl()
2597 if (const auto *VD = dyn_cast<VarDecl>(D)) { in isOpenMPPrivateDecl() local
2598 if (DSAStack->isThreadPrivate(const_cast<VarDecl *>(VD)) && in isOpenMPPrivateDecl()
2678 const auto *VD = dyn_cast<VarDecl>(D); in isOpenMPTargetCapturedDecl() local
2679 return VD && !VD->hasLocalStorage() && in isOpenMPTargetCapturedDecl()
2690 if (const auto *VD = dyn_cast<VarDecl>(D)) { in isOpenMPGlobalCapturedDecl() local
2691 if (!VD->hasLocalStorage()) { in isOpenMPGlobalCapturedDecl()
2901 auto *VD = cast<VarDecl>(DRE->getDecl()); in EndOpenMPDSABlock() local
2902 QualType Type = VD->getType().getNonReferenceType(); in EndOpenMPDSABlock()
2904 DSAStack->getTopDSA(VD, /*FromParent=*/false); in EndOpenMPDSABlock()
2913 VD->getName(), VD->hasAttrs() ? &VD->getAttrs() : nullptr, DRE); in EndOpenMPDSABlock()
2960 ValueDecl *VD = DRE->getDecl(); in EndOpenMPDSABlock() local
2961 if (!VD || !isa<VarDecl>(VD)) in EndOpenMPDSABlock()
2964 DSAStack->getTopDSA(VD, /*FromParent=*/false); in EndOpenMPDSABlock()
2972 VD, /*CurrentRegionOnly=*/true, in EndOpenMPDSABlock()
2973 [VD, &MapExpr]( in EndOpenMPDSABlock()
2981 VD->getCanonicalDecl()) { in EndOpenMPDSABlock()
2991 reportOriginalDsa(SemaRef, DSAStack, VD, DVar); in EndOpenMPDSABlock()
3048 if (const auto *VD = dyn_cast_or_null<VarDecl>(ND)) { in ValidateCandidate() local
3049 return VD->hasGlobalStorage() && in ValidateCandidate()
3097 VarDecl *VD; in ActOnOpenMPIdExpression() local
3108 VD = Corrected.getCorrectionDeclAs<VarDecl>(); in ActOnOpenMPIdExpression()
3115 } else if (!(VD = Lookup.getAsSingle<VarDecl>())) { in ActOnOpenMPIdExpression()
3124 if (Kind == OMPD_threadprivate && !VD->hasGlobalStorage()) { in ActOnOpenMPIdExpression()
3126 << getOpenMPDirectiveName(Kind) << !VD->isStaticLocal(); in ActOnOpenMPIdExpression()
3128 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in ActOnOpenMPIdExpression()
3129 Diag(VD->getLocation(), in ActOnOpenMPIdExpression()
3131 << VD; in ActOnOpenMPIdExpression()
3135 VarDecl *CanonicalVD = VD->getCanonicalDecl(); in ActOnOpenMPIdExpression()
3143 << getOpenMPDirectiveName(Kind) << VD; in ActOnOpenMPIdExpression()
3145 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in ActOnOpenMPIdExpression()
3146 Diag(VD->getLocation(), in ActOnOpenMPIdExpression()
3148 << VD; in ActOnOpenMPIdExpression()
3158 << getOpenMPDirectiveName(Kind) << VD; in ActOnOpenMPIdExpression()
3160 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in ActOnOpenMPIdExpression()
3161 Diag(VD->getLocation(), in ActOnOpenMPIdExpression()
3163 << VD; in ActOnOpenMPIdExpression()
3175 << getOpenMPDirectiveName(Kind) << VD; in ActOnOpenMPIdExpression()
3177 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in ActOnOpenMPIdExpression()
3178 Diag(VD->getLocation(), in ActOnOpenMPIdExpression()
3180 << VD; in ActOnOpenMPIdExpression()
3189 << getOpenMPDirectiveName(Kind) << VD; in ActOnOpenMPIdExpression()
3191 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in ActOnOpenMPIdExpression()
3192 Diag(VD->getLocation(), in ActOnOpenMPIdExpression()
3194 << VD; in ActOnOpenMPIdExpression()
3201 if (Kind == OMPD_threadprivate && VD->isUsed() && in ActOnOpenMPIdExpression()
3202 !DSAStack->isThreadPrivate(VD)) { in ActOnOpenMPIdExpression()
3204 << getOpenMPDirectiveName(Kind) << VD; in ActOnOpenMPIdExpression()
3208 QualType ExprType = VD->getType().getNonReferenceType(); in ActOnOpenMPIdExpression()
3210 SourceLocation(), VD, in ActOnOpenMPIdExpression()
3232 if (const auto *VD = dyn_cast<VarDecl>(E->getDecl())) { in VisitDeclRefExpr() local
3233 if (VD->hasLocalStorage()) { in VisitDeclRefExpr()
3237 SemaRef.Diag(VD->getLocation(), diag::note_defined_here) in VisitDeclRefExpr()
3238 << VD << VD->getSourceRange(); in VisitDeclRefExpr()
3262 auto *VD = cast<VarDecl>(DE->getDecl()); in CheckOMPThreadPrivateDecl() local
3266 VD->setReferenced(); in CheckOMPThreadPrivateDecl()
3267 VD->markUsed(Context); in CheckOMPThreadPrivateDecl()
3269 QualType QType = VD->getType(); in CheckOMPThreadPrivateDecl()
3279 ILoc, VD->getType(), diag::err_omp_threadprivate_incomplete_type)) { in CheckOMPThreadPrivateDecl()
3285 if (VD->getType()->isReferenceType()) { in CheckOMPThreadPrivateDecl()
3287 << getOpenMPDirectiveName(OMPD_threadprivate) << VD->getType(); in CheckOMPThreadPrivateDecl()
3289 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in CheckOMPThreadPrivateDecl()
3290 Diag(VD->getLocation(), in CheckOMPThreadPrivateDecl()
3292 << VD; in CheckOMPThreadPrivateDecl()
3298 if ((VD->getTLSKind() != VarDecl::TLS_None && in CheckOMPThreadPrivateDecl()
3299 !(VD->hasAttr<OMPThreadPrivateDeclAttr>() && in CheckOMPThreadPrivateDecl()
3302 (VD->getStorageClass() == SC_Register && VD->hasAttr<AsmLabelAttr>() && in CheckOMPThreadPrivateDecl()
3303 !VD->isLocalVarDecl())) { in CheckOMPThreadPrivateDecl()
3305 << VD << ((VD->getTLSKind() != VarDecl::TLS_None) ? 0 : 1); in CheckOMPThreadPrivateDecl()
3307 VD->isThisDeclarationADefinition(Context) == VarDecl::DeclarationOnly; in CheckOMPThreadPrivateDecl()
3308 Diag(VD->getLocation(), in CheckOMPThreadPrivateDecl()
3310 << VD; in CheckOMPThreadPrivateDecl()
3316 if (const Expr *Init = VD->getAnyInitializer()) { in CheckOMPThreadPrivateDecl()
3323 DSAStack->addDSA(VD, DE, OMPC_threadprivate); in CheckOMPThreadPrivateDecl()
3324 VD->addAttr(OMPThreadPrivateDeclAttr::CreateImplicit( in CheckOMPThreadPrivateDecl()
3327 ML->DeclarationMarkedOpenMPThreadPrivate(VD); in CheckOMPThreadPrivateDecl()
3365 Sema &S, DSAStackTy *Stack, Expr *RefExpr, VarDecl *VD, in checkPreviousOMPAllocateAttribute() argument
3367 if (!VD->hasAttr<OMPAllocateDeclAttr>()) in checkPreviousOMPAllocateAttribute()
3369 const auto *A = VD->getAttr<OMPAllocateDeclAttr>(); in checkPreviousOMPAllocateAttribute()
3415 applyOMPAllocateAttribute(Sema &S, VarDecl *VD, in applyOMPAllocateAttribute() argument
3418 if (VD->hasAttr<OMPAllocateDeclAttr>()) in applyOMPAllocateAttribute()
3433 VD->addAttr(A); in applyOMPAllocateAttribute()
3435 ML->DeclarationMarkedOpenMPAllocate(VD, A); in applyOMPAllocateAttribute()
3466 auto *VD = cast<VarDecl>(DE->getDecl()); in ActOnOpenMPAllocateDirective() local
3469 if (VD->getTLSKind() != VarDecl::TLS_None || in ActOnOpenMPAllocateDirective()
3470 VD->hasAttr<OMPThreadPrivateDeclAttr>() || in ActOnOpenMPAllocateDirective()
3471 (VD->getStorageClass() == SC_Register && VD->hasAttr<AsmLabelAttr>() && in ActOnOpenMPAllocateDirective()
3472 !VD->isLocalVarDecl())) in ActOnOpenMPAllocateDirective()
3477 if (checkPreviousOMPAllocateAttribute(SemaRef, DSAStack, RefExpr, VD, in ActOnOpenMPAllocateDirective()
3485 if (Allocator && VD->hasGlobalStorage()) { in ActOnOpenMPAllocateDirective()
3490 bool IsDecl = VD->isThisDeclarationADefinition(getASTContext()) == in ActOnOpenMPAllocateDirective()
3492 Diag(VD->getLocation(), in ActOnOpenMPAllocateDirective()
3494 << VD; in ActOnOpenMPAllocateDirective()
3500 applyOMPAllocateAttribute(SemaRef, VD, AllocatorKind, Allocator, Alignment, in ActOnOpenMPAllocateDirective()
3648 auto *VD = dyn_cast<VarDecl>(D); in reportOriginalDsa() local
3660 } else if (VD && VD->isStaticLocal()) in reportOriginalDsa()
3662 else if (VD && VD->isStaticDataMember()) in reportOriginalDsa()
3664 else if (VD && VD->isFileVarDecl()) in reportOriginalDsa()
3668 else if (VD && VD->isLocalVarDecl() && DVar.CKind == OMPC_private) { in reportOriginalDsa()
3789 if (auto *VD = dyn_cast<VarDecl>(E->getDecl())) { in VisitDeclRefExpr() local
3791 if (!CS || (isa<OMPCapturedExprDecl>(VD) && !CS->capturesVariable(VD) && in VisitDeclRefExpr()
3792 !Stack->getTopDSA(VD, /*FromParent=*/false).RefExpr && in VisitDeclRefExpr()
3793 !Stack->isImplicitDefaultFirstprivateFD(VD))) { in VisitDeclRefExpr()
3794 if (auto *CED = dyn_cast<OMPCapturedExprDecl>(VD)) in VisitDeclRefExpr()
3799 } else if (VD->isImplicit() || isa<OMPCapturedExprDecl>(VD)) in VisitDeclRefExpr()
3802 if (!Stack->isImplicitDefaultFirstprivateFD(VD)) in VisitDeclRefExpr()
3804 VD = VD->getCanonicalDecl(); in VisitDeclRefExpr()
3806 if (VD->hasLocalStorage() && CS && !CS->capturesVariable(VD) && in VisitDeclRefExpr()
3807 !Stack->isImplicitDefaultFirstprivateFD(VD) && in VisitDeclRefExpr()
3808 !Stack->isImplicitTaskFirstprivate(VD)) in VisitDeclRefExpr()
3811 if (Stack->isUsesAllocatorsDecl(VD)) in VisitDeclRefExpr()
3814 DSAStackTy::DSAVarData DVar = Stack->getTopDSA(VD, /*FromParent=*/false); in VisitDeclRefExpr()
3816 if (DVar.RefExpr || !ImplicitDeclarations.insert(VD).second) in VisitDeclRefExpr()
3821 OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(VD); in VisitDeclRefExpr()
3822 if (VD->hasGlobalStorage() && CS && !CS->capturesVariable(VD) && in VisitDeclRefExpr()
3825 !Stack->isImplicitDefaultFirstprivateFD(VD) && in VisitDeclRefExpr()
3826 !Stack->isImplicitTaskFirstprivate(VD)) in VisitDeclRefExpr()
3840 VarsWithInheritedDSA.count(VD) == 0) { in VisitDeclRefExpr()
3845 Stack->getImplicitDSA(VD, /*FromParent=*/false); in VisitDeclRefExpr()
3849 VarsWithInheritedDSA[VD] = E; in VisitDeclRefExpr()
3863 getVariableCategoryFromDecl(SemaRef.getLangOpts(), VD); in VisitDeclRefExpr()
3868 VarsWithInheritedDSA.count(VD) == 0 && !Res) { in VisitDeclRefExpr()
3873 VD, /*CurrentRegionOnly=*/true, in VisitDeclRefExpr()
3874 [VD](OMPClauseMappableExprCommon::MappableExprComponentListRef in VisitDeclRefExpr()
3879 return MI != ME && MI->getAssociatedDeclaration() == VD; in VisitDeclRefExpr()
3881 VarsWithInheritedDSA[VD] = E; in VisitDeclRefExpr()
3899 !Stack->isLoopControlVariable(VD).first) { in VisitDeclRefExpr()
3901 VD, /*CurrentRegionOnly=*/true, in VisitDeclRefExpr()
3927 VD->getType().getNonReferenceType()->getAsCXXRecordDecl()) in VisitDeclRefExpr()
3949 VD, in VisitDeclRefExpr()
3961 reportOriginalDsa(SemaRef, Stack, VD, DVar); in VisitDeclRefExpr()
3966 DVar = Stack->getImplicitDSA(VD, /*FromParent=*/false); in VisitDeclRefExpr()
3973 !Stack->isLoopControlVariable(VD).first) { in VisitDeclRefExpr()
4080 const auto *VD = cast<ValueDecl>( in VisitMemberExpr() local
4083 VD, /*CurrentRegionOnly=*/true, in VisitMemberExpr()
4178 VarDecl *VD = Cap.getCapturedVar(); in visitSubCaptures() local
4183 VD, /*CurrentRegionOnly=*/true, in visitSubCaptures()
4188 SemaRef, VD, VD->getType().getNonLValueExprType(SemaRef.Context), in visitSubCaptures()
4466 if (VarDecl *VD = S.OpenMP().isOpenMPCapturedDecl(D)) in buildCapture() local
4467 CD = cast<OMPCapturedExprDecl>(VD); in buildCapture()
4547 VarDecl *VD = cast<VarDecl>(LC.getCapturedVar()); in tryCaptureOpenMPLambdas() local
4548 DeclContext *VDC = VD->getDeclContext(); in tryCaptureOpenMPLambdas()
4551 SemaRef.MarkVariableReferenced(LC.getLocation(), VD); in tryCaptureOpenMPLambdas()
5340 ValueDecl *VD = Res.first; in checkAllocateClauses() local
5341 DSAStackTy::DSAVarData Data = Stack->getTopDSA(VD, /*FromParent=*/false); in checkAllocateClauses()
5347 VarDecl *PrivateVD = DeclToCopy[VD]; in checkAllocateClauses()
5433 auto BuildVarRef = [&](VarDecl *VD) { in buildDistanceFunc() argument
5434 return buildDeclRefExpr(Actions, VD, VD->getType(), {}); in buildDistanceFunc()
8025 bool checkDecl(const Expr *E, const ValueDecl *VD) { in checkDecl() argument
8026 if (getCanonicalDecl(VD) == getCanonicalDecl(CurLCDecl)) { in checkDecl()
8031 const auto &&Data = Stack.isLoopControlVariable(VD); in checkDecl()
8035 if (Data.first && VD->getType()->isRecordType()) { in checkDecl()
8038 VD->getNameForDiagnostic(OS, SemaRef.getPrintingPolicy(), in checkDecl()
8043 SemaRef.Diag(VD->getLocation(), diag::note_previous_decl) << VD; in checkDecl()
8052 getCanonicalDecl(VD) != getCanonicalDecl(PrevDepDecl)))) { in checkDecl()
8065 DepDecl = VD; in checkDecl()
8073 const ValueDecl *VD = E->getDecl(); in VisitDeclRefExpr() local
8074 if (isa<VarDecl>(VD)) in VisitDeclRefExpr()
8075 return checkDecl(E, VD); in VisitDeclRefExpr()
8080 const ValueDecl *VD = E->getMemberDecl(); in VisitMemberExpr() local
8081 if (isa<VarDecl>(VD) || isa<FieldDecl>(VD)) in VisitMemberExpr()
8082 return checkDecl(E, VD); in VisitMemberExpr()
8221 if (const auto *VD = dyn_cast<VarDecl>(DRE->getDecl())) in getInitLCDecl() local
8222 return getCanonicalDecl(VD); in getInitLCDecl()
8979 auto *VD = dyn_cast<VarDecl>(LCDecl); in buildCounterVar() local
8980 if (!VD) { in buildCounterVar()
8981 VD = SemaRef.OpenMP().isOpenMPCapturedDecl(LCDecl); in buildCounterVar()
8983 SemaRef, VD, VD->getType().getNonReferenceType(), DefaultLoc); in buildCounterVar()
9068 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPLoopInitialization() local
9070 if (!VD) { in ActOnOpenMPLoopInitialization()
9072 VD = Private; in ActOnOpenMPLoopInitialization()
9076 VD = cast<VarDecl>(PrivateRef->getDecl()); in ActOnOpenMPLoopInitialization()
9079 DSAStack->addLoopControlVariable(D, VD); in ActOnOpenMPLoopInitialization()
10184 auto *VD = cast<VarDecl>(cast<DeclRefExpr>(IS.CounterVar)->getDecl()); in checkOpenMPLoop() local
10186 SemaRef, VD, IS.CounterVar->getType(), IS.CounterVar->getExprLoc(), in checkOpenMPLoop()
13016 return llvm::all_of(TC->all_decls(), [](ValueDecl *VD) { in isClauseMappable() argument
13017 return !VD || !VD->hasAttr<OMPDeclareTargetDeclAttr>() || in isClauseMappable()
13018 (VD->isExternallyVisible() && in isClauseMappable()
13019 VD->getVisibility() != HiddenVisibility); in isClauseMappable()
13022 return llvm::all_of(FC->all_decls(), [](ValueDecl *VD) { in isClauseMappable() argument
13023 return !VD || !VD->hasAttr<OMPDeclareTargetDeclAttr>() || in isClauseMappable()
13024 (VD->isExternallyVisible() && in isClauseMappable()
13025 VD->getVisibility() != HiddenVisibility); in isClauseMappable()
15558 auto *VD = dyn_cast_or_null<ValueDecl>( in findOMPAllocatorHandleT() local
15560 if (!VD) { in findOMPAllocatorHandleT()
15565 VD->getType().getNonLValueExprType(S.getASTContext()); in findOMPAllocatorHandleT()
15566 ExprResult Res = S.BuildDeclRefExpr(VD, AllocatorType, VK_LValue, Loc); in findOMPAllocatorHandleT()
17122 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPPrivateClause() local
17165 bool IsDecl = !VD || VD->isThisDeclarationADefinition(getASTContext()) == in ActOnOpenMPPrivateClause()
17186 VD, /*CurrentRegionOnly=*/true, in ActOnOpenMPPrivateClause()
17214 VD ? cast<DeclRefExpr>(SimpleRefExpr) : nullptr); in ActOnOpenMPPrivateClause()
17222 if (!VD && !SemaRef.CurContext->isDependentContext()) { in ActOnOpenMPPrivateClause()
17224 VarDecl *VD = FD ? DSAStack->getImplicitFDCapExprDecl(FD) : nullptr; in ActOnOpenMPPrivateClause() local
17225 if (VD) in ActOnOpenMPPrivateClause()
17226 Ref = buildDeclRefExpr(SemaRef, VD, VD->getType().getNonReferenceType(), in ActOnOpenMPPrivateClause()
17233 Vars.push_back((VD || SemaRef.CurContext->isDependentContext()) in ActOnOpenMPPrivateClause()
17276 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPFirstprivateClause() local
17330 if (!(IsConstant || (VD && VD->isStaticDataMember())) && !DVar.RefExpr && in ActOnOpenMPFirstprivateClause()
17417 VD, /*CurrentRegionOnly=*/true, in ActOnOpenMPFirstprivateClause()
17440 bool IsDecl = !VD || VD->isThisDeclarationADefinition(getASTContext()) == in ActOnOpenMPFirstprivateClause()
17452 VD ? cast<DeclRefExpr>(SimpleRefExpr) : nullptr); in ActOnOpenMPFirstprivateClause()
17502 if (!VD && !SemaRef.CurContext->isDependentContext()) { in ActOnOpenMPFirstprivateClause()
17507 VarDecl *VD = FD ? DSAStack->getImplicitFDCapExprDecl(FD) : nullptr; in ActOnOpenMPFirstprivateClause() local
17508 if (VD) in ActOnOpenMPFirstprivateClause()
17510 buildDeclRefExpr(SemaRef, VD, VD->getType().getNonReferenceType(), in ActOnOpenMPFirstprivateClause()
17514 if (VD || !isOpenMPCapturedDecl(D)) in ActOnOpenMPFirstprivateClause()
17520 Vars.push_back((VD || SemaRef.CurContext->isDependentContext()) in ActOnOpenMPFirstprivateClause()
17572 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPLastprivateClause() local
17598 bool IsDecl = !VD || VD->isThisDeclarationADefinition(getASTContext()) == in ActOnOpenMPLastprivateClause()
17677 if (!VD && !SemaRef.CurContext->isDependentContext()) { in ActOnOpenMPLastprivateClause()
17701 Vars.push_back((VD || SemaRef.CurContext->isDependentContext()) in ActOnOpenMPLastprivateClause()
17738 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPSharedClause() local
17756 if (!VD && isOpenMPCapturedDecl(D) && in ActOnOpenMPSharedClause()
17760 Vars.push_back((VD || !Ref || SemaRef.CurContext->isDependentContext()) in ActOnOpenMPSharedClause()
17778 if (auto *VD = dyn_cast<VarDecl>(E->getDecl())) { in VisitDeclRefExpr() local
17779 DSAStackTy::DSAVarData DVar = Stack->getTopDSA(VD, /*FromParent=*/false); in VisitDeclRefExpr()
17785 VD, in VisitDeclRefExpr()
18005 if (auto *VD = filterLookupForUDReductionAndMapper<ValueDecl *>( in buildDeclareReductionRef() local
18012 return SemaRef.BuildDeclRefExpr(VD, VD->getType().getNonReferenceType(), in buildDeclareReductionRef()
18015 if (auto *VD = filterLookupForUDReductionAndMapper<ValueDecl *>( in buildDeclareReductionRef() local
18025 if (SemaRef.IsDerivedFrom(Loc, Ty, VD->getType(), Paths)) { in buildDeclareReductionRef()
18027 VD->getType().getUnqualifiedType()))) { in buildDeclareReductionRef()
18029 Loc, VD->getType(), Ty, Paths.front(), in buildDeclareReductionRef()
18033 VD, VD->getType().getNonReferenceType(), VK_LValue, Loc); in buildDeclareReductionRef()
18377 auto *VD = dyn_cast<VarDecl>(D); in actOnOMPReductionKindClause() local
18397 if (VD) { in actOnOMPReductionKindClause()
18398 VarDecl *VDDef = VD->getDefinition(); in actOnOMPReductionKindClause()
18399 if (VD->getType()->isReferenceType() && VDDef && VDDef->hasInit()) { in actOnOMPReductionKindClause()
18508 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in actOnOMPReductionKindClause()
18521 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in actOnOMPReductionKindClause()
18587 VD ? cast<DeclRefExpr>(SimpleRefExpr) : nullptr); in actOnOMPReductionKindClause()
18719 bool IsDecl = !VD || VD->isThisDeclarationADefinition(Context) == in actOnOMPReductionKindClause()
18883 if (!VD && !S.CurContext->isDependentContext()) { in actOnOMPReductionKindClause()
19041 const auto *VD = dyn_cast_or_null<VarDecl>(D); in CheckOpenMPLinearDecl() local
19070 bool IsDecl = !VD || VD->isThisDeclarationADefinition(getASTContext()) == in CheckOpenMPLinearDecl()
19116 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPLinearClause() local
19138 VD ? cast<DeclRefExpr>(SimpleRefExpr) : nullptr); in ActOnOpenMPLinearClause()
19144 if (!VD && !SemaRef.CurContext->isDependentContext()) { in ActOnOpenMPLinearClause()
19163 InitExpr = VD ? VD->getInit() : SimpleRefExpr; in ActOnOpenMPLinearClause()
19165 InitExpr = VD ? SimpleRefExpr : Ref; in ActOnOpenMPLinearClause()
19172 Vars.push_back((VD || SemaRef.CurContext->isDependentContext()) in ActOnOpenMPLinearClause()
19346 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPAlignedClause() local
19356 bool IsDecl = !VD || VD->isThisDeclarationADefinition(getASTContext()) == in ActOnOpenMPAlignedClause()
19375 if (!VD && isOpenMPCapturedDecl(D)) in ActOnOpenMPAlignedClause()
19379 (VD || !Ref) ? RefExpr->IgnoreParens() : Ref) in ActOnOpenMPAlignedClause()
19434 auto *VD = cast<VarDecl>(D); in ActOnOpenMPCopyinClause() local
19436 QualType Type = VD->getType(); in ActOnOpenMPCopyinClause()
19448 if (!DSAStack->isThreadPrivate(VD)) { in ActOnOpenMPCopyinClause()
19463 ".copyin.src", VD->hasAttrs() ? &VD->getAttrs() : nullptr); in ActOnOpenMPCopyinClause()
19468 VD->hasAttrs() ? &VD->getAttrs() : nullptr); in ActOnOpenMPCopyinClause()
19484 DSAStack->addDSA(VD, DE, OMPC_copyin); in ActOnOpenMPCopyinClause()
19524 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPCopyprivateClause() local
19529 if (!VD || !DSAStack->isThreadPrivate(VD)) { in ActOnOpenMPCopyprivateClause()
19561 bool IsDecl = !VD || VD->isThisDeclarationADefinition(getASTContext()) == in ActOnOpenMPCopyprivateClause()
19595 assert(VD || isOpenMPCapturedDecl(D)); in ActOnOpenMPCopyprivateClause()
19597 VD ? RefExpr->IgnoreParens() in ActOnOpenMPCopyprivateClause()
19776 const ValueDecl *VD = in ProcessOpenMPDoacrossClauseCommon() local
19778 if (VD) in ProcessOpenMPDoacrossClauseCommon()
19780 << 1 << VD; in ProcessOpenMPDoacrossClauseCommon()
20535 Sema &SemaRef, DSAStackTy *DSAS, const ValueDecl *VD, const Expr *E, in checkMapConflicts() argument
20539 assert(VD && E); in checkMapConflicts()
20548 assert(CurComponents.back().getAssociatedDeclaration() == VD && in checkMapConflicts()
20556 VD, CurrentRegionOnly, in checkMapConflicts()
20557 [&IsEnclosedByDataEnvironmentExpr, &SemaRef, VD, CurrentRegionOnly, ELoc, in checkMapConflicts()
20566 assert(StackComponents.back().getAssociatedDeclaration() == VD && in checkMapConflicts()
20568 (void)VD; in checkMapConflicts()
20853 if (auto *VD = filterLookupForUDReductionAndMapper<ValueDecl *>( in buildUserDefinedMapperRef() local
20860 return SemaRef.BuildDeclRefExpr(VD, Type, VK_LValue, Loc); in buildUserDefinedMapperRef()
20863 if (auto *VD = filterLookupForUDReductionAndMapper<ValueDecl *>( in buildUserDefinedMapperRef() local
20873 if (SemaRef.IsDerivedFrom(Loc, Type, VD->getType(), Paths)) { in buildUserDefinedMapperRef()
20875 VD->getType().getUnqualifiedType()))) { in buildUserDefinedMapperRef()
20877 Loc, VD->getType(), Type, Paths.front(), in buildUserDefinedMapperRef()
20879 return SemaRef.BuildDeclRefExpr(VD, Type, VK_LValue, Loc); in buildUserDefinedMapperRef()
21049 auto *VD = dyn_cast<VarDecl>(CurDeclaration); in checkMappableExpressionList() local
21052 assert((VD || FD) && "Only variables or fields are expected here!"); in checkMappableExpressionList()
21059 if (VD && DSAS->isThreadPrivate(VD)) { in checkMappableExpressionList()
21062 DSAStackTy::DSAVarData DVar = DSAS->getTopDSA(VD, /*FromParent=*/false); in checkMappableExpressionList()
21065 reportOriginalDsa(SemaRef, DSAS, VD, DVar); in checkMappableExpressionList()
21195 if (VD && ((SemaRef.LangOpts.OpenMP <= 45 && in checkMappableExpressionList()
21198 DSAStackTy::DSAVarData DVar = DSAS->getTopDSA(VD, /*FromParent=*/false); in checkMappableExpressionList()
21659 auto *VD = cast<DeclRefExpr>(MapperVarRef)->getDecl(); in ActOnOpenMPDeclareMapperDirective() local
21660 VD->setDeclContext(DMD); in ActOnOpenMPDeclareMapperDirective()
21661 VD->setLexicalDeclContext(DMD); in ActOnOpenMPDeclareMapperDirective()
21662 DMD->addDecl(VD); in ActOnOpenMPDeclareMapperDirective()
21673 auto *VD = VarDecl::Create( in ActOnOpenMPDeclareMapperDirectiveVarDecl() local
21677 SemaRef.PushOnScopeChains(VD, S, /*AddToContext=*/false); in ActOnOpenMPDeclareMapperDirectiveVarDecl()
21678 Expr *E = buildDeclRefExpr(SemaRef, VD, MapperType, StartLoc); in ActOnOpenMPDeclareMapperDirectiveVarDecl()
21683 void SemaOpenMP::ActOnOpenMPIteratorVarDecl(VarDecl *VD) { in ActOnOpenMPIteratorVarDecl() argument
21685 DSAStack->addIteratorVarDecl(VD); in ActOnOpenMPIteratorVarDecl()
21688 bool SemaOpenMP::isOpenMPDeclareMapperVarDeclAllowed(const VarDecl *VD) const { in isOpenMPDeclareMapperVarDeclAllowed()
21692 if (VD->getCanonicalDecl() == DRE->getDecl()->getCanonicalDecl()) in isOpenMPDeclareMapperVarDeclAllowed()
21694 if (VD->isUsableInConstantExpressions(getASTContext())) in isOpenMPDeclareMapperVarDeclAllowed()
21696 if (getLangOpts().OpenMP >= 52 && DSAStack->isIteratorVarDecl(VD)) in isOpenMPDeclareMapperVarDeclAllowed()
21899 auto *VD = dyn_cast_or_null<VarDecl>(Ref->getDecl()); in ActOnOpenMPDetachClause() local
21900 if (!VD) { in ActOnOpenMPDetachClause()
21906 VD->getType()) || in ActOnOpenMPDetachClause()
21907 VD->getType().isConstant(getASTContext())) { in ActOnOpenMPDetachClause()
21909 << "omp_event_handle_t" << 1 << VD->getType() in ActOnOpenMPDetachClause()
21916 DSAStackTy::DSAVarData DVar = DSAStack->getTopDSA(VD, /*FromParent=*/false); in ActOnOpenMPDetachClause()
21922 reportOriginalDsa(SemaRef, DSAStack, VD, DVar); in ActOnOpenMPDetachClause()
22157 if (auto *VD = dyn_cast<VarDecl>(ND)) { in ActOnOpenMPDeclareTargetName() local
22159 if (!VD->isFileVarDecl() && !VD->isStaticLocal() && in ActOnOpenMPDeclareTargetName()
22160 !VD->isStaticDataMember()) { in ActOnOpenMPDeclareTargetName()
22162 << VD->getNameAsString(); in ActOnOpenMPDeclareTargetName()
22179 auto *VD = cast<ValueDecl>(ND); in ActOnOpenMPDeclareTargetName() local
22181 OMPDeclareTargetDeclAttr::getActiveAttr(VD); in ActOnOpenMPDeclareTargetName()
22213 if (auto *VD = dyn_cast<VarDecl>(ND); in ActOnOpenMPDeclareTargetName() local
22214 getLangOpts().OpenMP && VD && VD->hasAttr<OMPDeclareTargetDeclAttr>() && in ActOnOpenMPDeclareTargetName()
22215 VD->hasGlobalStorage()) in ActOnOpenMPDeclareTargetName()
22223 auto *VD = cast<VarDecl>(D); in checkDeclInTargetContext() local
22225 OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(VD); in checkDeclInTargetContext()
22229 VD->hasGlobalStorage()) { in checkDeclInTargetContext()
22237 SemaRef.Diag(VD->getLocation(), in checkDeclInTargetContext()
22240 << VD << 0 << SR; in checkDeclInTargetContext()
22246 SemaRef.Diag(VD->getLocation(), diag::warn_omp_not_in_target_context); in checkDeclInTargetContext()
22252 ValueDecl *VD) { in checkValueDeclInTarget() argument
22253 return OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(VD) || in checkValueDeclInTarget()
22254 checkTypeMappable(SL, SR, SemaRef, Stack, VD->getType(), in checkValueDeclInTarget()
22264 if (auto *VD = dyn_cast<VarDecl>(D)) { in checkDeclIsAllowedInOpenMPTarget() local
22266 if (!VD->isFileVarDecl() && !VD->isStaticLocal() && in checkDeclIsAllowedInOpenMPTarget()
22267 !VD->isStaticDataMember()) in checkDeclIsAllowedInOpenMPTarget()
22271 if (DSAStack->isThreadPrivate(VD)) { in checkDeclIsAllowedInOpenMPTarget()
22273 reportOriginalDsa(SemaRef, DSAStack, VD, DSAStack->getTopDSA(VD, false)); in checkDeclIsAllowedInOpenMPTarget()
22288 if (auto *VD = dyn_cast<ValueDecl>(D)) { in checkDeclIsAllowedInOpenMPTarget() local
22291 if ((E || !VD->getType()->isIncompleteType()) && in checkDeclIsAllowedInOpenMPTarget()
22292 !checkValueDeclInTarget(SL, SR, SemaRef, DSAStack, VD)) in checkDeclIsAllowedInOpenMPTarget()
22299 OMPDeclareTargetDeclAttr::getActiveAttr(VD); in checkDeclIsAllowedInOpenMPTarget()
22339 if (auto *VD = dyn_cast<VarDecl>(Node->getDecl())) { in VisitDeclRefExpr() local
22340 VD->addAttr(A); in VisitDeclRefExpr()
22341 DeclVector.push_back(VD); in VisitDeclRefExpr()
22477 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPUseDevicePtrClause() local
22490 VD ? cast<DeclRefExpr>(SimpleRefExpr) : nullptr); in ActOnOpenMPUseDevicePtrClause()
22510 if (!VD) in ActOnOpenMPUseDevicePtrClause()
22512 MVLI.ProcessedVarList.push_back(VD ? RefExpr->IgnoreParens() : Ref); in ActOnOpenMPUseDevicePtrClause()
22556 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPUseDeviceAddrClause() local
22561 if (!VD) in ActOnOpenMPUseDeviceAddrClause()
22563 MVLI.ProcessedVarList.push_back(VD ? RefExpr->IgnoreParens() : Ref); in ActOnOpenMPUseDeviceAddrClause()
22575 if (VD && (isa<ArraySectionExpr>(RefExpr->IgnoreParenImpCasts()) || in ActOnOpenMPUseDeviceAddrClause()
22724 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPHasDeviceAddrClause() local
22725 if (VD && (isa<ArraySectionExpr>(RefExpr->IgnoreParenImpCasts()) || in ActOnOpenMPHasDeviceAddrClause()
22735 if (!VD && !SemaRef.CurContext->isDependentContext()) { in ActOnOpenMPHasDeviceAddrClause()
22808 auto *VD = dyn_cast<VarDecl>(D); in ActOnOpenMPAllocateClause() local
22810 if (!VD && !SemaRef.CurContext->isDependentContext()) in ActOnOpenMPAllocateClause()
22812 Vars.push_back((VD || SemaRef.CurContext->isDependentContext()) in ActOnOpenMPAllocateClause()
23556 auto *VD = in ActOnOMPIteratorExpr() local
23559 VD->setImplicit(); in ActOnOMPIteratorExpr()
23562 DeclarationNameInfo NameInfo(VD->getDeclName(), D.DeclIdentLoc); in ActOnOMPIteratorExpr()
23573 Diag(D.DeclIdentLoc, diag::err_redefinition) << VD->getDeclName(); in ActOnOMPIteratorExpr()
23576 SemaRef.PushOnScopeChains(VD, S); in ActOnOMPIteratorExpr()
23579 SemaRef.CurContext->addDecl(VD); in ActOnOMPIteratorExpr()
23583 ActOnOpenMPIteratorVarDecl(VD); in ActOnOMPIteratorExpr()
23622 IDElem.IteratorDecl = VD; in ActOnOMPIteratorExpr()