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 aSetAbstractState
of taints for taint analysis or aValueAbstractState
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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description 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.
-
-
-
Method Detail
-
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
RebuildOperator
to be solved
-
-