Skip to content

Commit 679abc1

Browse files
authored
Do not ignore variable use in assignment lhs for liveness (eisop#1587)
1 parent 2c8df9b commit 679abc1

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

dataflow/src/main/java/org/checkerframework/dataflow/livevariable/LiveVarTransfer.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.checkerframework.dataflow.cfg.UnderlyingAST;
99
import org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor;
1010
import org.checkerframework.dataflow.cfg.node.AssignmentNode;
11+
import org.checkerframework.dataflow.cfg.node.LocalVariableNode;
1112
import org.checkerframework.dataflow.cfg.node.MethodInvocationNode;
1213
import org.checkerframework.dataflow.cfg.node.Node;
1314
import org.checkerframework.dataflow.cfg.node.ObjectCreationNode;
@@ -106,6 +107,9 @@ public RegularTransferResult<UnusedAbstractValue, LiveVarStore> visitReturn(
106107
* @param store the live variable store
107108
*/
108109
private void processLiveVarInAssignment(Node variable, Node expression, LiveVarStore store) {
110+
if (!(variable instanceof LocalVariableNode)) {
111+
store.addUseInExpression(variable);
112+
}
109113
store.killLiveVar(new LiveVarNode(variable));
110114
store.addUseInExpression(expression);
111115
}

0 commit comments

Comments
 (0)