diff --git a/src/main/java/analysis/IDELinearConstantAnalysisProblem.java b/src/main/java/analysis/IDELinearConstantAnalysisProblem.java index 704195f..2b041f6 100644 --- a/src/main/java/analysis/IDELinearConstantAnalysisProblem.java +++ b/src/main/java/analysis/IDELinearConstantAnalysisProblem.java @@ -160,7 +160,7 @@ public FlowFunction getNormalFlowFunction(Unit curr, Unit succ) { public Set computeTargets(DFF source) { Set res = new HashSet<>(); res.add(source); - if (source != zeroValue() && (lop == source && rop instanceof IntConstant || rop == source && lop instanceof IntConstant)) { + if (source != zeroValue() && (lop == source.getValue() && rop instanceof IntConstant || rop == source.getValue() && lop instanceof IntConstant)) { res.add(DFF.asDFF(lhs)); } return res; @@ -292,10 +292,10 @@ public boolean equalTo(EdgeFunction other) { return new EdgeFunction() { @Override public Integer computeTarget(Integer source) { - if (lop == srcNode && rop instanceof IntConstant) { + if (lop == srcNode.getValue() && rop instanceof IntConstant) { IntConstant ic = (IntConstant) rop; return executeBinOperation(op, source, ic.value); - } else if (rop == srcNode && lop instanceof IntConstant) { + } else if (rop == srcNode.getValue() && lop instanceof IntConstant) { IntConstant ic = (IntConstant) lop; return executeBinOperation(op, ic.value, source); }