public abstract class IVarAbstraction extends java.lang.Object implements Numberable
Modifier and Type | Field and Description |
---|---|
protected static IFigureManager |
deadManager |
int |
id |
int |
lrf_value |
Node |
me |
protected IVarAbstraction |
parent |
protected static RectangleNode |
pres |
int |
Qpos |
protected static IFigureManager |
stubManager |
int |
top_value |
boolean |
willUpdate |
Constructor and Description |
---|
IVarAbstraction() |
Modifier and Type | Method and Description |
---|---|
abstract boolean |
add_points_to_3(AllocNode obj,
long I1,
long I2,
long L) |
abstract boolean |
add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2) |
abstract boolean |
add_simple_constraint_3(IVarAbstraction qv,
long I1,
long I2,
long L) |
abstract boolean |
add_simple_constraint_4(IVarAbstraction qv,
long I1,
long I2,
long L1,
long L2) |
abstract int |
count_flow_intervals(IVarAbstraction qv) |
abstract int |
count_new_pts_intervals() |
abstract int |
count_pts_intervals(AllocNode obj) |
abstract void |
deleteAll() |
abstract void |
do_after_propagation() |
abstract void |
do_before_propagation() |
abstract void |
drop_duplicates() |
SootMethod |
enclosingMethod() |
abstract void |
get_all_context_sensitive_objects(long l,
long r,
PtSensVisitor visitor)
Given the pointers falling in the context range [l, r), we compute the set of context sensitive objects pointed to by those pointers.
|
abstract java.util.Set<AllocNode> |
get_all_points_to_objects()
Obtain context insensitive points-to result (by removing contexts).
|
int |
getNumber() |
IVarAbstraction |
getRepresentative() |
Type |
getType() |
Node |
getWrappedNode()
Processing the wrapped SPARK node.
|
boolean |
hasPTResult()
Test if this pointer currently has points-to result.
|
abstract boolean |
heap_sensitive_intersection(IVarAbstraction qv)
Perform context sensitive alias checking with qv.
|
abstract void |
injectPts() |
abstract boolean |
isDeadObject(AllocNode obj)
Test if the particular object has been obsoleted.
|
boolean |
isLocalPointer() |
abstract void |
keepPointsToOnly() |
boolean |
lessThan(IVarAbstraction other)
Used by ordering the nodes in priority worklist.
|
IVarAbstraction |
merge(IVarAbstraction other)
Make the variable other be the parent of this variable.
|
abstract int |
num_of_diff_edges() |
abstract int |
num_of_diff_objs()
Return -1 if this pointer does not have points-to information.
|
abstract boolean |
pointer_interval_points_to(long l,
long r,
AllocNode obj)
Test if the pointer in the context range [l, R) points to object obj.
|
abstract void |
print_context_sensitive_points_to(java.io.PrintStream outPrintStream) |
abstract void |
propagate(GeomPointsTo ptAnalyzer,
IWorklist worklist) |
abstract void |
put_complex_constraint(PlainConstraint cons) |
boolean |
reachable()
This pointer/object is reachable if its enclosing method is reachable.
|
abstract void |
reconstruct() |
abstract void |
remove_points_to(AllocNode obj) |
void |
setNumber(int number) |
java.lang.String |
toString() |
protected static IFigureManager stubManager
protected static IFigureManager deadManager
protected static RectangleNode pres
public Node me
public int id
public int Qpos
public boolean willUpdate
public int top_value
public int lrf_value
protected IVarAbstraction parent
public boolean lessThan(IVarAbstraction other)
public IVarAbstraction getRepresentative()
public IVarAbstraction merge(IVarAbstraction other)
other
- public void setNumber(int number)
setNumber
in interface Numberable
public int getNumber()
getNumber
in interface Numberable
public java.lang.String toString()
toString
in class java.lang.Object
public boolean reachable()
public boolean hasPTResult()
public Node getWrappedNode()
public Type getType()
public boolean isLocalPointer()
public SootMethod enclosingMethod()
public abstract boolean add_points_to_3(AllocNode obj, long I1, long I2, long L)
public abstract boolean add_points_to_4(AllocNode obj, long I1, long I2, long L1, long L2)
public abstract boolean add_simple_constraint_3(IVarAbstraction qv, long I1, long I2, long L)
public abstract boolean add_simple_constraint_4(IVarAbstraction qv, long I1, long I2, long L1, long L2)
public abstract void put_complex_constraint(PlainConstraint cons)
public abstract void reconstruct()
public abstract void do_before_propagation()
public abstract void do_after_propagation()
public abstract void propagate(GeomPointsTo ptAnalyzer, IWorklist worklist)
public abstract void drop_duplicates()
public abstract void remove_points_to(AllocNode obj)
public abstract void deleteAll()
public abstract void keepPointsToOnly()
public abstract void injectPts()
public abstract int num_of_diff_objs()
public abstract int num_of_diff_edges()
public abstract int count_pts_intervals(AllocNode obj)
public abstract int count_new_pts_intervals()
public abstract int count_flow_intervals(IVarAbstraction qv)
public abstract boolean heap_sensitive_intersection(IVarAbstraction qv)
qv
- public abstract boolean pointer_interval_points_to(long l, long r, AllocNode obj)
l
- r
- obj
- public abstract boolean isDeadObject(AllocNode obj)
obj
- public abstract java.util.Set<AllocNode> get_all_points_to_objects()
public abstract void get_all_context_sensitive_objects(long l, long r, PtSensVisitor visitor)
Obj_1cfa_extractor
,
Obj_full_extractor
public abstract void print_context_sensitive_points_to(java.io.PrintStream outPrintStream)