From: bdemsky Date: Mon, 28 Mar 2011 07:41:09 +0000 (+0000) Subject: bug fix... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7de7b76a4f101bf13629561090e9525ef2a9a285;p=IRC.git bug fix... --- diff --git a/Robust/src/Analysis/Pointer/Pointer.java b/Robust/src/Analysis/Pointer/Pointer.java index ed5e4f4e..4973c472 100644 --- a/Robust/src/Analysis/Pointer/Pointer.java +++ b/Robust/src/Analysis/Pointer/Pointer.java @@ -147,26 +147,44 @@ public class Pointer implements HeapAnalysis{ if (!init&&delta.isEmpty()) continue nextdelta; + int lasti=-1; //Compute delta at exit of each node for(int i=startindex; i=i;lasti--) { + FlatNode scurrNode=nodes.get(lasti); + if (isNEEDED(scurrNode)||isINACC(scurrNode)) { + break; + } + } + } + if (i==lasti) { + mustProcess.add(currNode); + graphMap.put(currNode, new Graph(graph)); + fallthru=false; + } + } + if (fallthru) { + if (i==0) { + //base graph works for us + graphMap.put(currNode, new Graph(graph)); + } else { + //just use previous graph + graphMap.put(currNode, graphMap.get(nodes.get(i-1))); + } } } } + nodeGraph=graphMap.get(currNode); delta=processNode(bblock, i, currNode, delta, nodeGraph); //System.out.println("Processing "+currNode+" and generating delta:");