X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=Robust%2Fsrc%2FAnalysis%2FSSJava%2FLocationInference.java;h=c3440672619a9a869369314d5551ee0622ab58d9;hb=16c9b68be88b7753b0b2a8b5766983ce06d0c2ad;hp=99a7315f62b8b0f19960ff5f44fe7f3998b25467;hpb=fb05874138a200322015a06ddd9818a5bdd32f67;p=IRC.git diff --git a/Robust/src/Analysis/SSJava/LocationInference.java b/Robust/src/Analysis/SSJava/LocationInference.java index 99a7315f..c3440672 100644 --- a/Robust/src/Analysis/SSJava/LocationInference.java +++ b/Robust/src/Analysis/SSJava/LocationInference.java @@ -1759,9 +1759,21 @@ public class LocationInference { public static boolean isReference(Descriptor desc) { if (desc instanceof FieldDescriptor) { - return ((FieldDescriptor) desc).getType().isPtr(); + + TypeDescriptor type = ((FieldDescriptor) desc).getType(); + if (type.isArray()) { + return false; + } else { + return type.isPtr(); + } + } else if (desc instanceof VarDescriptor) { - return ((VarDescriptor) desc).getType().isPtr(); + TypeDescriptor type = ((VarDescriptor) desc).getType(); + if (type.isArray()) { + return false; + } else { + return type.isPtr(); + } } return false; @@ -3879,8 +3891,10 @@ public class LocationInference { + " idx=" + idx); if (!srcFieldDesc.equals(dstFieldDesc)) { // add a new edge + System.out.println("-ADD EDGE"); getHierarchyGraph(cd).addEdge(srcFieldDesc, dstFieldDesc); } else if (!isReference(srcFieldDesc) && !isReference(dstFieldDesc)) { + System.out.println("-ADD EDGE"); getHierarchyGraph(cd).addEdge(srcFieldDesc, dstFieldDesc); } @@ -5329,10 +5343,10 @@ public class LocationInference { analyzeFlowExpressionNode(md, nametable, an.getSrc(), nodeSetRHS, null, implicitFlowTupleSet, false); - // System.out.println("-analyzeFlowAssignmentNode=" + an.printNode(0)); - // System.out.println("-nodeSetLHS=" + nodeSetLHS); - // System.out.println("-nodeSetRHS=" + nodeSetRHS); - // System.out.println("-implicitFlowTupleSet=" + implicitFlowTupleSet); + System.out.println("-analyzeFlowAssignmentNode=" + an.printNode(0)); + System.out.println("-nodeSetLHS=" + nodeSetLHS); + System.out.println("-nodeSetRHS=" + nodeSetRHS); + System.out.println("-implicitFlowTupleSet=" + implicitFlowTupleSet); // System.out.println("-"); if (an.getOperation().getOp() >= 2 && an.getOperation().getOp() <= 12) {