#include <iterator>
#include <optional>
#include <type_traits>
#include <utility>
#include <vector>
#include "clang/AST/ASTContext.h"
#include "clang/Analysis/CFG.h"
#include "clang/Analysis/FlowSensitive/AdornedCFG.h"
#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
#include "clang/Analysis/FlowSensitive/DataflowLattice.h"
#include "clang/Analysis/FlowSensitive/MatchSwitch.h"
#include "clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h"
#include "clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/STLFunctionalExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Errc.h"
#include "llvm/Support/Error.h"
Go to the source code of this file.
|
| clang |
| The JSON file list parser is used to communicate input to InstallAPI.
|
|
| clang::dataflow |
| Dataflow Directional Tag Classes.
|
|
|
template<typename AnalysisT > |
llvm::Expected< std::vector< std::optional< DataflowAnalysisState< typename AnalysisT::Lattice > > > > | clang::dataflow::runDataflowAnalysis (const AdornedCFG &ACFG, AnalysisT &Analysis, const Environment &InitEnv, std::function< void(const CFGElement &, const DataflowAnalysisState< typename AnalysisT::Lattice > &)> PostVisitCFG=nullptr, std::int32_t MaxBlockVisits=20 '000) |
| Performs dataflow analysis and returns a mapping from basic block IDs to dataflow analysis states that model the respective basic blocks. More...
|
|
template<typename AnalysisT > |
auto | clang::dataflow::createAnalysis (ASTContext &ASTCtx, Environment &Env) -> decltype(AnalysisT(ASTCtx, Env)) |
|
template<typename AnalysisT , typename Diagnostic > |
llvm::Expected< llvm::SmallVector< Diagnostic > > | clang::dataflow::diagnoseFunction (const FunctionDecl &FuncDecl, ASTContext &ASTCtx, llvm::function_ref< llvm::SmallVector< Diagnostic >(const CFGElement &, ASTContext &, const TransferStateForDiagnostics< typename AnalysisT::Lattice > &)> Diagnoser, std::int64_t MaxSATIterations=1 '000 '000 '000, std::int32_t MaxBlockVisits=20 '000) |
| Runs a dataflow analysis over the given function and then runs Diagnoser over the results. More...
|
|