Skip to content

Commit 3c8e078

Browse files
committed
Handle multi node statements in InitializedVariables
1 parent 2caab71 commit 3c8e078

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

spoon-control-flow/src/main/java/fr/inria/dataflow/InitializedVariables.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ private InitFactors initialized(ControlFlowNode n, HashMap<ControlFlowNode, Init
152152

153153

154154
Set<CtVariableReference> defN = includeDefinedInNode ? defined(n) : new HashSet<CtVariableReference>();
155-
//[Used_n - Def_n]
156-
Set<CtVariableReference> usedN = includeDefinedInNode ? used(n) : new HashSet<CtVariableReference>();
155+
//[Used_n - Def_n] - Only get used variables for single node statements. Multi node statements might define new ones that aren't in scope anymore
156+
Set<CtVariableReference> usedN = (includeDefinedInNode && n.getIsStatementEnd()) ? used(n) : new HashSet<CtVariableReference>();
157157
usedN.removeAll(defN);
158158

159159
InitFactors result = new InitFactors();

0 commit comments

Comments
 (0)