From 2c9fc049afee82726ae47ec7ea2630cfe1623f21 Mon Sep 17 00:00:00 2001 From: yeom Date: Wed, 2 May 2012 00:32:02 +0000 Subject: [PATCH] bug fix: The result of the pointer analysis is broken when it tries to do something for a flat literal node. Since the modeling of a flat literal node is only required for the additional runtime check which verifies the allocation site of objects pointed to(+ it has not yet fully implemented), no problem to turn it off. Turn back to the same way of the OOPSLA DOJ version. --- Robust/src/Analysis/Disjoint/PointerMethod.java | 1 - Robust/src/Analysis/Pointer/Pointer.java | 9 +++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Robust/src/Analysis/Disjoint/PointerMethod.java b/Robust/src/Analysis/Disjoint/PointerMethod.java index aaab9a87..5ab2314c 100644 --- a/Robust/src/Analysis/Disjoint/PointerMethod.java +++ b/Robust/src/Analysis/Disjoint/PointerMethod.java @@ -92,7 +92,6 @@ public class PointerMethod { case FKind.FlatElementNode: case FKind.FlatSetElementNode: case FKind.FlatNew: - case FKind.FlatLiteralNode: case FKind.FlatCall: case FKind.FlatReturnNode: case FKind.FlatBackEdge: diff --git a/Robust/src/Analysis/Pointer/Pointer.java b/Robust/src/Analysis/Pointer/Pointer.java index 8b0ce00b..184cf651 100644 --- a/Robust/src/Analysis/Pointer/Pointer.java +++ b/Robust/src/Analysis/Pointer/Pointer.java @@ -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()); } -- 2.34.1