X-Git-Url: http://plrg.eecs.uci.edu/git/?p=IRC.git;a=blobdiff_plain;f=Robust%2Fsrc%2FAnalysis%2FPointer%2FPointer.java;h=184cf6511cd3c9b93228fd1f51175512e4c70b70;hp=2bf65e115bc3c34bea0671b0b1cb57c236cb0c98;hb=2c9fc049afee82726ae47ec7ea2630cfe1623f21;hpb=9084969e24b064e799f845810b4a15e135dc6bf2 diff --git a/Robust/src/Analysis/Pointer/Pointer.java b/Robust/src/Analysis/Pointer/Pointer.java index 2bf65e11..184cf651 100644 --- a/Robust/src/Analysis/Pointer/Pointer.java +++ b/Robust/src/Analysis/Pointer/Pointer.java @@ -76,7 +76,7 @@ public class Pointer implements HeapAnalysis { public BasicBlock getBBlock(FlatMethod fm) { if (!blockMap.containsKey(fm)) { blockMap.put(fm, BasicBlock.getBBlock(fm)); - Hashtable> livemap=Liveness.computeLiveTemps(fm); + Hashtable> livemap=Liveness.computeLiveTemps(fm,-1); for(BBlock bblock : blockMap.get(fm).getBlocks()) { FlatNode fn=bblock.nodes.get(0); if (fn==fm) { @@ -468,7 +468,11 @@ nextdelta: case FKind.FlatCall: return processFlatCall(bblock, index, (FlatCall) node, delta, newgraph); - + + /* yonghun - + * Pointer Analysis does not care about a flat literal node, just ignores it. + * Right now(2011/05/01) we do not attempt to model a flat literal node + * for checking runtime pointers. case FKind.FlatLiteralNode: // jjenista - the heap analysis abstraction---when used to verify points-to // analysis results against runtime pointers---will eventually need this to @@ -476,7 +480,8 @@ nextdelta: // allocated string. For now it will pass through like Pointer used to, but // the checks versus runtime pointers will fail for string literals. return delta; - + */ + default: throw new Error("Unrecognized node:"+node + " of kind " + node.kind()); } @@ -2125,11 +2130,6 @@ nextdelta: return null; } - public Set canPointToAfter( TempDescriptor x, - FlatNode programPoint ) { - return null; - } - public Hashtable< Alloc, Set > canPointToAt( TempDescriptor x, FieldDescriptor f, FlatNode programPoint ) { @@ -2140,4 +2140,20 @@ nextdelta: FlatNode programPoint ) { return null; } + + public Set canPointToAfter( TempDescriptor x, + FlatNode programPoint ) { + return null; + } + + public Hashtable< Alloc, Set > canPointToAfter( TempDescriptor x, + FieldDescriptor f, + FlatNode programPoint ) { + return null; + } + + public Hashtable< Alloc, Set > canPointToAfterElement( TempDescriptor x, // x[i] + FlatNode programPoint ) { + return null; + } }