Lines Matching refs:FactMan
138 handleRemovalFromIntersection(const FactSet &FSet, FactManager &FactMan,
141 virtual void handleLock(FactSet &FSet, FactManager &FactMan,
144 virtual void handleUnlock(FactSet &FSet, FactManager &FactMan,
198 bool isEmpty(FactManager &FactMan) const { in isEmpty()
200 if (!FactMan[FID].negative()) in isEmpty()
864 handleRemovalFromIntersection(const FactSet &FSet, FactManager &FactMan, in handleRemovalFromIntersection() argument
873 void handleLock(FactSet &FSet, FactManager &FactMan, const FactEntry &entry, in handleLock() argument
879 void handleUnlock(FactSet &FSet, FactManager &FactMan, in handleUnlock() argument
883 FSet.removeLock(FactMan, Cp); in handleUnlock()
885 FSet.addLock(FactMan, std::make_unique<LockableFactEntry>( in handleUnlock()
923 handleRemovalFromIntersection(const FactSet &FSet, FactManager &FactMan, in handleRemovalFromIntersection() argument
927 const auto *Entry = FSet.findLock(FactMan, UnderlyingMutex.Cap); in handleRemovalFromIntersection()
939 void handleLock(FactSet &FSet, FactManager &FactMan, const FactEntry &entry, in handleLock() argument
943 lock(FSet, FactMan, UnderlyingMutex.Cap, entry.kind(), entry.loc(), in handleLock()
946 unlock(FSet, FactMan, UnderlyingMutex.Cap, entry.loc(), &Handler); in handleLock()
950 void handleUnlock(FactSet &FSet, FactManager &FactMan, in handleUnlock() argument
960 unlock(FSet, FactMan, UnderlyingMutex.Cap, UnlockLoc, TSHandler); in handleUnlock()
965 lock(FSet, FactMan, UnderlyingMutex.Cap, kind, UnlockLoc, TSHandler); in handleUnlock()
969 FSet.removeLock(FactMan, Cp); in handleUnlock()
973 void lock(FactSet &FSet, FactManager &FactMan, const CapabilityExpr &Cp, in lock() argument
976 if (const FactEntry *Fact = FSet.findLock(FactMan, Cp)) { in lock()
981 FSet.removeLock(FactMan, !Cp); in lock()
982 FSet.addLock(FactMan, in lock()
987 void unlock(FactSet &FSet, FactManager &FactMan, const CapabilityExpr &Cp, in unlock() argument
989 if (FSet.findLock(FactMan, Cp)) { in unlock()
990 FSet.removeLock(FactMan, Cp); in unlock()
991 FSet.addLock(FactMan, std::make_unique<LockableFactEntry>( in unlock()
995 if (const FactEntry *Neg = FSet.findLock(FactMan, !Cp)) in unlock()
1014 FactManager FactMan; member in __anon721e4a080a11::ThreadSafetyAnalyzer
1159 if (FSet.containsMutexDecl(Analyzer.FactMan, Vdb)) { in checkBeforeAfter()
1254 const FactEntry *Nen = FSet.findLock(FactMan, NegC); in addLock()
1256 FSet.removeLock(FactMan, NegC); in addLock()
1273 if (const FactEntry *Cp = FSet.findLock(FactMan, *Entry)) { in addLock()
1275 Cp->handleLock(FSet, FactMan, *Entry, Handler); in addLock()
1277 FSet.addLock(FactMan, std::move(Entry)); in addLock()
1289 const FactEntry *LDat = FSet.findLock(FactMan, Cp); in removeLock()
1292 if (const FactEntry *Neg = FSet.findLock(FactMan, !Cp)) in removeLock()
1306 LDat->handleUnlock(FSet, FactMan, Cp, UnlockLoc, FullyRemove, Handler); in removeLock()
1593 const FactEntry *LDat = FSet.findLock(Analyzer->FactMan, !Cp); in warnIfMutexNotHeld()
1606 LDat = FSet.findLock(Analyzer->FactMan, Cp); in warnIfMutexNotHeld()
1613 const FactEntry *LDat = FSet.findLockUniv(Analyzer->FactMan, Cp); in warnIfMutexNotHeld()
1617 LDat = FSet.findPartialMatch(Analyzer->FactMan, Cp); in warnIfMutexNotHeld()
1651 const FactEntry *LDat = FSet.findLock(Analyzer->FactMan, Cp); in warnIfMutexHeld()
1719 if (D->hasAttr<GuardedVarAttr>() && FSet.isEmpty(Analyzer->FactMan)) { in checkAccess()
1757 if (D->hasAttr<PtGuardedVarAttr>() && FSet.isEmpty(Analyzer->FactMan)) in checkPtAccess()
2183 const FactEntry &ExitFact = FactMan[Fact]; in intersectAndWarn()
2185 FactSet::iterator EntryIt = EntrySet.findLockIter(FactMan, ExitFact); in intersectAndWarn()
2187 if (join(FactMan[*EntryIt], ExitFact, in intersectAndWarn()
2191 ExitFact.handleRemovalFromIntersection(ExitSet, FactMan, JoinLoc, in intersectAndWarn()
2198 const FactEntry *EntryFact = &FactMan[Fact]; in intersectAndWarn()
2199 const FactEntry *ExitFact = ExitSet.findLock(FactMan, *EntryFact); in intersectAndWarn()
2203 EntryFact->handleRemovalFromIntersection(EntrySetOrig, FactMan, JoinLoc, in intersectAndWarn()
2206 EntrySet.removeLock(FactMan, *EntryFact); in intersectAndWarn()
2474 ExpectedExitSet.addLock(FactMan, std::make_unique<LockableFactEntry>( in runAnalysis()
2477 ExpectedExitSet.addLock(FactMan, std::make_unique<LockableFactEntry>( in runAnalysis()
2480 ExpectedExitSet.removeLock(FactMan, Lock); in runAnalysis()