more changes...
authorbdemsky <bdemsky>
Fri, 18 Mar 2011 09:47:08 +0000 (09:47 +0000)
committerbdemsky <bdemsky>
Fri, 18 Mar 2011 09:47:08 +0000 (09:47 +0000)
Robust/src/Analysis/Disjoint/EffectsAnalysis.java
Robust/src/Analysis/Pointer/Edge.java
Robust/src/Analysis/Pointer/Graph.java
Robust/src/Analysis/Pointer/Pointer.java

index 25bbe9144d468273518bb22e44b3244580f83f50..64cc5df27cbe66e444d0e75ddd432221bb33ca39 100644 (file)
@@ -189,14 +189,13 @@ public class EffectsAnalysis {
 
 
   public void analyzeFlatSetFieldNode(Set<Edge> dstedges, FieldDescriptor fld, FlatNode currentProgramPoint) {
-
     for (Edge edge:dstedges) {
-      TaintSet  taintSet      = edge.getTaints();
+      TaintSet taintSet = edge.getTaints();
       Alloc affectedAlloc = edge.getDst();
-      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 );
+         add(taint, effect, currentProgramPoint );
        }
     }
   }
index 21c27b932c794f11def31544d0869b360d829be6..c2e2a13846cb8202d5b76a8588abee4e549adcee 100644 (file)
@@ -26,7 +26,7 @@ public class Edge {
     if (srcvar!=null)
       return "<"+srcvar+", "+dst+">";
     else if (fd!=null)
-      return "<"+src+", "+statuspredicate+", "+fd+", "+dst+">";
+      return "<"+src+", "+statuspredicate+", "+fd+", "+dst+ ">";
     else
       return "<"+src+", "+statuspredicate+", [], "+dst+">";
   }
@@ -96,6 +96,13 @@ public class Edge {
     return taints;
   }
 
+  public String taintString() {
+    if (taints==null)
+      return "";
+    else
+      return taints.toString();
+  }
+
   public Edge changeTaintSet(TaintSet ts) {
     Edge newe=copy();
     newe.taints=ts;
index c925ab7220ae72c05ab6edfbb22c8ee392e5a2b2..705966d9aee6f182fb4065ab43f6daab40c19cc1 100644 (file)
@@ -130,7 +130,7 @@ public class Graph {
        if (e.srcvar!=tmp)
          throw new Error(e.srcvar +" is not equal to "+tmp);
        AllocNode n=e.dst;
-       output.println("\t"+tmp.getSymbol()+"->"+n.getID()+";");
+       output.println("\t"+tmp.getSymbol()+"->"+n.getID()+"[label=\""+e.taintString()+"\"];");
       }
     }
   }
@@ -148,7 +148,8 @@ public class Graph {
        String src=node.getID();
        String dst=n.getID();
        String field=e.fd!=null?e.fd.getSymbol():"[]";
-       output.println("\t"+src+"->"+dst+"[label=\""+field+"\"];");
+       String taint=e.taints!=null?":"+e.taintString():"";
+       output.println("\t"+src+"->"+dst+"[label=\""+field+" "+taint+"\"];");
       }
     }
   }
index 1e1c9c070ada39874ac58a177ec68b9a1b51a2a1..fbf43b2898715f401389dcd44aae8ee3450f6adc 100644 (file)
@@ -167,7 +167,7 @@ public class Pointer implements HeapAnalysis{
     }
 
     //DEBUG
-    if (false) {
+    if (true) {
       int debugindex=0;
       for(Map.Entry<BBlock, Graph> e:bbgraphMap.entrySet()) {
        Graph g=e.getValue();