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>>
A
JvmTransferRelation that tracks values.-
Nested Class Summary
Nested classes/interfaces inherited from class proguard.analysis.cpa.jvm.transfer.JvmTransferRelation
JvmTransferRelation.InstructionAbstractInterpreter -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionJvmValueTransferRelation(ValueFactory valueFactory, ExecutingInvocationUnit executingInvocationUnit) -
Method Summary
Modifier and TypeMethodDescriptiongetAbstractByteConstant(byte b) Returns an abstract representation of a byte constantb.Returns a default abstract state.getAbstractDoubleConstant(double d) Returns an abstract representation of a double constantd.getAbstractFloatConstant(float f) Returns an abstract representation of a float constantf.getAbstractIntegerConstant(int i) Returns an abstract representation of an integer constanti.getAbstractLongConstant(long l) Returns an abstract representation of a long constantl.Returns an abstract representation of a null reference.getAbstractReferenceValue(String internalType, Clazz referencedClazz, boolean mayBeExtension, boolean mayBeNull, Clazz creationClass, Method creationMethod, int creationOffset, Object value) Returns an abstract representation of a reference valueobject.getAbstractShortConstant(short s) Returns an abstract representation of a short constants.protected ValueAbstractStatehandleCheckCast(ValueAbstractState state, String internalName) Returns an abstract state representing the result of thecheckcastoperation.voidinvokeMethod(JvmAbstractState<ValueAbstractState> state, Call call, 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, isInstanceOfMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface proguard.analysis.cpa.interfaces.ProgramLocationDependentForwardTransferRelation
getEdgesMethods inherited from interface proguard.analysis.cpa.interfaces.ProgramLocationDependentTransferRelation
generateAbstractSuccessors, wrapAbstractSuccessorInCollection
-
Field Details
-
executingInvocationUnit
-
-
Constructor Details
-
JvmValueTransferRelation
public JvmValueTransferRelation(ValueFactory valueFactory, ExecutingInvocationUnit executingInvocationUnit)
-
-
Method Details
-
getValueFactory
-
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
Description copied from class:JvmTransferRelationReturns an abstract representation of a byte constantb.- Overrides:
getAbstractByteConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractDoubleConstant
Description copied from class:JvmTransferRelationReturns an abstract representation of a double constantd.- Overrides:
getAbstractDoubleConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractFloatConstant
Description copied from class:JvmTransferRelationReturns an abstract representation of a float constantf.- Overrides:
getAbstractFloatConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractIntegerConstant
Description copied from class:JvmTransferRelationReturns an abstract representation of an integer constanti.- Overrides:
getAbstractIntegerConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractLongConstant
Description copied from class:JvmTransferRelationReturns an abstract representation of a long constantl.- Overrides:
getAbstractLongConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractNull
Description copied from class:JvmTransferRelationReturns an abstract representation of a null reference.- Overrides:
getAbstractNullin classJvmTransferRelation<ValueAbstractState>
-
getAbstractShortConstant
Description copied from class:JvmTransferRelationReturns an abstract representation of a short constants.- Overrides:
getAbstractShortConstantin classJvmTransferRelation<ValueAbstractState>
-
getAbstractReferenceValue
public ValueAbstractState getAbstractReferenceValue(String internalType, Clazz referencedClazz, boolean mayBeExtension, boolean mayBeNull, Clazz creationClass, Method creationMethod, int creationOffset, Object value) Description copied from class:JvmTransferRelationReturns an abstract representation of a reference valueobject.- Overrides:
getAbstractReferenceValuein classJvmTransferRelation<ValueAbstractState>
-
processCall
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, List<ValueAbstractState> operands) Description copied from class:JvmTransferRelationThe default implementation computes join over its arguments.- Overrides:
invokeMethodin classJvmTransferRelation<ValueAbstractState>
-
handleCheckCast
Description copied from class:JvmTransferRelationReturns an abstract state representing the result of thecheckcastoperation.- Overrides:
handleCheckCastin classJvmTransferRelation<ValueAbstractState>
-