@@ -1051,8 +1051,12 @@ private predicate flowIntoCallNodeCand2(
1051
1051
}
1052
1052
1053
1053
private 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 ( ) {
1056
1060
this instanceof CastNode or
1057
1061
clearsContent ( this , _)
1058
1062
}
@@ -1072,7 +1076,7 @@ private module LocalFlowBigStep {
1072
1076
node instanceof OutNodeExt or
1073
1077
store ( _, _, node , _) or
1074
1078
read ( _, _, node ) or
1075
- node instanceof BigStepBarrierNode
1079
+ node instanceof FlowCheckNode
1076
1080
)
1077
1081
}
1078
1082
@@ -1090,7 +1094,7 @@ private module LocalFlowBigStep {
1090
1094
read ( node , _, next )
1091
1095
)
1092
1096
or
1093
- node instanceof BigStepBarrierNode
1097
+ node instanceof FlowCheckNode
1094
1098
or
1095
1099
config .isSink ( node )
1096
1100
}
@@ -1134,14 +1138,14 @@ private module LocalFlowBigStep {
1134
1138
exists ( Node mid |
1135
1139
localFlowStepPlus ( node1 , mid , preservesValue , t , config , cc ) and
1136
1140
localFlowStepNodeCand1 ( mid , node2 , config ) and
1137
- not mid instanceof BigStepBarrierNode and
1141
+ not mid instanceof FlowCheckNode and
1138
1142
nodeCand2 ( node2 , unbind ( config ) )
1139
1143
)
1140
1144
or
1141
1145
exists ( Node mid |
1142
1146
localFlowStepPlus ( node1 , mid , _, _, config , cc ) and
1143
1147
additionalLocalFlowStepNodeCand2 ( mid , node2 , config ) and
1144
- not mid instanceof BigStepBarrierNode and
1148
+ not mid instanceof FlowCheckNode and
1145
1149
preservesValue = false and
1146
1150
t = getErasedNodeTypeBound ( node2 ) and
1147
1151
nodeCand2 ( node2 , unbind ( config ) )
0 commit comments