Lines Matching defs:FactEntry
104 class FactEntry : public CapabilityExpr {
129 FactEntry(FactEntryKind FK, const CapabilityExpr &CE, LockKind LK,
132 virtual ~FactEntry() = default;
147 const FactEntry &entry,
166 std::vector<std::unique_ptr<const FactEntry>> Facts;
169 FactID newFact(std::unique_ptr<FactEntry> Entry) {
174 const FactEntry &operator[](FactID F) const { return *Facts[F]; }
213 FactID addLock(FactManager &FM, std::unique_ptr<FactEntry> Entry) {
244 const FactEntry *findLock(FactManager &FM, const CapabilityExpr &CapE) const {
251 const FactEntry *findLockUniv(FactManager &FM,
259 const FactEntry *findPartialMatch(FactManager &FM,
861 class LockableFactEntry : public FactEntry {
865 : FactEntry(Lockable, CE, LK, Loc, Src) {}
877 void handleLock(FactSet &FSet, FactManager &FactMan, const FactEntry &entry,
894 static bool classof(const FactEntry *A) {
899 class ScopedLockableFactEntry : public FactEntry {
917 : FactEntry(ScopedLockable, CE, LK_Exclusive, Loc, Src) {}
958 void handleLock(FactSet &FSet, FactManager &FactMan, const FactEntry &entry,
991 static bool classof(const FactEntry *A) {
999 if (const FactEntry *Fact = FSet.findLock(FactMan, Cp)) {
1018 if (const FactEntry *Neg = FSet.findLock(FactMan, !Cp))
1050 void addLock(FactSet &FSet, std::unique_ptr<FactEntry> Entry,
1072 bool join(const FactEntry &a, const FactEntry &b, bool CanModify);
1283 std::unique_ptr<FactEntry> Entry,
1291 const FactEntry *Nen = FSet.findLock(FactMan, NegC);
1310 if (const FactEntry *Cp = FSet.findLock(FactMan, *Entry)) {
1326 const FactEntry *LDat = FSet.findLock(FactMan, Cp);
1329 if (const FactEntry *Neg = FSet.findLock(FactMan, !Cp))
1629 const FactEntry *LDat = FSet.findLock(FactMan, !Cp);
1649 const FactEntry *LDat = FSet.findLockUniv(FactMan, Cp);
1686 const FactEntry *LDat = FSet.findLock(FactMan, Cp);
1869 AssertLock, LK_Exclusive, Loc, FactEntry::Asserted));
1880 AssertLock, LK_Shared, Loc, FactEntry::Asserted));
1892 Loc, FactEntry::Asserted));
2007 const FactEntry *Fact = FSet.findLock(Analyzer->FactMan, Cp);
2045 FactEntry::SourceKind Source =
2046 !Scp.shouldIgnore() ? FactEntry::Managed : FactEntry::Acquired;
2057 Scp, Loc, FactEntry::Acquired);
2295 bool ThreadSafetyAnalyzer::join(const FactEntry &A, const FactEntry &B,
2339 const FactEntry &ExitFact = FactMan[Fact];
2354 const FactEntry *EntryFact = &FactMan[Fact];
2355 const FactEntry *ExitFact = ExitSet.findLock(FactMan, *EntryFact);
2515 Cp, Param->getLocation(), FactEntry::Declared);
2524 FactEntry::Declared);
2529 FactEntry::Declared);