File tree Expand file tree Collapse file tree 1 file changed +8
-6
lines changed
java/ql/lib/semmle/code/java/controlflow Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -111,11 +111,14 @@ private PatternCase getClosestPrecedingPatternCase(SwitchCase case) {
111111 * test or guard failing and proceeding to then consider subsequent cases.
112112 */
113113private 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 )
You can’t perform that action at this time.
0 commit comments