Lines Matching refs:VD

1216   bool hasUnclaimedUses(const VarDecl *VD) const {  in hasUnclaimedUses()
1218 return any_of(*Uses, [VD](const DeclRefExpr *DRE) { in hasUnclaimedUses()
1219 return DRE->getDecl()->getCanonicalDecl() == VD->getCanonicalDecl(); in hasUnclaimedUses()
1223 UseSetTy getUnclaimedUses(const VarDecl *VD) const { in getUnclaimedUses()
1226 if (use->getDecl()->getCanonicalDecl() == VD->getCanonicalDecl()) { in getUnclaimedUses()
1235 if (const auto *VD = dyn_cast<VarDecl>(D)) { in discoverDecl() local
1241 Defs[VD] = DS; in discoverDecl()
1246 const DeclStmt *lookupDecl(const VarDecl *VD) const { in lookupDecl()
1247 return Defs.lookup(VD); in lookupDecl()
1519 if (const auto *VD = dyn_cast<VarDecl>(DRE->getDecl())) { in groupWarningGadgetsByVar() local
1520 result.byVar[VD].insert(G.get()); in groupWarningGadgetsByVar()
1548 if (const auto *VD = dyn_cast<VarDecl>(DRE->getDecl())) { in groupFixablesByVar() local
1549 FixablesForUnsafeVars.byVar[VD].insert(F.get()); in groupFixablesByVar()
1663 static bool isNonNegativeIntegerExpr(const Expr *Expr, const VarDecl *VD, in isNonNegativeIntegerExpr() argument
1677 if (const auto *VD = dyn_cast<VarDecl>(DRE->getDecl())) { in getFixits() local
1678 switch (S.lookup(VD)) { in getFixits()
1684 VD->getASTContext(); in getFixits()
1685 if (!isNonNegativeIntegerExpr(Node->getIdx(), VD, Ctx)) in getFixits()
1707 const auto *VD = cast<VarDecl>(DREs.front()->getDecl()); in getFixits() local
1709 switch (S.lookup(VD)) { in getFixits()
1791 static SourceLocation getVarDeclIdentifierLoc(const VarDecl *VD) { in getVarDeclIdentifierLoc() argument
1794 return VD->getLocation(); in getVarDeclIdentifierLoc()
1799 getVarDeclIdentifierText(const VarDecl *VD, const SourceManager &SM, in getVarDeclIdentifierText() argument
1801 SourceLocation ParmIdentBeginLoc = getVarDeclIdentifierLoc(VD); in getVarDeclIdentifierText()
1817 static bool hasUnsupportedSpecifiers(const VarDecl *VD, in hasUnsupportedSpecifiers() argument
1821 bool AttrRangeOverlapping = llvm::any_of(VD->attrs(), [&](Attr *At) -> bool { in hasUnsupportedSpecifiers()
1823 VD->getBeginLoc())) && in hasUnsupportedSpecifiers()
1824 !(SM.isBeforeInTranslationUnit(VD->getEndLoc(), in hasUnsupportedSpecifiers()
1827 return VD->isInlineSpecified() || VD->isConstexpr() || in hasUnsupportedSpecifiers()
1828 VD->hasConstantInitialization() || !VD->hasLocalStorage() || in hasUnsupportedSpecifiers()
1854 getPointeeTypeText(const VarDecl *VD, const SourceManager &SM, in getPointeeTypeText() argument
1857 QualType Ty = VD->getType(); in getPointeeTypeText()
1864 TypeLoc TyLoc = VD->getTypeSourceInfo()->getTypeLoc().getUnqualifiedLoc(); in getPointeeTypeText()
1875 assert(isa<ParmVarDecl>(VD) && "An array type shall not be treated as a " in getPointeeTypeText()
1890 SourceLocation IdentLoc = getVarDeclIdentifierLoc(VD); in getPointeeTypeText()
1959 const VarDecl *VD = dyn_cast<VarDecl>(BaseDeclRefExpr->getDecl()); in getFixits() local
1961 if (VD && s.lookup(VD) == FixitStrategy::Kind::Span) { in getFixits()
1962 ASTContext &Ctx = VD->getASTContext(); in getFixits()
2022 const VarDecl *VD = cast<VarDecl>(BaseDeclRefExpr->getDecl()); in getFixits() local
2023 switch (S.lookup(VD)) { in getFixits()
2025 ASTContext &Ctx = VD->getASTContext(); in getFixits()
2068 const auto VD = cast<VarDecl>(Node->getDecl()); in getFixits() local
2069 switch (S.lookup(VD)) { in getFixits()
2072 return createDataFixit(VD->getASTContext(), Node); in getFixits()
2130 if (const VarDecl *VD = dyn_cast<VarDecl>(DREs.front()->getDecl())) { in getFixits() local
2131 if (S.lookup(VD) == FixitStrategy::Kind::Span) { in getFixits()
2135 StringRef varName = VD->getName(); in getFixits()
2136 const ASTContext &Ctx = VD->getASTContext(); in getFixits()
2138 if (!isNonNegativeIntegerExpr(Offset, VD, Ctx)) in getFixits()
2172 if (const VarDecl *VD = dyn_cast<VarDecl>(DREs.front()->getDecl())) { in getFixits() local
2173 if (S.lookup(VD) == FixitStrategy::Kind::Span) { in getFixits()
2176 StringRef varName = VD->getName(); in getFixits()
2177 const ASTContext &Ctx = VD->getASTContext(); in getFixits()
2301 createSpanTypeForVarDecl(const VarDecl *VD, const ASTContext &Ctx) { in createSpanTypeForVarDecl() argument
2302 assert(VD->getType()->isPointerType()); in createSpanTypeForVarDecl()
2306 VD, Ctx.getSourceManager(), Ctx.getLangOpts(), &PteTyQualifiers); in createSpanTypeForVarDecl()
2632 static FixItList fixVariableWithSpan(const VarDecl *VD, in fixVariableWithSpan() argument
2636 const DeclStmt *DS = Tracker.lookupDecl(VD); in fixVariableWithSpan()
2638 DEBUG_NOTE_DECL_FAIL(VD, in fixVariableWithSpan()
2644 DEBUG_NOTE_DECL_FAIL(VD, " : multiple VarDecls"); in fixVariableWithSpan()
2653 return fixLocalVarDeclWithSpan(VD, Ctx, getUserFillPlaceHolder(), Handler); in fixVariableWithSpan()
2730 static FixItList fixVariableWithArray(const VarDecl *VD, in fixVariableWithArray() argument
2734 const DeclStmt *DS = Tracker.lookupDecl(VD); in fixVariableWithArray()
2746 return fixVarDeclWithArray(VD, Ctx, Handler); in fixVariableWithArray()
2752 fixVariable(const VarDecl *VD, FixitStrategy::Kind K, in fixVariable() argument
2756 if (const auto *PVD = dyn_cast<ParmVarDecl>(VD)) { in fixVariable()
2761 DEBUG_NOTE_DECL_FAIL(VD, " : function not currently analyzed"); in fixVariable()
2777 DEBUG_NOTE_DECL_FAIL(VD, " : unsupported function decl"); in fixVariable()
2784 if (VD->getType()->isPointerType()) { in fixVariable()
2785 if (const auto *PVD = dyn_cast<ParmVarDecl>(VD)) in fixVariable()
2788 if (VD->isLocalVarDecl()) in fixVariable()
2789 return fixVariableWithSpan(VD, Tracker, Ctx, Handler); in fixVariable()
2791 DEBUG_NOTE_DECL_FAIL(VD, " : not a pointer"); in fixVariable()
2795 if (VD->isLocalVarDecl() && in fixVariable()
2796 isa<clang::ConstantArrayType>(VD->getType().getCanonicalType())) in fixVariable()
2797 return fixVariableWithArray(VD, Tracker, Ctx, Handler); in fixVariable()
2799 DEBUG_NOTE_DECL_FAIL(VD, " : not a local const-size array"); in fixVariable()
2826 static bool isParameterOf(const VarDecl *VD, const Decl *D) { in isParameterOf() argument
2827 return isa<ParmVarDecl>(VD) && in isParameterOf()
2828 VD->getDeclContext() == dyn_cast<DeclContext>(D); in isParameterOf()
2840 for (const auto &[VD, Ignore] : FixItsForVariable) { in eraseVarsForUnfixableGroupMates()
2841 VarGrpRef Grp = VarGrpMgr.getGroupOfVar(VD); in eraseVarsForUnfixableGroupMates()
2900 for (const auto &[VD, Fixables] : FixablesForAllVars.byVar) { in getFixIts()
2901 FixItsForVariable[VD] = in getFixIts()
2902 fixVariable(VD, S.lookup(VD), D, Tracker, Ctx, Handler); in getFixIts()
2905 if (FixItsForVariable[VD].empty()) { in getFixIts()
2906 FixItsForVariable.erase(VD); in getFixIts()
2913 FixItsForVariable[VD].insert(FixItsForVariable[VD].end(), in getFixIts()
2919 VD, F->getSourceLoc(), in getFixIts()
2923 FixItsForVariable.erase(VD); in getFixIts()
2989 for (const VarDecl *VD : UnsafeVars) { in getNaiveStrategy() local
2990 if (isa<ConstantArrayType>(VD->getType().getCanonicalType())) in getNaiveStrategy()
2991 S.set(VD, FixitStrategy::Kind::Array); in getNaiveStrategy()
2993 S.set(VD, FixitStrategy::Kind::Span); in getNaiveStrategy()
3318 for (const auto &[VD, WarningGadgets] : UnsafeOps.byVar) { in checkUnsafeBufferUsage()
3319 auto FixItsIt = FixItsForVariableGroup.find(VD); in checkUnsafeBufferUsage()
3320 Handler.handleUnsafeVariableGroup(VD, VarGrpMgr, in checkUnsafeBufferUsage()