Skip to content

Commit aa8f798

Browse files
committed
Move condition into isNonFallThroughPredecessor
1 parent 94819e3 commit aa8f798

File tree

1 file changed

+8
-6
lines changed
  • java/ql/lib/semmle/code/java/controlflow

1 file changed

+8
-6
lines changed

java/ql/lib/semmle/code/java/controlflow/Guards.qll

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,14 @@ private PatternCase getClosestPrecedingPatternCase(SwitchCase case) {
111111
* test or guard failing and proceeding to then consider subsequent cases.
112112
*/
113113
private predicate isNonFallThroughPredecessor(SwitchCase sc, ControlFlowNode pred) {
114-
pred.(Expr).getParent*() = sc.getSelectorExpr()
115-
or
116-
pred.(Expr).getParent*() = getClosestPrecedingPatternCase(sc).getGuard()
117-
or
118-
pred = getClosestPrecedingPatternCase(sc)
114+
pred = sc.getControlFlowNode().getAPredecessor() and
115+
(
116+
pred.(Expr).getParent*() = sc.getSelectorExpr()
117+
or
118+
pred.(Expr).getParent*() = getClosestPrecedingPatternCase(sc).getGuard()
119+
or
120+
pred = getClosestPrecedingPatternCase(sc)
121+
)
119122
}
120123

121124
/**
@@ -230,7 +233,6 @@ class Guard extends ExprParent {
230233
not sc instanceof PatternCase and
231234
branch = true and
232235
bb2.getFirstNode() = sc.getControlFlowNode() and
233-
pred = sc.getControlFlowNode().getAPredecessor() and
234236
isNonFallThroughPredecessor(sc, pred) and
235237
bb1 = pred.getBasicBlock()
236238
)

0 commit comments

Comments
 (0)