A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/classclang_1_1dataflow_1_1DataflowAnalysisContext.html below:

clang: clang::dataflow::DataflowAnalysisContext Class Reference

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"

  DataflowAnalysisContext (std::unique_ptr< Solver > S, Options Opts=Options{ std::nullopt, nullptr})   Constructs a dataflow analysis context.
    DataflowAnalysisContext (Solver &S, Options Opts=Options{ std::nullopt, nullptr})   Constructs a dataflow analysis context.
    ~DataflowAnalysisContext ()   void  setSyntheticFieldCallback (std::function< llvm::StringMap< QualType >(QualType)> CB)   Sets a callback that returns the names and types of the synthetic fields to add to a RecordStorageLocation of a given type.
  StorageLocationcreateStorageLocation (QualType Type)   Returns a new storage location appropriate for Type.
  RecordStorageLocationcreateRecordStorageLocation (QualType Type, RecordStorageLocation::FieldToLoc FieldLocs, RecordStorageLocation::SyntheticFieldMap SyntheticFields)   Creates a RecordStorageLocation for the given type and with the given fields.
  StorageLocationgetStableStorageLocation (const ValueDecl &D)   Returns a stable storage location for D.
  StorageLocationgetStableStorageLocation (const Expr &E)   Returns a stable storage location for E.
  PointerValuegetOrCreateNullPointerValue (QualType PointeeType)   Returns a pointer value that represents a null pointer.
  void  addInvariant (const Formula &Constraint)   Adds Constraint to current and future flow conditions in this context.
  void  addFlowConditionConstraint (Atom Token, const Formula &Constraint)   Adds Constraint to the flow condition identified by Token.
  Atom  forkFlowCondition (Atom Token)   Creates a new flow condition with the same constraints as the flow condition identified by Token and returns its token.
  Atom  joinFlowConditions (Atom FirstToken, Atom SecondToken)   Creates a new flow condition that represents the disjunction of the flow conditions identified by FirstToken and SecondToken, and returns its token.
  bool  flowConditionImplies (Atom Token, const Formula &F)   Returns true if the constraints of the flow condition identified by Token imply that F is true.
  bool  flowConditionAllows (Atom Token, const Formula &F)   Returns true if the constraints of the flow condition identified by Token still allow F to be true.
  bool  equivalentFormulas (const Formula &Val1, const Formula &Val2)   Returns true if Val1 is equivalent to Val2.
  LLVM_DUMP_METHOD void  dumpFlowCondition (Atom Token, llvm::raw_ostream &OS=llvm::dbgs())   const AdornedCFGgetAdornedCFG (const FunctionDecl *F)   Returns the AdornedCFG registered for F, if any.
  const OptionsgetOptions ()   Arenaarena ()   Solver::Result  querySolver (llvm::SetVector< const Formula * > Constraints)   Returns the outcome of satisfiability checking on Constraints.
  FieldSet  getModeledFields (QualType Type)   Returns the fields of Type, limited to the set of fields modeled by this context.
  llvm::StringMap< QualTypegetSyntheticFields (QualType Type)   Returns the names and types of the synthetic fields for the given record type.
 

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< SolverS, Options  Opts = Options{ std::nullopt, nullptr}  ) inline ◆ DataflowAnalysisContext() [2/2] clang::dataflow::DataflowAnalysisContext::DataflowAnalysisContext ( SolverS, Options  Opts = Options{ std::nullopt, nullptr}  ) inline ◆ ~DataflowAnalysisContext() clang::dataflow::DataflowAnalysisContext::~DataflowAnalysisContext ( ) default ◆ addFlowConditionConstraint() void clang::dataflow::DataflowAnalysisContext::addFlowConditionConstraint ( Atom  Token, const FormulaConstraint  ) ◆ addInvariant() void clang::dataflow::DataflowAnalysisContext::addInvariant ( const FormulaConstraint )

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 FormulaVal1, const FormulaVal2  )

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 FormulaF  ) ◆ flowConditionImplies() bool clang::dataflow::DataflowAnalysisContext::flowConditionImplies ( Atom  Token, const FormulaF  ) ◆ 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 ExprE ) ◆ 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 ◆ Environment

The 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