Interface ExpandOperator<ContentT extends AbstractState<ContentT>>

Type Parameters:
ContentT - The content of the jvm states. For example, this can be a SetAbstractState of taints for taint analysis or a ValueAbstractState for value analysis.
All Known Implementing Classes:
DefaultExpandOperator, TaintExpandOperator, ValueExpandOperator

public interface ExpandOperator<ContentT extends AbstractState<ContentT>>
This operator is used to recover the information discarded when entering a procedure block depending on the domain-specific analysis.
  • Method Summary

    Modifier and Type
    Method
    Description
    expand(JvmAbstractState<ContentT> expandedInitialState, JvmAbstractState<ContentT> reducedExitState, JvmCfaNode blockEntryNode, Call call)
    Reconstructs the state of the caller of a procedure using the information of the expanded initial state, the reduced exit state, the block entry node (that can be used to retrieve the CFA subgraph of the function), and the call to the procedure.
  • Method Details

    • expand

      JvmAbstractState<ContentT> expand(JvmAbstractState<ContentT> expandedInitialState, JvmAbstractState<ContentT> reducedExitState, JvmCfaNode blockEntryNode, Call call)
      Reconstructs the state of the caller of a procedure using the information of the expanded initial state, the reduced exit state, the block entry node (that can be used to retrieve the CFA subgraph of the function), and the call to the procedure.
      Parameters:
      expandedInitialState - the entry state of the called procedure before any reduction
      reducedExitState - the state of the called procedure in its exit node
      blockEntryNode - the entry node of the called procedure
      call - the information of the call to the procedure
      Returns:
      The state of the caller after the procedure call, eventually with some collisions of identifiers that need the RebuildOperator to be solved