================
@@ -0,0 +1,108 @@
+
+#include "clang/Analysis/Analyses/LifetimeSafety/MovedLoans.h"
+#include "Dataflow.h"
+#include "clang/Analysis/Analyses/LifetimeSafety/Facts.h"
+#include "clang/Analysis/Analyses/LifetimeSafety/LoanPropagation.h"
+#include "clang/Analysis/Analyses/LifetimeSafety/Loans.h"
+#include "clang/Analysis/Analyses/LifetimeSafety/Utils.h"
+
+namespace clang::lifetimes::internal {
+namespace {
+struct Lattice {
+ MovedLoansMap MovedLoans = MovedLoansMap(nullptr);
+
+ explicit Lattice(MovedLoansMap MovedLoans) : MovedLoans(MovedLoans) {}
+
+ Lattice() = default;
+
+ bool operator==(const Lattice &Other) const {
+ return MovedLoans == Other.MovedLoans;
+ }
+ bool operator!=(const Lattice &Other) const { return !(*this == Other); }
+};
+
+class AnalysisImpl
+ : public DataflowAnalysis<AnalysisImpl, Lattice, Direction::Forward> {
+public:
+ AnalysisImpl(const CFG &C, AnalysisDeclContext &AC, FactManager &F,
+ const LoanPropagationAnalysis &LoanPropagation,
+ const LoanManager &LoanMgr,
+ MovedLoansMap::Factory &MovedLoansMapFactory)
+ : DataflowAnalysis(C, AC, F), LoanPropagation(LoanPropagation),
+ LoanMgr(LoanMgr), MovedLoansMapFactory(MovedLoansMapFactory) {}
+
+ using Base::transfer;
+
+ StringRef getAnalysisName() const { return "MovedLoans"; }
+
+ Lattice getInitialState() { return Lattice{}; }
+
+ // TODO: Doc.
----------------
Xazax-hun wrote:
Nit: TODO.
https://github.com/llvm/llvm-project/pull/178670
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits