@@ -1051,8 +1051,12 @@ private predicate flowIntoCallNodeCand2(
10511051}
10521052
10531053private module LocalFlowBigStep {
1054- private class BigStepBarrierNode extends Node {
1055- BigStepBarrierNode ( ) {
1054+ /**
1055+ * A node where some checking is required, and hence the big-step relation
1056+ * is not allowed to step over.
1057+ */
1058+ private class FlowCheckNode extends Node {
1059+ FlowCheckNode ( ) {
10561060 this instanceof CastNode or
10571061 clearsContent ( this , _)
10581062 }
@@ -1072,7 +1076,7 @@ private module LocalFlowBigStep {
10721076 node instanceof OutNodeExt or
10731077 store ( _, _, node , _) or
10741078 read ( _, _, node ) or
1075- node instanceof BigStepBarrierNode
1079+ node instanceof FlowCheckNode
10761080 )
10771081 }
10781082
@@ -1090,7 +1094,7 @@ private module LocalFlowBigStep {
10901094 read ( node , _, next )
10911095 )
10921096 or
1093- node instanceof BigStepBarrierNode
1097+ node instanceof FlowCheckNode
10941098 or
10951099 config .isSink ( node )
10961100 }
@@ -1134,14 +1138,14 @@ private module LocalFlowBigStep {
11341138 exists ( Node mid |
11351139 localFlowStepPlus ( node1 , mid , preservesValue , t , config , cc ) and
11361140 localFlowStepNodeCand1 ( mid , node2 , config ) and
1137- not mid instanceof BigStepBarrierNode and
1141+ not mid instanceof FlowCheckNode and
11381142 nodeCand2 ( node2 , unbind ( config ) )
11391143 )
11401144 or
11411145 exists ( Node mid |
11421146 localFlowStepPlus ( node1 , mid , _, _, config , cc ) and
11431147 additionalLocalFlowStepNodeCand2 ( mid , node2 , config ) and
1144- not mid instanceof BigStepBarrierNode and
1148+ not mid instanceof FlowCheckNode and
11451149 preservesValue = false and
11461150 t = getErasedNodeTypeBound ( node2 ) and
11471151 nodeCand2 ( node2 , unbind ( config ) )
0 commit comments