fixed double negate bug, 3rd case of def reach works now
authorjjenista <jjenista>
Fri, 18 Nov 2011 00:11:32 +0000 (00:11 +0000)
committerjjenista <jjenista>
Fri, 18 Nov 2011 00:11:32 +0000 (00:11 +0000)
Robust/src/Analysis/Disjoint/DefiniteReachState.java

index 25e6a2f0d3dcfcac17500f97bd79a6d021d33ced..321d290e8d1d9a480e8c6b245b8ea3770fb5205f 100644 (file)
@@ -73,6 +73,12 @@ public class DefiniteReachState {
       }
       return hash;
     }
+    public String toString() {
+      if( isKnown == DefReachKnown.UNKNOWN ) {
+        return "unknown";
+      }
+      return knownSrc.toString();
+    }
   }
   private static MultiViewMapBuilder<Object> FuBuilder;
   private static BitSet viewFufull;
@@ -182,10 +188,10 @@ public class DefiniteReachState {
       for( MultiKey fullKeyB : Fu.get( viewFu0, 
                                        MultiKey.factory( b ) ).keySet() 
            ) {
-        if( !R.get( viewR01, 
-                    MultiKey.factory( a, 
-                                      ((FuSource)fullKeyB.get( 1 )).knownSrc
-                                      ) ).isEmpty()
+        if( R.get( viewR01, 
+                   MultiKey.factory( a, 
+                                     ((FuSource)fullKeyB.get( 1 )).knownSrc
+                                     ) ).isEmpty()
             ) {
           allEntriesOk = false;
           break;
@@ -706,6 +712,10 @@ public class DefiniteReachState {
     }
     s.append( "}\n" );
 
+    s.append( "Fu = {\n" );
+    s.append( Fu.toString( 2 ) );
+    s.append( "}\n" );
+
     s.append( "Fd = {\n" );
     s.append( Fd.toString( 2 ) );
     s.append( "}\n" );