Owns objects that encompass the state of a program and stores context that is used during dataflow analysis. More...
#include "clang/Analysis/FlowSensitive/DataflowAnalysisContext.h"
RecordStorageLocation
of a given type.
Type
.
RecordStorageLocation
for the given type and with the given fields.
D
.
E
.
Constraint
to current and future flow conditions in this context.
Constraint
to the flow condition identified by Token
.
Token
and returns its token.
FirstToken
and SecondToken
, and returns its token.
Token
imply that F
is true.
Token
still allow F
to be true.
Val1
is equivalent to Val2
.
AdornedCFG
registered for F
, if any.
Constraints
.
Type
, limited to the set of fields modeled by this context.
Owns objects that encompass the state of a program and stores context that is used during dataflow analysis.
Definition at line 47 of file DataflowAnalysisContext.h.
◆ DataflowAnalysisContext() [1/2] clang::dataflow::DataflowAnalysisContext::DataflowAnalysisContext ( std::unique_ptr< Solver > S, Options Opts =Options{ std::nullopt, nullptr}
) inline ◆ DataflowAnalysisContext() [2/2] clang::dataflow::DataflowAnalysisContext::DataflowAnalysisContext ( Solver & S, Options Opts = Options{ std::nullopt, nullptr}
) inline ◆ ~DataflowAnalysisContext() clang::dataflow::DataflowAnalysisContext::~DataflowAnalysisContext ( ) default ◆ addFlowConditionConstraint() void clang::dataflow::DataflowAnalysisContext::addFlowConditionConstraint ( Atom Token, const Formula & Constraint ) ◆ addInvariant() void clang::dataflow::DataflowAnalysisContext::addInvariant ( const Formula & Constraint )
Adds Constraint
to current and future flow conditions in this context.
Invariants must contain only flow-insensitive information, i.e. facts that are true on all paths through the program. Information can be added eagerly (when analysis begins), or lazily (e.g. when values are first used). The analysis must be careful that the same information is added regardless of which order blocks are analyzed in.
Definition at line 136 of file DataflowAnalysisContext.cpp.
References clang::Invariant.
◆ arena() Arena & clang::dataflow::DataflowAnalysisContext::arena ( ) inline ◆ createRecordStorageLocation() ◆ createStorageLocation() ◆ dumpFlowCondition() void clang::dataflow::DataflowAnalysisContext::dumpFlowCondition ( Atom Token, llvm::raw_ostream & OS =llvm::dbgs()
) ◆ equivalentFormulas() bool clang::dataflow::DataflowAnalysisContext::equivalentFormulas ( const Formula & Val1, const Formula & Val2 )
Returns true if Val1
is equivalent to Val2
.
Note: This function doesn't take into account constraints on Val1
and Val2
imposed by the flow condition.
Definition at line 206 of file DataflowAnalysisContext.cpp.
◆ flowConditionAllows() bool clang::dataflow::DataflowAnalysisContext::flowConditionAllows ( Atom Token, const Formula & F ) ◆ flowConditionImplies() bool clang::dataflow::DataflowAnalysisContext::flowConditionImplies ( Atom Token, const Formula & F ) ◆ forkFlowCondition() Atom clang::dataflow::DataflowAnalysisContext::forkFlowCondition ( Atom Token ) ◆ getAdornedCFG() ◆ getModeledFields() FieldSet clang::dataflow::DataflowAnalysisContext::getModeledFields ( QualType Type ) ◆ getOptions() ◆ getOrCreateNullPointerValue() PointerValue & clang::dataflow::DataflowAnalysisContext::getOrCreateNullPointerValue ( QualType PointeeType ) ◆ getStableStorageLocation() [1/2] StorageLocation & clang::dataflow::DataflowAnalysisContext::getStableStorageLocation ( const Expr & E ) ◆ getStableStorageLocation() [2/2] ◆ getSyntheticFields() llvm::StringMap< QualType > clang::dataflow::DataflowAnalysisContext::getSyntheticFields ( QualType Type ) inline ◆ joinFlowConditions() Atom clang::dataflow::DataflowAnalysisContext::joinFlowConditions ( Atom FirstToken, Atom SecondToken ) ◆ querySolver() Solver::Result clang::dataflow::DataflowAnalysisContext::querySolver ( llvm::SetVector< const Formula * > Constraints )Returns the outcome of satisfiability checking on Constraints
.
Flow conditions are not incorporated, so they may need to be manually included in Constraints
to provide contextually-accurate results, e.g. if any definitions or relationships of the values in Constraints
have been stored in flow conditions.
Definition at line 172 of file DataflowAnalysisContext.cpp.
◆ setSyntheticFieldCallback() void clang::dataflow::DataflowAnalysisContext::setSyntheticFieldCallback ( std::function< llvm::StringMap< QualType >(QualType)> CB ) inline ◆ EnvironmentThe documentation for this class was generated from the following files:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4