public interface WritableSMG extends ReadableSMG
| Modifier and Type | Method and Description |
|---|---|
SMGRegion |
addGlobalVariable(CType pType,
java.lang.String pVarName)
Adds a new global variable region to the SMG.
|
void |
addHasValueEdge(SMGEdgeHasValue pEdge)
Adds a new has-value edge to the SMG
|
void |
addHeapObject(SMGObject pObject)
Adds a new heap object to the SMG.
|
SMGRegion |
addLocalVariable(CType pType,
java.lang.String pVarName)
Adds a new local variable to the top stack frame of the SMG
|
void |
addNeqRelation(java.lang.Integer pOp1,
java.lang.Integer pOp2)
Adds an explicit non-equality relation between two values
|
void |
addPointsToEdge(SMGEdgePointsTo pEdge)
Adds a new points-to edge to the SMG
|
void |
addStackFrame(CFunctionDeclaration pFunction)
Adds a new stack frame to the SMG.
|
void |
addValue(java.lang.Integer pValue)
Adds a symbolic value to the SMG
|
void |
clearExplicit(SMGValues.SMGKnownSymValue pKey)
Clears an explicit value for a symbolic value
|
void |
dropStackFrame()
Removes a top stack frame from the SMG.
|
void |
mergeValues(int pOp1,
int pOp2)
Merges two values (equivalence relation between two values)
|
void |
pruneUnreachable()
Walks the whole SMG and removes unreachable elements (objects, values, edges) and invalid regions.
|
void |
putExplicit(SMGValues.SMGKnownSymValue pKey,
SMGValues.SMGKnownExpValue pValue)
Sets an explicit value for a symbolic value
|
void |
removeHasValueEdge(SMGEdgeHasValue pEdge)
Removes a has-value from the SMG
|
void |
removeHeapObject(SMGObject pObject)
Removes a given object from the SMG.
|
void |
removePointsToEdge(java.lang.Integer pValue)
Removes a points-to edge from the SMG.
|
void |
removeValue(java.lang.Integer pValue)
Removes a symbolic value from the SMG.
|
void |
replaceHVSet(java.util.Set<SMGEdgeHasValue> pHV)
Removes all has-value edges from the SMG and adds a new set of has-value edges.
|
void |
setMemoryLeak()
Sets the memory leak property of the SMG.
|
void |
setValidity(SMGRegion pRegion,
boolean pValidity)
Sets validity of a region.
|
containsValue, getAddress, getExplicit, getFunctionName, getGlobalObjects, getHeapObjects, getHVEdges, getHVEdges, getNeqsForValue, getNullBytesForObject, getNullObject, getNullValue, getObjectForVisibleVariable, getObjectPointedBy, getObjects, getPointer, getPTEdges, getStackFrames, getStackReturnObject, getUniqueHV, getValues, hasLocalVariable, hasMemoryLeaks, haveNeqRelation, isCoveredByNullifiedBlocks, isCoveredByNullifiedBlocks, isGlobalObject, isHeapObject, isIdenticalTo, isObjectValid, isPointer, isUnequal, readValuevoid addHeapObject(SMGObject pObject)
pObject - object to add to the SMGvoid removeHeapObject(SMGObject pObject)
IllegalArgumentException if passed an object which is not a
heap object in the SMG.pObject - object to remove from the SMGvoid addStackFrame(CFunctionDeclaration pFunction)
pFunction - declaration of a function for which the stack frame is addedvoid dropStackFrame()
SMGRegion addGlobalVariable(CType pType, java.lang.String pVarName)
pType - type of the variablepVarName - name of the variableSMGRegion addLocalVariable(CType pType, java.lang.String pVarName)
pType - type of the variablepVarName - name of the variablevoid addValue(java.lang.Integer pValue)
pValue - symbolic value to addvoid removeValue(java.lang.Integer pValue)
pValue - symbolic value to removevoid addPointsToEdge(SMGEdgePointsTo pEdge)
pEdge - edge to add to the SMGvoid removePointsToEdge(java.lang.Integer pValue)
pValue - value from which leads the removed SMGvoid addHasValueEdge(SMGEdgeHasValue pEdge)
pEdge - edge to add to the SMGvoid removeHasValueEdge(SMGEdgeHasValue pEdge)
pEdge - edge to remove from the SMGvoid replaceHVSet(java.util.Set<SMGEdgeHasValue> pHV)
pHV - The set of has-value edges to replace the old setvoid setValidity(SMGRegion pRegion, boolean pValidity)
pRegion - region for which to set validitypValidity - target validityvoid pruneUnreachable()
void setMemoryLeak()
void addNeqRelation(java.lang.Integer pOp1,
java.lang.Integer pOp2)
pOp1 - first valuepOp2 - second valuevoid mergeValues(int pOp1,
int pOp2)
pOp1 - first valuepOp2 - second valuevoid clearExplicit(SMGValues.SMGKnownSymValue pKey)
pKey - symbolic value for which the explicit value will be clearedvoid putExplicit(SMGValues.SMGKnownSymValue pKey, SMGValues.SMGKnownExpValue pValue)
pKey - symbolic valuepValue - explicit value