Lines Matching refs:Exp

400     const Expr *Exp = nullptr;  member
408 bool isReference() { return !Exp; } in isReference()
413 : Dec(D), Exp(E), Ctx(C) {} in VarDefinition()
451 if (VarDefinitions[i].Exp) { in lookupExpr()
453 return VarDefinitions[i].Exp; in lookupExpr()
491 const Expr *Exp = VarDefinitions[i].Exp; in dump() local
496 if (Exp) Exp->dump(); in dump()
533 Context addDefinition(const NamedDecl *D, const Expr *Exp, Context Ctx) { in addDefinition() argument
537 VarDefinitions.push_back(VarDefinition(D, Exp, Ctx)); in addDefinition()
551 Context updateDefinition(const NamedDecl *D, Expr *Exp, Context Ctx) { in updateDefinition() argument
556 VarDefinitions.push_back(VarDefinition(D, Exp, Ctx)); in updateDefinition()
1037 void getMutexIDs(CapExprSet &Mtxs, AttrType *Attr, const Expr *Exp,
1041 void getMutexIDs(CapExprSet &Mtxs, AttrType *Attr, const Expr *Exp,
1188 static const ValueDecl *getValueDecl(const Expr *Exp) { in getValueDecl() argument
1189 if (const auto *CE = dyn_cast<ImplicitCastExpr>(Exp)) in getValueDecl()
1192 if (const auto *DR = dyn_cast<DeclRefExpr>(Exp)) in getValueDecl()
1195 if (const auto *ME = dyn_cast<MemberExpr>(Exp)) in getValueDecl()
1365 const Expr *Exp, const NamedDecl *D, in getMutexIDs() argument
1369 CapabilityExpr Cp = SxBuilder.translateAttrExpr(nullptr, D, Exp, SelfDecl); in getMutexIDs()
1371 warnInvalidLock(Handler, nullptr, D, Exp, ClassifyDiagnostic(Attr)); in getMutexIDs()
1381 CapabilityExpr Cp = SxBuilder.translateAttrExpr(Arg, D, Exp, SelfDecl); in getMutexIDs()
1383 warnInvalidLock(Handler, nullptr, D, Exp, ClassifyDiagnostic(Attr)); in getMutexIDs()
1397 const Expr *Exp, const NamedDecl *D, in getMutexIDs() argument
1417 getMutexIDs(Mtxs, Attr, Exp, D); in getMutexIDs()
1525 const auto *Exp = getTrylockCallExpr(Cond, LVarCtx, Negate); in getEdgeLockset() local
1526 if (!Exp) in getEdgeLockset()
1529 auto *FunDecl = dyn_cast_or_null<NamedDecl>(Exp->getCalleeDecl()); in getEdgeLockset()
1542 Exp, FunDecl, PredBlock, CurrBlock, A->getSuccessValue(), in getEdgeLockset()
1549 getMutexIDs(ExclusiveLocksToAdd, A, Exp, FunDecl, in getEdgeLockset()
1556 getMutexIDs(SharedLocksToAdd, A, Exp, FunDecl, in getEdgeLockset()
1567 SourceLocation Loc = Exp->getExprLoc(); in getEdgeLockset()
1594 void warnIfMutexNotHeld(const NamedDecl *D, const Expr *Exp, AccessKind AK,
1597 void warnIfMutexHeld(const NamedDecl *D, const Expr *Exp, Expr *MutexExp,
1600 void checkAccess(const Expr *Exp, AccessKind AK,
1602 void checkPtAccess(const Expr *Exp, AccessKind AK,
1605 void handleCall(const Expr *Exp, const NamedDecl *D, VarDecl *VD = nullptr);
1619 void VisitCallExpr(const CallExpr *Exp);
1620 void VisitCXXConstructExpr(const CXXConstructExpr *Exp);
1628 void BuildLockset::warnIfMutexNotHeld(const NamedDecl *D, const Expr *Exp, in warnIfMutexNotHeld() argument
1634 CapabilityExpr Cp = Analyzer->SxBuilder.translateAttrExpr(MutexExp, D, Exp); in warnIfMutexNotHeld()
1636 warnInvalidLock(Analyzer->Handler, MutexExp, D, Exp, DiagKind); in warnIfMutexNotHeld()
1690 void BuildLockset::warnIfMutexHeld(const NamedDecl *D, const Expr *Exp, in warnIfMutexHeld() argument
1692 CapabilityExpr Cp = Analyzer->SxBuilder.translateAttrExpr(MutexExp, D, Exp); in warnIfMutexHeld()
1694 warnInvalidLock(Analyzer->Handler, MutexExp, D, Exp, DiagKind); in warnIfMutexHeld()
1703 DiagKind, D->getNameAsString(), Cp.toString(), Exp->getExprLoc()); in warnIfMutexHeld()
1712 void BuildLockset::checkAccess(const Expr *Exp, AccessKind AK, in checkAccess() argument
1714 Exp = Exp->IgnoreImplicit()->IgnoreParenCasts(); in checkAccess()
1716 SourceLocation Loc = Exp->getExprLoc(); in checkAccess()
1720 while (const auto *DRE = dyn_cast<DeclRefExpr>(Exp)) { in checkAccess()
1725 if (E == Exp) in checkAccess()
1727 Exp = E; in checkAccess()
1734 if (const auto *UO = dyn_cast<UnaryOperator>(Exp)) { in checkAccess()
1741 if (const auto *AE = dyn_cast<ArraySubscriptExpr>(Exp)) { in checkAccess()
1746 if (const auto *ME = dyn_cast<MemberExpr>(Exp)) { in checkAccess()
1753 const ValueDecl *D = getValueDecl(Exp); in checkAccess()
1762 warnIfMutexNotHeld(D, Exp, AK, I->getArg(), POK, in checkAccess()
1768 void BuildLockset::checkPtAccess(const Expr *Exp, AccessKind AK, in checkPtAccess() argument
1771 if (const auto *PE = dyn_cast<ParenExpr>(Exp)) { in checkPtAccess()
1772 Exp = PE->getSubExpr(); in checkPtAccess()
1775 if (const auto *CE = dyn_cast<CastExpr>(Exp)) { in checkPtAccess()
1782 Exp = CE->getSubExpr(); in checkPtAccess()
1792 const ValueDecl *D = getValueDecl(Exp); in checkPtAccess()
1798 Exp->getExprLoc()); in checkPtAccess()
1801 warnIfMutexNotHeld(D, Exp, AK, I->getArg(), PtPOK, in checkPtAccess()
1802 ClassifyDiagnostic(I), Exp->getExprLoc()); in checkPtAccess()
1815 void BuildLockset::handleCall(const Expr *Exp, const NamedDecl *D, in handleCall() argument
1817 SourceLocation Loc = Exp->getExprLoc(); in handleCall()
1841 A, Exp, D, VD); in handleCall()
1854 Analyzer->getMutexIDs(AssertLocks, A, Exp, D, VD); in handleCall()
1867 Analyzer->getMutexIDs(AssertLocks, A, Exp, D, VD); in handleCall()
1880 Analyzer->getMutexIDs(AssertLocks, A, Exp, D, VD); in handleCall()
1896 Analyzer->getMutexIDs(GenericLocksToRemove, A, Exp, D, VD); in handleCall()
1898 Analyzer->getMutexIDs(SharedLocksToRemove, A, Exp, D, VD); in handleCall()
1900 Analyzer->getMutexIDs(ExclusiveLocksToRemove, A, Exp, D, VD); in handleCall()
1909 warnIfMutexNotHeld(D, Exp, A->isShared() ? AK_Read : AK_Written, Arg, in handleCall()
1911 Exp->getExprLoc()); in handleCall()
1914 Analyzer->getMutexIDs(ScopedReqsAndExcludes, A, Exp, D, VD); in handleCall()
1922 warnIfMutexHeld(D, Exp, Arg, ClassifyDiagnostic(A)); in handleCall()
1925 Analyzer->getMutexIDs(ScopedReqsAndExcludes, A, Exp, D, VD); in handleCall()
2049 void BuildLockset::VisitCallExpr(const CallExpr *Exp) { in VisitCallExpr() argument
2050 if (const auto *CE = dyn_cast<CXXMemberCallExpr>(Exp)) { in VisitCallExpr()
2066 } else if (const auto *OE = dyn_cast<CXXOperatorCallExpr>(Exp)) { in VisitCallExpr()
2098 examineArguments(Exp->getDirectCallee(), Exp->arg_begin(), Exp->arg_end()); in VisitCallExpr()
2101 auto *D = dyn_cast_or_null<NamedDecl>(Exp->getCalleeDecl()); in VisitCallExpr()
2104 handleCall(Exp, D); in VisitCallExpr()
2107 void BuildLockset::VisitCXXConstructExpr(const CXXConstructExpr *Exp) { in VisitCXXConstructExpr() argument
2108 const CXXConstructorDecl *D = Exp->getConstructor(); in VisitCXXConstructExpr()
2110 const Expr* Source = Exp->getArg(0); in VisitCXXConstructExpr()
2113 examineArguments(D, Exp->arg_begin(), Exp->arg_end()); in VisitCXXConstructExpr()