X-Git-Url: http://plrg.eecs.uci.edu/git/?p=repair.git;a=blobdiff_plain;f=Repair%2FRepairCompiler%2FMCC%2FIR%2FConcreteInterferes.java;h=8cb19f8e321761ebabc932a9c5e4c58cea6153e9;hp=eefde7f2f733ad659d9665426cf6625899178330;hb=aba31a4e9a0ea1e1cf30a6f4eb66baca2ae52c5d;hpb=c160ef652bc1c074df6ec4278722c091c8e739e7 diff --git a/Repair/RepairCompiler/MCC/IR/ConcreteInterferes.java b/Repair/RepairCompiler/MCC/IR/ConcreteInterferes.java index eefde7f..8cb19f8 100755 --- a/Repair/RepairCompiler/MCC/IR/ConcreteInterferes.java +++ b/Repair/RepairCompiler/MCC/IR/ConcreteInterferes.java @@ -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");