Lines Matching refs:VD

275   const ValueDecl *VD = cast<ValueDecl>(DRE->getDecl()->getCanonicalDecl());
278 if (const ParmVarDecl *PV = dyn_cast_or_null<ParmVarDecl>(VD)) {
290 VD = FD->getParamDecl(I);
294 return new (Arena) til::LiteralPtr(VD);
320 auto *VD = getValueDeclFromSExpr(E);
321 if (VD && VD->getType()->isPointerType())
348 if (auto *VD = dyn_cast<CXXMethodDecl>(D))
349 D = getFirstVirtualDecl(VD);
486 const ValueDecl *VD = nullptr;
489 VD = DRE->getDecl();
490 CV = lookupVarDecl(VD);
496 E1 = addStatement(E1, nullptr, VD);
498 if (VD && CV)
499 return updateVarDecl(VD, E1);
607 if (VarDecl *VD = dyn_cast_or_null<VarDecl>(*I)) {
608 Expr *E = VD->getInit();
612 QualType T = VD->getType();
613 if (T.isTrivialType(VD->getASTContext())) {
614 return addVarDecl(VD, SE);
631 const ValueDecl *VD) {
634 if (VD)
635 E = new (Arena) til::Variable(E, VD);
643 // Returns the current value of VD, if known, and nullptr otherwise.
644 til::SExpr *SExprBuilder::lookupVarDecl(const ValueDecl *VD) {
645 auto It = LVarIdxMap.find(VD);
647 assert(CurrentLVarMap[It->second].first == VD);
655 static void maybeUpdateVD(til::SExpr *E, const ValueDecl *VD) {
660 V->setClangDecl(VD);
665 til::SExpr *SExprBuilder::addVarDecl(const ValueDecl *VD, til::SExpr *E) {
666 maybeUpdateVD(E, VD);
667 LVarIdxMap.insert(std::make_pair(VD, CurrentLVarMap.size()));
669 CurrentLVarMap.push_back(std::make_pair(VD, E));
675 til::SExpr *SExprBuilder::updateVarDecl(const ValueDecl *VD, til::SExpr *E) {
676 maybeUpdateVD(E, VD);
677 auto It = LVarIdxMap.find(VD);
679 til::SExpr *Ptr = new (Arena) til::LiteralPtr(VD);
898 void SExprBuilder::handleDestructorCall(const VarDecl *VD,
900 til::SExpr *Sf = new (Arena) til::LiteralPtr(VD);