Class JvmValueTransferRelation
- java.lang.Object
-
- proguard.analysis.cpa.jvm.transfer.JvmTransferRelation<ValueAbstractState>
-
- proguard.analysis.cpa.jvm.domain.value.JvmValueTransferRelation
-
- All Implemented Interfaces:
ProgramLocationDependentForwardTransferRelation<ValueAbstractState>,ProgramLocationDependentTransferRelation<ValueAbstractState>,TransferRelation<JvmAbstractState<ValueAbstractState>>
public class JvmValueTransferRelation extends JvmTransferRelation<ValueAbstractState>
AJvmTransferRelationthat tracks values.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class proguard.analysis.cpa.jvm.transfer.JvmTransferRelation
JvmTransferRelation.InstructionAbstractInterpreter
-
-
Field Summary
Fields Modifier and Type Field Description ExecutingInvocationUnitexecutingInvocationUnit
-
Constructor Summary
Constructors Constructor Description JvmValueTransferRelation(ValueFactory valueFactory, ExecutingInvocationUnit executingInvocationUnit)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ValueAbstractStategetAbstractByteConstant(byte b)Returns an abstract representation of a byte constantb.ValueAbstractStategetAbstractDefault()Returns a default abstract state.java.util.List<ValueAbstractState>getAbstractDoubleConstant(double d)Returns an abstract representation of a double constantd.ValueAbstractStategetAbstractFloatConstant(float f)Returns an abstract representation of a float constantf.ValueAbstractStategetAbstractIntegerConstant(int i)Returns an abstract representation of an integer constanti.java.util.List<ValueAbstractState>getAbstractLongConstant(long l)Returns an abstract representation of a long constantl.ValueAbstractStategetAbstractNull()Returns an abstract representation of a null reference.ValueAbstractStategetAbstractReferenceValue(java.lang.String internalType, Clazz referencedClazz, boolean mayBeExtension, boolean mayBeNull, Clazz creationClass, Method creationMethod, int creationOffset, java.lang.Object value)Returns an abstract representation of a reference valueobject.ValueAbstractStategetAbstractShortConstant(short s)Returns an abstract representation of a short constants.ValueFactorygetValueFactory()protected ValueAbstractStatehandleCheckCast(ValueAbstractState state, java.lang.String internalName)Returns an abstract state representing the result of thecheckcastoperation.voidinvokeMethod(JvmAbstractState<ValueAbstractState> state, Call call, java.util.List<ValueAbstractState> operands)The default implementation computes join over its arguments.protected voidprocessCall(JvmAbstractState<ValueAbstractState> state, Call call)Pops the arguments from the operand stack and passes them toinvokeMethod.-
Methods inherited from class proguard.analysis.cpa.jvm.transfer.JvmTransferRelation
calculateArithmeticInstruction, computeIncrement, generateEdgeAbstractSuccessor, generateEdgeAbstractSuccessors, getAbstractSuccessorForInstruction, isInstanceOf
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface proguard.analysis.cpa.interfaces.ProgramLocationDependentForwardTransferRelation
getEdges
-
Methods inherited from interface proguard.analysis.cpa.interfaces.ProgramLocationDependentTransferRelation
generateAbstractSuccessors, wrapAbstractSuccessorInCollection
-
-
-
-
Field Detail
-
executingInvocationUnit
public final ExecutingInvocationUnit executingInvocationUnit
-
-
Constructor Detail
-
JvmValueTransferRelation
public JvmValueTransferRelation(ValueFactory valueFactory, ExecutingInvocationUnit executingInvocationUnit)
-
-
Method Detail
-
getValueFactory
public ValueFactory getValueFactory()
-
getAbstractDefault
public ValueAbstractState getAbstractDefault()
Description copied from class:JvmTransferRelationReturns a default abstract state. In case of lattice abstract domains, it should be the bottom element.- Specified by:
getAbstractDefaultin classJvmTransferRelation<ValueAbstractState>
-
getAbstractByteConstant
public ValueAbstractState getAbstractByteConstant(byte b)
Description copied from class:JvmTransferRelationReturns an abstract representation of a byte constantb.- Overrides:
getAbstractByteConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractDoubleConstant
public java.util.List<ValueAbstractState> getAbstractDoubleConstant(double d)
Description copied from class:JvmTransferRelationReturns an abstract representation of a double constantd.- Overrides:
getAbstractDoubleConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractFloatConstant
public ValueAbstractState getAbstractFloatConstant(float f)
Description copied from class:JvmTransferRelationReturns an abstract representation of a float constantf.- Overrides:
getAbstractFloatConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractIntegerConstant
public ValueAbstractState getAbstractIntegerConstant(int i)
Description copied from class:JvmTransferRelationReturns an abstract representation of an integer constanti.- Overrides:
getAbstractIntegerConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractLongConstant
public java.util.List<ValueAbstractState> getAbstractLongConstant(long l)
Description copied from class:JvmTransferRelationReturns an abstract representation of a long constantl.- Overrides:
getAbstractLongConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractNull
public ValueAbstractState getAbstractNull()
Description copied from class:JvmTransferRelationReturns an abstract representation of a null reference.- Overrides:
getAbstractNullin classJvmTransferRelation<ValueAbstractState>
-
getAbstractShortConstant
public ValueAbstractState getAbstractShortConstant(short s)
Description copied from class:JvmTransferRelationReturns an abstract representation of a short constants.- Overrides:
getAbstractShortConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractReferenceValue
public ValueAbstractState getAbstractReferenceValue(java.lang.String internalType, Clazz referencedClazz, boolean mayBeExtension, boolean mayBeNull, Clazz creationClass, Method creationMethod, int creationOffset, java.lang.Object value)
Description copied from class:JvmTransferRelationReturns an abstract representation of a reference valueobject.- Overrides:
getAbstractReferenceValuein classJvmTransferRelation<ValueAbstractState>
-
processCall
protected void processCall(JvmAbstractState<ValueAbstractState> state, Call call)
Description copied from class:JvmTransferRelationPops the arguments from the operand stack and passes them toinvokeMethod.- Overrides:
processCallin classJvmTransferRelation<ValueAbstractState>
-
invokeMethod
public void invokeMethod(JvmAbstractState<ValueAbstractState> state, Call call, java.util.List<ValueAbstractState> operands)
Description copied from class:JvmTransferRelationThe default implementation computes join over its arguments.- Overrides:
invokeMethodin classJvmTransferRelation<ValueAbstractState>
-
handleCheckCast
protected ValueAbstractState handleCheckCast(ValueAbstractState state, java.lang.String internalName)
Description copied from class:JvmTransferRelationReturns an abstract state representing the result of thecheckcastoperation.- Overrides:
handleCheckCastin classJvmTransferRelation<ValueAbstractState>
-
-