public class JvmReferenceTransferRelation extends JvmTransferRelation<SetAbstractState<Reference>>
JvmTransferRelation propagates reference values, destroys references upon arithmetic operations, and creates fresh references for return values of intraprocedurally analyzed calls.JvmTransferRelation.InstructionAbstractInterpreter| Constructor and Description |
|---|
JvmReferenceTransferRelation() |
| Modifier and Type | Method and Description |
|---|---|
protected SetAbstractState<Reference> |
calculateArithmeticInstruction(Instruction instruction,
java.util.List<SetAbstractState<Reference>> operands)
Calculates the result of the instruction application.
|
protected SetAbstractState<Reference> |
computeIncrement(SetAbstractState<Reference> state,
int value)
Returns the abstract state of the incremented input
state by value. |
SetAbstractState<Reference> |
getAbstractDefault()
Returns a default abstract state.
|
JvmReferenceAbstractState |
getEdgeAbstractSuccessor(AbstractState abstractState,
JvmCfaEdge edge,
Precision precision)
Computes a successor state for the CFA
edge. |
void |
invokeMethod(JvmAbstractState<SetAbstractState<Reference>> state,
Call call,
java.util.List<SetAbstractState<Reference>> operands)
The default implementation computes join over its arguments.
|
getAbstractByteConstant, getAbstractDoubleConstant, getAbstractFloatConstant, getAbstractIntegerConstant, getAbstractLongConstant, getAbstractNull, getAbstractReferenceValue, getAbstractReferenceValue, getAbstractReferenceValue, getAbstractShortConstant, getAbstractSuccessorForInstruction, isInstanceOf, processCallclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetEdgesgetAbstractSuccessorspublic JvmReferenceAbstractState getEdgeAbstractSuccessor(AbstractState abstractState, JvmCfaEdge edge, Precision precision)
ProgramLocationDependentTransferRelationedge.getEdgeAbstractSuccessor in interface ProgramLocationDependentTransferRelation<JvmCfaNode,JvmCfaEdge,MethodSignature>getEdgeAbstractSuccessor in class JvmTransferRelation<SetAbstractState<Reference>>public SetAbstractState<Reference> getAbstractDefault()
JvmTransferRelationgetAbstractDefault in class JvmTransferRelation<SetAbstractState<Reference>>protected SetAbstractState<Reference> calculateArithmeticInstruction(Instruction instruction, java.util.List<SetAbstractState<Reference>> operands)
JvmTransferRelationcalculateArithmeticInstruction in class JvmTransferRelation<SetAbstractState<Reference>>protected SetAbstractState<Reference> computeIncrement(SetAbstractState<Reference> state, int value)
JvmTransferRelationstate by value. The default implementation computes the join.computeIncrement in class JvmTransferRelation<SetAbstractState<Reference>>public void invokeMethod(JvmAbstractState<SetAbstractState<Reference>> state, Call call, java.util.List<SetAbstractState<Reference>> operands)
JvmTransferRelationinvokeMethod in class JvmTransferRelation<SetAbstractState<Reference>>