public class JvmValueTransferRelation extends JvmTransferRelation<ValueAbstractState>
JvmTransferRelation
that tracks values.JvmTransferRelation.InstructionAbstractInterpreter
Modifier and Type | Field and Description |
---|---|
ExecutingInvocationUnit |
executingInvocationUnit |
Constructor and Description |
---|
JvmValueTransferRelation(ValueFactory valueFactory,
ExecutingInvocationUnit executingInvocationUnit) |
Modifier and Type | Method and Description |
---|---|
java.util.Collection<? extends AbstractState> |
generateEdgeAbstractSuccessors(AbstractState abstractState,
JvmCfaEdge edge,
Precision precision)
Computes the successor states for the CFA
edge . |
ValueAbstractState |
getAbstractByteConstant(byte b)
Returns an abstract representation of a byte constant
b . |
ValueAbstractState |
getAbstractDefault()
Returns a default abstract state.
|
java.util.List<ValueAbstractState> |
getAbstractDoubleConstant(double d)
Returns an abstract representation of a double constant
d . |
ValueAbstractState |
getAbstractFloatConstant(float f)
Returns an abstract representation of a float constant
f . |
ValueAbstractState |
getAbstractIntegerConstant(int i)
Returns an abstract representation of an integer constant
i . |
java.util.List<ValueAbstractState> |
getAbstractLongConstant(long l)
Returns an abstract representation of a long constant
l . |
ValueAbstractState |
getAbstractNull()
Returns an abstract representation of a null reference.
|
ValueAbstractState |
getAbstractReferenceValue(java.lang.String className)
Returns an abstract representation of a reference value
object . |
ValueAbstractState |
getAbstractReferenceValue(java.lang.String internalType,
Clazz referencedClazz,
boolean mayBeExtension,
boolean mayBeNull)
Returns an abstract representation of a reference value
object . |
ValueAbstractState |
getAbstractReferenceValue(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 value
object . |
ValueAbstractState |
getAbstractShortConstant(short s)
Returns an abstract representation of a short constant
s . |
ValueFactory |
getValueFactory() |
protected ValueAbstractState |
handleCheckCast(ValueAbstractState state,
java.lang.String internalName)
Returns an abstract state representing the result of the
checkcast operation. |
void |
invokeMethod(JvmAbstractState<ValueAbstractState> state,
Call call,
java.util.List<ValueAbstractState> operands)
The default implementation computes join over its arguments.
|
protected void |
processCall(JvmAbstractState<ValueAbstractState> state,
Call call)
Pops the arguments from the operand stack and passes them to
invokeMethod . |
calculateArithmeticInstruction, computeIncrement, generateEdgeAbstractSuccessor, getAbstractSuccessorForInstruction, isInstanceOf
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getEdges
generateAbstractSuccessors, wrapAbstractSuccessorInCollection
public final ExecutingInvocationUnit executingInvocationUnit
public JvmValueTransferRelation(ValueFactory valueFactory, ExecutingInvocationUnit executingInvocationUnit)
public ValueFactory getValueFactory()
public ValueAbstractState getAbstractDefault()
JvmTransferRelation
getAbstractDefault
in class JvmTransferRelation<ValueAbstractState>
public ValueAbstractState getAbstractByteConstant(byte b)
JvmTransferRelation
b
.getAbstractByteConstant
in class JvmTransferRelation<ValueAbstractState>
public java.util.List<ValueAbstractState> getAbstractDoubleConstant(double d)
JvmTransferRelation
d
.getAbstractDoubleConstant
in class JvmTransferRelation<ValueAbstractState>
public ValueAbstractState getAbstractFloatConstant(float f)
JvmTransferRelation
f
.getAbstractFloatConstant
in class JvmTransferRelation<ValueAbstractState>
public ValueAbstractState getAbstractIntegerConstant(int i)
JvmTransferRelation
i
.getAbstractIntegerConstant
in class JvmTransferRelation<ValueAbstractState>
public java.util.List<ValueAbstractState> getAbstractLongConstant(long l)
JvmTransferRelation
l
.getAbstractLongConstant
in class JvmTransferRelation<ValueAbstractState>
public ValueAbstractState getAbstractNull()
JvmTransferRelation
getAbstractNull
in class JvmTransferRelation<ValueAbstractState>
public ValueAbstractState getAbstractShortConstant(short s)
JvmTransferRelation
s
.getAbstractShortConstant
in class JvmTransferRelation<ValueAbstractState>
public ValueAbstractState getAbstractReferenceValue(java.lang.String className)
JvmTransferRelation
object
.getAbstractReferenceValue
in class JvmTransferRelation<ValueAbstractState>
public ValueAbstractState getAbstractReferenceValue(java.lang.String internalType, Clazz referencedClazz, boolean mayBeExtension, boolean mayBeNull)
JvmTransferRelation
object
.getAbstractReferenceValue
in class JvmTransferRelation<ValueAbstractState>
public ValueAbstractState getAbstractReferenceValue(java.lang.String internalType, Clazz referencedClazz, boolean mayBeExtension, boolean mayBeNull, Clazz creationClass, Method creationMethod, int creationOffset, java.lang.Object value)
JvmTransferRelation
object
.getAbstractReferenceValue
in class JvmTransferRelation<ValueAbstractState>
protected void processCall(JvmAbstractState<ValueAbstractState> state, Call call)
JvmTransferRelation
invokeMethod
.processCall
in class JvmTransferRelation<ValueAbstractState>
public void invokeMethod(JvmAbstractState<ValueAbstractState> state, Call call, java.util.List<ValueAbstractState> operands)
JvmTransferRelation
invokeMethod
in class JvmTransferRelation<ValueAbstractState>
protected ValueAbstractState handleCheckCast(ValueAbstractState state, java.lang.String internalName)
JvmTransferRelation
checkcast
operation.handleCheckCast
in class JvmTransferRelation<ValueAbstractState>
public java.util.Collection<? extends AbstractState> generateEdgeAbstractSuccessors(AbstractState abstractState, JvmCfaEdge edge, Precision precision)
ProgramLocationDependentTransferRelation
edge
.