class TypeErasedDataflowAnalysis

Declaration

class TypeErasedDataflowAnalysis : public ValueModel { /* full declaration omitted */ };

Description

Type-erased base class for dataflow analyses built on a single lattice type.

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:56

Inherits from: Environment::ValueModel

Member Variables

private clang::dataflow::DataflowAnalysisOptions Options

Method Overview

Inherited from Environment::ValueModel:

Methods

TypeErasedDataflowAnalysis()

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:60

TypeErasedDataflowAnalysis(
    bool ApplyBuiltinTransfer)

Description

Deprecated. Use the `DataflowAnalysisOptions` constructor instead.

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:63

Parameters

bool ApplyBuiltinTransfer

TypeErasedDataflowAnalysis(
    clang::dataflow::DataflowAnalysisOptions
        Options)

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:66

Parameters

clang::dataflow::DataflowAnalysisOptions Options

bool applyBuiltinTransfer() const

Description

Determines whether to apply the built-in transfer functions, which model the heap and stack in the `Environment`.

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:96

clang::dataflow::TransferOptions
builtinTransferOptions() const

Description

Returns the options to be passed to the built-in transfer functions.

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:99

virtual clang::ASTContext& getASTContext()

Description

Returns the `ASTContext` that is used by the analysis.

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:72

virtual bool isEqualTypeErased(
    const clang::dataflow::TypeErasedLattice&,
    const clang::dataflow::TypeErasedLattice&)

Description

Returns true if and only if the two given type-erased lattice elements are equal.

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:86

Parameters

const clang::dataflow::TypeErasedLattice&
const clang::dataflow::TypeErasedLattice&

virtual clang::dataflow::LatticeJoinEffect
joinTypeErased(
    clang::dataflow::TypeErasedLattice&,
    const clang::dataflow::TypeErasedLattice&)

Description

Joins two type-erased lattice elements by computing their least upper bound. Places the join result in the left element and returns an effect indicating whether any changes were made to it.

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:81

Parameters

clang::dataflow::TypeErasedLattice&
const clang::dataflow::TypeErasedLattice&

virtual void transferTypeErased(
    const clang::Stmt*,
    clang::dataflow::TypeErasedLattice&,
    clang::dataflow::Environment&)

Description

Applies the analysis transfer function for a given statement and type-erased lattice element.

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:91

Parameters

const clang::Stmt*
clang::dataflow::TypeErasedLattice&
clang::dataflow::Environment&

virtual clang::dataflow::TypeErasedLattice
typeErasedInitialElement()

Description

Returns a type-erased lattice element that models the initial state of a basic block.

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:76

virtual ~TypeErasedDataflowAnalysis()

Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:69