Package proguard.analysis.cpa.bam
Interface ExpandOperator<ContentT extends AbstractState<ContentT>>
- Type Parameters:
ContentT- The content of the jvm states. For example, this can be aSetAbstractStateof taints for taint analysis or aValueAbstractStatefor 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 TypeMethodDescriptionexpand(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 reductionreducedExitState- the state of the called procedure in its exit nodeblockEntryNode- the entry node of the called procedurecall- 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
RebuildOperatorto be solved
-