Lines Matching refs:FSet
138 handleRemovalFromIntersection(const FactSet &FSet, FactManager &FactMan,
141 virtual void handleLock(FactSet &FSet, FactManager &FactMan,
144 virtual void handleUnlock(FactSet &FSet, FactManager &FactMan,
303 const FactSet& FSet,
863 handleRemovalFromIntersection(const FactSet &FSet, FactManager &FactMan, in handleRemovalFromIntersection() argument
872 void handleLock(FactSet &FSet, FactManager &FactMan, const FactEntry &entry, in handleLock() argument
878 void handleUnlock(FactSet &FSet, FactManager &FactMan, in handleUnlock() argument
882 FSet.removeLock(FactMan, Cp); in handleUnlock()
884 FSet.addLock(FactMan, std::make_unique<LockableFactEntry>( in handleUnlock()
922 handleRemovalFromIntersection(const FactSet &FSet, FactManager &FactMan, in handleRemovalFromIntersection() argument
926 const auto *Entry = FSet.findLock(FactMan, UnderlyingMutex.Cap); in handleRemovalFromIntersection()
938 void handleLock(FactSet &FSet, FactManager &FactMan, const FactEntry &entry, in handleLock() argument
942 lock(FSet, FactMan, UnderlyingMutex.Cap, entry.kind(), entry.loc(), in handleLock()
945 unlock(FSet, FactMan, UnderlyingMutex.Cap, entry.loc(), &Handler); in handleLock()
949 void handleUnlock(FactSet &FSet, FactManager &FactMan, in handleUnlock() argument
959 unlock(FSet, FactMan, UnderlyingMutex.Cap, UnlockLoc, TSHandler); in handleUnlock()
964 lock(FSet, FactMan, UnderlyingMutex.Cap, kind, UnlockLoc, TSHandler); in handleUnlock()
968 FSet.removeLock(FactMan, Cp); in handleUnlock()
972 void lock(FactSet &FSet, FactManager &FactMan, const CapabilityExpr &Cp, in lock() argument
975 if (const FactEntry *Fact = FSet.findLock(FactMan, Cp)) { in lock()
980 FSet.removeLock(FactMan, !Cp); in lock()
981 FSet.addLock(FactMan, in lock()
986 void unlock(FactSet &FSet, FactManager &FactMan, const CapabilityExpr &Cp, in unlock() argument
988 if (FSet.findLock(FactMan, Cp)) { in unlock()
989 FSet.removeLock(FactMan, Cp); in unlock()
990 FSet.addLock(FactMan, std::make_unique<LockableFactEntry>( in unlock()
994 if (const FactEntry *Neg = FSet.findLock(FactMan, !Cp)) in unlock()
1026 void addLock(FactSet &FSet, std::unique_ptr<FactEntry> Entry,
1028 void removeLock(FactSet &FSet, const CapabilityExpr &CapE,
1061 void warnIfMutexNotHeld(const FactSet &FSet, const NamedDecl *D,
1065 void warnIfMutexHeld(const FactSet &FSet, const NamedDecl *D, const Expr *Exp,
1069 void checkAccess(const FactSet &FSet, const Expr *Exp, AccessKind AK,
1071 void checkPtAccess(const FactSet &FSet, const Expr *Exp, AccessKind AK,
1147 const FactSet& FSet, in checkBeforeAfter() argument
1173 if (FSet.containsMutexDecl(Analyzer.FactMan, Vdb)) { in checkBeforeAfter()
1259 void ThreadSafetyAnalyzer::addLock(FactSet &FSet, in addLock() argument
1268 const FactEntry *Nen = FSet.findLock(FactMan, NegC); in addLock()
1270 FSet.removeLock(FactMan, NegC); in addLock()
1282 GlobalBeforeSet->checkBeforeAfter(Entry->valueDecl(), FSet, *this, in addLock()
1287 if (const FactEntry *Cp = FSet.findLock(FactMan, *Entry)) { in addLock()
1289 Cp->handleLock(FSet, FactMan, *Entry, Handler); in addLock()
1291 FSet.addLock(FactMan, std::move(Entry)); in addLock()
1297 void ThreadSafetyAnalyzer::removeLock(FactSet &FSet, const CapabilityExpr &Cp, in removeLock() argument
1303 const FactEntry *LDat = FSet.findLock(FactMan, Cp); in removeLock()
1306 if (const FactEntry *Neg = FSet.findLock(FactMan, !Cp)) in removeLock()
1320 LDat->handleUnlock(FSet, FactMan, Cp, UnlockLoc, FullyRemove, Handler); in removeLock()
1545 FactSet FSet; member in __anoneb5110e70d11::BuildLockset
1555 Analyzer->checkAccess(FSet, Exp, AK, POK); in checkAccess()
1559 Analyzer->checkPtAccess(FSet, Exp, AK, POK); in checkPtAccess()
1573 : ConstStmtVisitor<BuildLockset>(), Analyzer(Anlzr), FSet(Info.EntrySet), in BuildLockset()
1592 const FactSet &FSet, const NamedDecl *D, const Expr *Exp, AccessKind AK, in warnIfMutexNotHeld() argument
1606 const FactEntry *LDat = FSet.findLock(FactMan, !Cp); in warnIfMutexNotHeld()
1619 LDat = FSet.findLock(FactMan, Cp); in warnIfMutexNotHeld()
1626 const FactEntry *LDat = FSet.findLockUniv(FactMan, Cp); in warnIfMutexNotHeld()
1630 LDat = FSet.findPartialMatch(FactMan, Cp); in warnIfMutexNotHeld()
1650 void ThreadSafetyAnalyzer::warnIfMutexHeld(const FactSet &FSet, in warnIfMutexHeld() argument
1663 const FactEntry *LDat = FSet.findLock(FactMan, Cp); in warnIfMutexHeld()
1675 void ThreadSafetyAnalyzer::checkAccess(const FactSet &FSet, const Expr *Exp, in checkAccess() argument
1701 checkPtAccess(FSet, UO->getSubExpr(), AK, POK); in checkAccess()
1708 return checkAccess(FSet, BO->getLHS(), AK, POK); in checkAccess()
1710 return checkPtAccess(FSet, BO->getLHS(), AK, POK); in checkAccess()
1717 checkPtAccess(FSet, AE->getLHS(), AK, POK); in checkAccess()
1723 checkPtAccess(FSet, ME->getBase(), AK, POK); in checkAccess()
1725 checkAccess(FSet, ME->getBase(), AK, POK); in checkAccess()
1732 if (D->hasAttr<GuardedVarAttr>() && FSet.isEmpty(FactMan)) { in checkAccess()
1737 warnIfMutexNotHeld(FSet, D, Exp, AK, I->getArg(), POK, nullptr, Loc); in checkAccess()
1742 void ThreadSafetyAnalyzer::checkPtAccess(const FactSet &FSet, const Expr *Exp, in checkPtAccess() argument
1754 checkAccess(FSet, CE->getSubExpr(), AK, POK); in checkPtAccess()
1773 if (D->hasAttr<PtGuardedVarAttr>() && FSet.isEmpty(FactMan)) in checkPtAccess()
1777 warnIfMutexNotHeld(FSet, D, Exp, AK, I->getArg(), PtPOK, nullptr, in checkPtAccess()
1845 FSet, std::make_unique<LockableFactEntry>( in handleCall()
1856 FSet, std::make_unique<LockableFactEntry>( in handleCall()
1866 Analyzer->addLock(FSet, std::make_unique<LockableFactEntry>( in handleCall()
1889 Analyzer->warnIfMutexNotHeld(FSet, D, Exp, in handleCall()
1902 Analyzer->warnIfMutexHeld(FSet, D, Exp, Arg, Self, Loc); in handleCall()
1920 Analyzer->removeLock(FSet, M, Loc, Dtor, LK_Exclusive); in handleCall()
1922 Analyzer->removeLock(FSet, M, Loc, Dtor, LK_Shared); in handleCall()
1924 Analyzer->removeLock(FSet, M, Loc, Dtor, LK_Generic); in handleCall()
1930 Analyzer->addLock(FSet, std::make_unique<LockableFactEntry>(M, LK_Exclusive, in handleCall()
1934 FSet, std::make_unique<LockableFactEntry>(M, LK_Shared, Loc, Source)); in handleCall()
1949 Analyzer->addLock(FSet, std::move(ScopedEntry)); in handleCall()
2506 CurrBlockInfo->ExitSet = LocksetBuilder.FSet; in runAnalysis()