From: bdemsky Date: Wed, 23 Mar 2011 01:31:38 +0000 (+0000) Subject: bug fixes X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c1eaabebc75b102ec76a4639dec6bcbf6d9c120f;p=IRC.git bug fixes --- diff --git a/Robust/src/Analysis/Disjoint/Canonical.java b/Robust/src/Analysis/Disjoint/Canonical.java index 60e98711..a4a07b66 100644 --- a/Robust/src/Analysis/Disjoint/Canonical.java +++ b/Robust/src/Analysis/Disjoint/Canonical.java @@ -1500,7 +1500,7 @@ abstract public class Canonical { // unaffected, and if the taint has a non-empty predicate // it is out of context so it should go through, too if( t.getSESE() == null || - seseSet.contains(t)) { + !seseSet.contains(t)) { out.taints.add( t ); } } diff --git a/Robust/src/Analysis/Disjoint/EffectsAnalysis.java b/Robust/src/Analysis/Disjoint/EffectsAnalysis.java index 59a8ae97..900a338a 100644 --- a/Robust/src/Analysis/Disjoint/EffectsAnalysis.java +++ b/Robust/src/Analysis/Disjoint/EffectsAnalysis.java @@ -192,7 +192,7 @@ public class EffectsAnalysis { for (Edge edge:dstedges) { TaintSet taintSet = edge.getTaints(); Alloc affectedAlloc = edge.getDst().getAllocSite(); - Effect effect = new Effect(affectedAlloc, Effect.write, fld); + Effect effect = new Effect(affectedAlloc, Effect.write, fld); if (taintSet!=null) for (Taint taint:taintSet.getTaints()) { add(taint, effect, currentProgramPoint ); diff --git a/Robust/src/Analysis/Pointer/Edge.java b/Robust/src/Analysis/Pointer/Edge.java index a03512ad..fcdc1217 100644 --- a/Robust/src/Analysis/Pointer/Edge.java +++ b/Robust/src/Analysis/Pointer/Edge.java @@ -100,8 +100,9 @@ public class Edge { } public void taintModify(Set seseSet) { - if (taints!=null) + if (taints!=null) { taints=Canonical.removeSESETaints(taints, seseSet); + } } public TaintSet getTaints() { diff --git a/Robust/src/Analysis/Pointer/Pointer.java b/Robust/src/Analysis/Pointer/Pointer.java index e85a6387..b44671a0 100644 --- a/Robust/src/Analysis/Pointer/Pointer.java +++ b/Robust/src/Analysis/Pointer/Pointer.java @@ -171,7 +171,7 @@ public class Pointer implements HeapAnalysis{ } //DEBUG - if (true) { + if (false) { int debugindex=0; for(Map.Entry e:bbgraphMap.entrySet()) { Graph g=e.getValue(); @@ -1071,7 +1071,7 @@ public class Pointer implements HeapAnalysis{ boolean addedge=false; Edge edgetoadd=null; if (e.statuspredicate==Edge.NEW) { - edgetoadd=e; + edgetoadd=e.copy();//we need our own copy to modify below } else { Edge origEdgeKey=e.makeStatus(allocFactory); if (oldgraph.nodeMap.containsKey(origEdgeKey.src)&& @@ -1283,7 +1283,6 @@ public class Pointer implements HeapAnalysis{ graph.oldNodes.put(node, ispresent); } } - Delta processSetFieldElementNode(FlatNode node, Delta delta, Graph graph) { TempDescriptor src; FieldDescriptor fd;