projects
/
repair.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Additional enhancements to compute mustremove and cantremove sets for
[repair.git]
/
Repair
/
RepairCompiler
/
MCC
/
IR
/
ConcreteInterferes.java
diff --git
a/Repair/RepairCompiler/MCC/IR/ConcreteInterferes.java
b/Repair/RepairCompiler/MCC/IR/ConcreteInterferes.java
index eefde7f2f733ad659d9665426cf6625899178330..8cb19f8e321761ebabc932a9c5e4c58cea6153e9 100755
(executable)
--- 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;
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");
leftdescriptor=((VarExpr)e).getVar();
} else throw new Error("Bad Expr");