change the debug mode for capturing null dereference to a global compilar option
[IRC.git] / Robust / src / IR / State.java
index 93072f1ae692e53ab108487cd029f46968b9cdce..a5d048b2632df9ed1105c165d342dfd019b2e984 100644 (file)
@@ -41,6 +41,7 @@ public class State {
     this.classpath=new Vector();
     this.cd2locationOrderMap=new Hashtable();
     this.cd2locationPropertyMap=new Hashtable();
+    this.fn2labelMap=new Hashtable();
     this.lines=0;
   }
 
@@ -69,6 +70,7 @@ public class State {
   /** Boolean flag which indicates whether compiler is compiling a task-based
    * program. */
   public boolean JNI=false;
+  public boolean CAPTURE_NULL_DEREFERENCES=false;
   public boolean POINTER=false;
   public boolean COREPROF=false;
   public boolean WEBINTERFACE=false;
@@ -93,7 +95,7 @@ public class State {
   public String OWNERSHIPDEBUGCALLEE=null;
   public String OWNERSHIPDEBUGCALLER=null;
 
-  
+
   public boolean DISJOINT=false;
 
   public int DISJOINTALLOCDEPTH=1;
@@ -131,7 +133,7 @@ public class State {
   public boolean RCR_DEBUG=false;
   public boolean RCR_DEBUG_VERBOSE=false;
   public boolean NOSTALLTR=false;
-  
+
   //SSJava
   public boolean SSJAVA=false;
 
@@ -147,7 +149,7 @@ public class State {
   public boolean METHODEFFECTS=false;
   public static double TRUEPROB=0.8;
   public static boolean PRINTFLAT=false;
-  
+
   //DSM options
   public boolean DSM=false;
   public boolean DSMTASK=false;
@@ -165,7 +167,7 @@ public class State {
   public boolean DELAYCOMP=false;
   public boolean DUALVIEW=false;
   public boolean HYBRID=false;
-  
+
   // Bamboo options
   public boolean MULTICORE=false;
   public boolean MULTICOREGC=false;
@@ -184,7 +186,7 @@ public class State {
   // MGC options
   public boolean MGC=false;
   public boolean OBJECTLOCKDEBUG=false;
-  
+
   //Other options
   public String structfile;
   public String main;
@@ -209,6 +211,7 @@ public class State {
   private int arraycount=0;
   public Hashtable cd2locationOrderMap;
   public Hashtable cd2locationPropertyMap;
+  public Hashtable fn2labelMap;
   public boolean OPTIMIZE=false;
   public boolean LINENUM=false;
 
@@ -258,6 +261,11 @@ public class State {
     return td;
   }
 
+  public static TypeDescriptor getTypeDescriptor(String n) {
+    TypeDescriptor td=new TypeDescriptor(n);
+    return td;
+  }
+
   public void addClass(ClassDescriptor tdn) {
     if (classes.contains(tdn.getSymbol()))
       throw new Error("Class "+tdn.getSymbol()+" defined twice");
@@ -271,15 +279,15 @@ public class State {
       sclasses.add(tdn);
     }
   }
-  
+
   public int numClasses() {
     return numclasses;
   }
-  
+
   public int numInterfaces() {
     return numinterfaces;
   }
-  
+
   public int numStaticBlocks() {
     return numstaticblocks;
   }
@@ -299,7 +307,7 @@ public class State {
   public SymbolTable getTaskSymbolTable() {
     return tasks;
   }
-  
+
   public SymbolTable getSClassSymbolTable() {
     return sclasses;
   }
@@ -351,21 +359,21 @@ public class State {
     tasks.add(td);
     numtasks++;
   }
-  
-  public void addLocationOrder(ClassDescriptor cd, Lattice order){
+
+  public void addLocationOrder(ClassDescriptor cd, Lattice order) {
     cd2locationOrderMap.put(cd,order);
   }
-  
-  public Hashtable getCd2LocationOrder(){
+
+  public Hashtable getCd2LocationOrder() {
     return cd2locationOrderMap;
   }
-  
-  public void addLocationPropertySet(ClassDescriptor cd, Set<String> set){
+
+  public void addLocationPropertySet(ClassDescriptor cd, Set<String> set) {
     cd2locationPropertyMap.put(cd,set);
   }
-  
-  public Hashtable getCd2LocationPropertyMap(){
-    return cd2locationOrderMap;
+
+  public Hashtable getCd2LocationPropertyMap() {
+    return cd2locationPropertyMap;
   }
-  
+
 }