|
clang 23.0.0git
|
Orchestrates whole-program analysis over an LUSummary. More...
#include "clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisDriver.h"
Public Member Functions | |
| AnalysisDriver (std::unique_ptr< LUSummary > LU) | |
| llvm::Expected< WPASuite > | run () && |
| Runs all registered analyses in topological dependency order. | |
| llvm::Expected< WPASuite > | run (llvm::ArrayRef< AnalysisName > Names) const |
| Runs only the named analyses (plus their transitive dependencies). | |
| template<typename... ResultTs> | |
| llvm::Expected< WPASuite > | run () const |
| Type-safe variant of run(names). | |
Orchestrates whole-program analysis over an LUSummary.
Three run() patterns are supported:
Definition at line 43 of file AnalysisDriver.h.
|
explicit |
Definition at line 23 of file AnalysisDriver.cpp.
|
nodiscard |
Runs all registered analyses in topological dependency order.
Returns an error if any registered analysis has no matching entity data in the LUSummary.
Requires an rvalue driver (std::move(Driver).run()) because this exhausts all remaining LUSummary data.
Definition at line 196 of file AnalysisDriver.cpp.
References clang::ssaf::AnalysisRegistry::names().
|
inlinenodiscard |
Type-safe variant of run(names).
Derives names from ResultTs::analysisName().
Definition at line 67 of file AnalysisDriver.h.
References run().
Referenced by run().
|
nodiscard |
Runs only the named analyses (plus their transitive dependencies).
Returns an error if any listed AnalysisName has no registered analysis or if a required SummaryAnalysis has no matching entity data in the LUSummary. The EntityIdTable is copied (not moved) so the driver remains usable for subsequent calls.
Definition at line 205 of file AnalysisDriver.cpp.