|
clang 23.0.0git
|
Typed intermediate that concrete derived analyses inherit from. More...
#include "clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h"
Public Member Functions | |
| AnalysisName | analysisName () const final |
| Used by AnalysisRegistry::Add to derive the registry entry name. | |
| const std::vector< AnalysisName > & | dependencyNames () const final |
| AnalysisNames of all AnalysisResult dependencies. | |
| virtual llvm::Error | initialize (const DepResultTs &...)=0 |
| Called once with the fixed dependency results before the step() loop. | |
| virtual llvm::Expected< bool > | step ()=0 |
| Performs one step. | |
| virtual llvm::Error | finalize () |
| Called after the step() loop converges. Override for post-processing. | |
| Public Member Functions inherited from clang::ssaf::AnalysisBase | |
| virtual | ~AnalysisBase ()=default |
Protected Member Functions | |
| const ResultT & | result () const & |
| Read-only access to the result being built. | |
| ResultT & | result () & |
| Mutable access to the result being built. | |
| Protected Member Functions inherited from clang::ssaf::DerivedAnalysisBase | |
| DerivedAnalysisBase () | |
| Protected Member Functions inherited from clang::ssaf::AnalysisBase | |
| AnalysisBase (Kind K) | |
Friends | |
| class | AnalysisRegistry |
Typed intermediate that concrete derived analyses inherit from.
Concrete analyses must implement: llvm::Error initialize(const DepResultTs &...) override; llvm::Expected<bool> step() override; and may override finalize().
Dependencies are fixed for the lifetime of the analysis: initialize() binds them once, step() is called until it returns false, and finalize() post-processes after convergence.
Definition at line 72 of file DerivedAnalysis.h.
|
inlinefinalvirtual |
Used by AnalysisRegistry::Add to derive the registry entry name.
Implements clang::ssaf::AnalysisBase.
Definition at line 89 of file DerivedAnalysis.h.
|
inlinefinalvirtual |
AnalysisNames of all AnalysisResult dependencies.
Implements clang::ssaf::AnalysisBase.
Definition at line 91 of file DerivedAnalysis.h.
|
inlinevirtual |
Called after the step() loop converges. Override for post-processing.
Reimplemented from clang::ssaf::DerivedAnalysisBase.
Definition at line 105 of file DerivedAnalysis.h.
|
pure virtual |
Called once with the fixed dependency results before the step() loop.
|
inlineprotected |
Mutable access to the result being built.
Definition at line 112 of file DerivedAnalysis.h.
|
inlineprotected |
Read-only access to the result being built.
Definition at line 109 of file DerivedAnalysis.h.
|
pure virtual |
Performs one step.
Returns true if another step is needed; false when converged. Single-step analyses always return false.
Implements clang::ssaf::DerivedAnalysisBase.
|
friend |
Definition at line 82 of file DerivedAnalysis.h.
References AnalysisRegistry.
Referenced by AnalysisRegistry.