Class CpaWithBamOperators<ContentT extends AbstractState<ContentT>>

java.lang.Object
proguard.analysis.cpa.defaults.SimpleCpa<JvmAbstractState<ContentT>>
proguard.analysis.cpa.bam.CpaWithBamOperators<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 Implemented Interfaces:
ConfigurableProgramAnalysis<JvmAbstractState<ContentT>>

public class CpaWithBamOperators<ContentT extends AbstractState<ContentT>> extends SimpleCpa<JvmAbstractState<ContentT>>
A domain dependent analysis that can be wrapped with a BamCpa to be extended inter-procedurally.

Compared to a standard ConfigurableProgramAnalysis, this is extended with three operators:

- The reduce operator discards from the entry abstract state of a procedure the unnecessary information (e.g. local variables of the caller).

- The expand operator restores the removed information.

- The rebuild operator avoids collision of program identifiers while returning from a procedure call (e.g. renaming variables).