Lines Matching refs:Exp

397     const Expr *Exp = nullptr;  member
405 bool isReference() { return !Exp; } in isReference()
410 : Dec(D), Exp(E), Ctx(C) {} in VarDefinition()
447 if (VarDefinitions[i].Exp) { in lookupExpr()
449 return VarDefinitions[i].Exp; in lookupExpr()
487 const Expr *Exp = VarDefinitions[i].Exp; in dump() local
492 if (Exp) Exp->dump(); in dump()
529 Context addDefinition(const NamedDecl *D, const Expr *Exp, Context Ctx) { in addDefinition() argument
533 VarDefinitions.push_back(VarDefinition(D, Exp, Ctx)); in addDefinition()
547 Context updateDefinition(const NamedDecl *D, Expr *Exp, Context Ctx) { in updateDefinition() argument
552 VarDefinitions.push_back(VarDefinition(D, Exp, Ctx)); in updateDefinition()
1031 void getMutexIDs(CapExprSet &Mtxs, AttrType *Attr, const Expr *Exp,
1035 void getMutexIDs(CapExprSet &Mtxs, AttrType *Attr, const Expr *Exp,
1184 static const ValueDecl *getValueDecl(const Expr *Exp) { in getValueDecl() argument
1185 if (const auto *CE = dyn_cast<ImplicitCastExpr>(Exp)) in getValueDecl()
1188 if (const auto *DR = dyn_cast<DeclRefExpr>(Exp)) in getValueDecl()
1191 if (const auto *ME = dyn_cast<MemberExpr>(Exp)) in getValueDecl()
1313 const Expr *Exp, const NamedDecl *D, in getMutexIDs() argument
1317 CapabilityExpr Cp = SxBuilder.translateAttrExpr(nullptr, D, Exp, Self); in getMutexIDs()
1319 warnInvalidLock(Handler, nullptr, D, Exp, Cp.getKind()); in getMutexIDs()
1329 CapabilityExpr Cp = SxBuilder.translateAttrExpr(Arg, D, Exp, Self); in getMutexIDs()
1331 warnInvalidLock(Handler, nullptr, D, Exp, Cp.getKind()); in getMutexIDs()
1345 const Expr *Exp, const NamedDecl *D, in getMutexIDs() argument
1365 getMutexIDs(Mtxs, Attr, Exp, D); in getMutexIDs()
1472 const auto *Exp = getTrylockCallExpr(Cond, LVarCtx, Negate); in getEdgeLockset() local
1473 if (!Exp) in getEdgeLockset()
1476 auto *FunDecl = dyn_cast_or_null<NamedDecl>(Exp->getCalleeDecl()); in getEdgeLockset()
1489 Exp, FunDecl, PredBlock, CurrBlock, A->getSuccessValue(), in getEdgeLockset()
1495 getMutexIDs(ExclusiveLocksToAdd, A, Exp, FunDecl, PredBlock, CurrBlock, in getEdgeLockset()
1501 getMutexIDs(SharedLocksToAdd, A, Exp, FunDecl, PredBlock, CurrBlock, in getEdgeLockset()
1511 SourceLocation Loc = Exp->getExprLoc(); in getEdgeLockset()
1538 void warnIfMutexNotHeld(const NamedDecl *D, const Expr *Exp, AccessKind AK,
1541 void warnIfMutexHeld(const NamedDecl *D, const Expr *Exp, Expr *MutexExp,
1544 void checkAccess(const Expr *Exp, AccessKind AK,
1546 void checkPtAccess(const Expr *Exp, AccessKind AK,
1549 void handleCall(const Expr *Exp, const NamedDecl *D,
1565 void VisitCallExpr(const CallExpr *Exp);
1566 void VisitCXXConstructExpr(const CXXConstructExpr *Exp);
1568 void VisitMaterializeTemporaryExpr(const MaterializeTemporaryExpr *Exp);
1575 void BuildLockset::warnIfMutexNotHeld(const NamedDecl *D, const Expr *Exp, in warnIfMutexNotHeld() argument
1583 Analyzer->SxBuilder.translateAttrExpr(MutexExp, D, Exp, Self); in warnIfMutexNotHeld()
1585 warnInvalidLock(Analyzer->Handler, MutexExp, D, Exp, Cp.getKind()); in warnIfMutexNotHeld()
1639 void BuildLockset::warnIfMutexHeld(const NamedDecl *D, const Expr *Exp, in warnIfMutexHeld() argument
1643 Analyzer->SxBuilder.translateAttrExpr(MutexExp, D, Exp, Self); in warnIfMutexHeld()
1645 warnInvalidLock(Analyzer->Handler, MutexExp, D, Exp, Cp.getKind()); in warnIfMutexHeld()
1663 void BuildLockset::checkAccess(const Expr *Exp, AccessKind AK, in checkAccess() argument
1665 Exp = Exp->IgnoreImplicit()->IgnoreParenCasts(); in checkAccess()
1667 SourceLocation Loc = Exp->getExprLoc(); in checkAccess()
1671 while (const auto *DRE = dyn_cast<DeclRefExpr>(Exp)) { in checkAccess()
1676 if (E == Exp) in checkAccess()
1678 Exp = E; in checkAccess()
1685 if (const auto *UO = dyn_cast<UnaryOperator>(Exp)) { in checkAccess()
1692 if (const auto *BO = dyn_cast<BinaryOperator>(Exp)) { in checkAccess()
1703 if (const auto *AE = dyn_cast<ArraySubscriptExpr>(Exp)) { in checkAccess()
1708 if (const auto *ME = dyn_cast<MemberExpr>(Exp)) { in checkAccess()
1715 const ValueDecl *D = getValueDecl(Exp); in checkAccess()
1724 warnIfMutexNotHeld(D, Exp, AK, I->getArg(), POK, nullptr, Loc); in checkAccess()
1729 void BuildLockset::checkPtAccess(const Expr *Exp, AccessKind AK, in checkPtAccess() argument
1732 if (const auto *PE = dyn_cast<ParenExpr>(Exp)) { in checkPtAccess()
1733 Exp = PE->getSubExpr(); in checkPtAccess()
1736 if (const auto *CE = dyn_cast<CastExpr>(Exp)) { in checkPtAccess()
1743 Exp = CE->getSubExpr(); in checkPtAccess()
1753 const ValueDecl *D = getValueDecl(Exp); in checkPtAccess()
1758 Analyzer->Handler.handleNoMutexHeld(D, PtPOK, AK, Exp->getExprLoc()); in checkPtAccess()
1761 warnIfMutexNotHeld(D, Exp, AK, I->getArg(), PtPOK, nullptr, in checkPtAccess()
1762 Exp->getExprLoc()); in checkPtAccess()
1779 void BuildLockset::handleCall(const Expr *Exp, const NamedDecl *D, in handleCall() argument
1787 if (Exp) { in handleCall()
1789 const auto *TagT = Exp->getType()->getAs<TagType>(); in handleCall()
1790 if (TagT && Exp->isPRValue()) { in handleCall()
1792 Analyzer->SxBuilder.createThisPlaceholder(Exp); in handleCall()
1794 ConstructedObjects.insert({Exp, Placeholder.first}); in handleCall()
1796 if (isa<CXXConstructExpr>(Exp)) in handleCall()
1803 Loc = Exp->getExprLoc(); in handleCall()
1814 A, Exp, D, Self); in handleCall()
1825 Analyzer->getMutexIDs(AssertLocks, A, Exp, D, Self); in handleCall()
1836 Analyzer->getMutexIDs(AssertLocks, A, Exp, D, Self); in handleCall()
1847 Analyzer->getMutexIDs(AssertLocks, A, Exp, D, Self); in handleCall()
1861 Analyzer->getMutexIDs(GenericLocksToRemove, A, Exp, D, Self); in handleCall()
1863 Analyzer->getMutexIDs(SharedLocksToRemove, A, Exp, D, Self); in handleCall()
1865 Analyzer->getMutexIDs(ExclusiveLocksToRemove, A, Exp, D, Self); in handleCall()
1872 warnIfMutexNotHeld(D, Exp, A->isShared() ? AK_Read : AK_Written, Arg, in handleCall()
1876 Analyzer->getMutexIDs(ScopedReqsAndExcludes, A, Exp, D, Self); in handleCall()
1884 warnIfMutexHeld(D, Exp, Arg, Self, Loc); in handleCall()
1887 Analyzer->getMutexIDs(ScopedReqsAndExcludes, A, Exp, D, Self); in handleCall()
2003 void BuildLockset::VisitCallExpr(const CallExpr *Exp) { in VisitCallExpr() argument
2004 if (const auto *CE = dyn_cast<CXXMemberCallExpr>(Exp)) { in VisitCallExpr()
2020 } else if (const auto *OE = dyn_cast<CXXOperatorCallExpr>(Exp)) { in VisitCallExpr()
2063 examineArguments(Exp->getDirectCallee(), Exp->arg_begin(), Exp->arg_end()); in VisitCallExpr()
2066 auto *D = dyn_cast_or_null<NamedDecl>(Exp->getCalleeDecl()); in VisitCallExpr()
2069 handleCall(Exp, D); in VisitCallExpr()
2072 void BuildLockset::VisitCXXConstructExpr(const CXXConstructExpr *Exp) { in VisitCXXConstructExpr() argument
2073 const CXXConstructorDecl *D = Exp->getConstructor(); in VisitCXXConstructExpr()
2075 const Expr* Source = Exp->getArg(0); in VisitCXXConstructExpr()
2078 examineArguments(D, Exp->arg_begin(), Exp->arg_end()); in VisitCXXConstructExpr()
2081 handleCall(Exp, D); in VisitCXXConstructExpr()
2123 const MaterializeTemporaryExpr *Exp) { in VisitMaterializeTemporaryExpr() argument
2124 if (const ValueDecl *ExtD = Exp->getExtendingDecl()) { in VisitMaterializeTemporaryExpr()
2126 ConstructedObjects.find(UnpackConstruction(Exp->getSubExpr())); in VisitMaterializeTemporaryExpr()