Additional enhancements to compute mustremove and cantremove sets for
[repair.git] / Repair / RepairCompiler / MCC / IR / ConcreteInterferes.java
index eefde7f2f733ad659d9665426cf6625899178330..8cb19f8e321761ebabc932a9c5e4c58cea6153e9 100755 (executable)
@@ -319,7 +319,14 @@ class ConcreteInterferes {
                    leftdescriptor=((VarExpr)lexpr2).getVar();
                else if (lexpr2 instanceof DotExpr) {
                    Expr e=lexpr2;
-                   for(;e instanceof DotExpr;e=((DotExpr)e).getExpr()) ;
+                   do {
+                       for(;e instanceof DotExpr;e=((DotExpr)e).getExpr()) ;
+                       if (e instanceof VarExpr)
+                           break;
+                       if (e instanceof CastExpr)
+                           e=((CastExpr)e).getExpr();
+                       else throw new Error("Bad Expr Type:"+e.name());
+                   } while (true);
                    leftdescriptor=((VarExpr)e).getVar();
                } else throw new Error("Bad Expr");