diff options
author | martinboehme <mboehme@google.com> | 2024-05-08 08:36:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-08 08:36:53 +0200 |
commit | 23ae482bd01d7c966f871ddd620e9a26d6d66299 (patch) | |
tree | 32f510cac243425cdaeb9efd3f838985ec6ecedd /clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp | |
parent | 8755d24cb34b902557469445e1983850e0ce7cc7 (diff) | |
download | llvm-23ae482bd01d7c966f871ddd620e9a26d6d66299.zip llvm-23ae482bd01d7c966f871ddd620e9a26d6d66299.tar.gz llvm-23ae482bd01d7c966f871ddd620e9a26d6d66299.tar.bz2 |
[clang][dataflow] Allow `DataflowAnalysisContext` to use a non-owned `Solver`. (#91316)
For some callers (see change in DataflowAnalysis.h), this is more
convenient.
Diffstat (limited to 'clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp')
-rw-r--r-- | clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp b/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp index e94fd39..4b86daa 100644 --- a/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp +++ b/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp @@ -170,7 +170,7 @@ DataflowAnalysisContext::joinFlowConditions(Atom FirstToken, Solver::Result DataflowAnalysisContext::querySolver( llvm::SetVector<const Formula *> Constraints) { - return S->solve(Constraints.getArrayRef()); + return S.solve(Constraints.getArrayRef()); } bool DataflowAnalysisContext::flowConditionImplies(Atom Token, @@ -338,10 +338,10 @@ static std::unique_ptr<Logger> makeLoggerFromCommandLine() { return Logger::html(std::move(StreamFactory)); } -DataflowAnalysisContext::DataflowAnalysisContext(std::unique_ptr<Solver> S, - Options Opts) - : S(std::move(S)), A(std::make_unique<Arena>()), Opts(Opts) { - assert(this->S != nullptr); +DataflowAnalysisContext::DataflowAnalysisContext( + Solver &S, std::unique_ptr<Solver> &&OwnedSolver, Options Opts) + : S(S), OwnedSolver(std::move(OwnedSolver)), A(std::make_unique<Arena>()), + Opts(Opts) { // If the -dataflow-log command-line flag was set, synthesize a logger. // This is ugly but provides a uniform method for ad-hoc debugging dataflow- // based tools. |