@@ -246,16 +246,6 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
246
246
ReturnKindExt getKind ( ) { result = pos .getKind ( ) }
247
247
}
248
248
249
- /** If `node` corresponds to a sink, gets the normal node for that sink. */
250
- pragma [ nomagic]
251
- private NodeEx toNormalSinkNodeEx ( NodeEx node ) {
252
- exists ( Node n |
253
- node .asNodeOrImplicitRead ( ) = n and
254
- ( Config:: isSink ( n ) or Config:: isSink ( n , _) ) and
255
- result .asNode ( ) = n
256
- )
257
- }
258
-
259
249
private predicate inBarrier ( NodeEx node ) {
260
250
exists ( Node n |
261
251
node .asNode ( ) = n and
@@ -2607,7 +2597,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2607
2597
TPathNodeSink ( NodeEx node , FlowState state ) {
2608
2598
exists ( PathNodeMid sink |
2609
2599
sink .isAtSink ( ) and
2610
- node = toNormalSinkNodeEx ( sink .getNodeEx ( ) ) and
2600
+ node = sink .toNormalSinkNodeEx ( ) and
2611
2601
state = sink .getState ( )
2612
2602
)
2613
2603
} or
@@ -2734,6 +2724,16 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2734
2724
)
2735
2725
}
2736
2726
2727
+ /** If this node corresponds to a sink, gets the normal node for that sink. */
2728
+ pragma [ nomagic]
2729
+ NodeEx toNormalSinkNodeEx ( ) {
2730
+ exists ( Node n |
2731
+ pragma [ only_bind_out ] ( node .asNodeOrImplicitRead ( ) ) = n and
2732
+ ( Config:: isSink ( n ) or Config:: isSink ( n , _) ) and
2733
+ result .asNode ( ) = n
2734
+ )
2735
+ }
2736
+
2737
2737
override PathNodeImpl getASuccessorImpl ( string label ) {
2738
2738
// an intermediate step to another intermediate node
2739
2739
exists ( string l2 | result = this .getSuccMid ( l2 ) |
@@ -2825,7 +2825,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2825
2825
PathNodeSink projectToSink ( string model ) {
2826
2826
this .isAtSink ( ) and
2827
2827
sinkModel ( node , model ) and
2828
- result .getNodeEx ( ) = toNormalSinkNodeEx ( node ) and
2828
+ result .getNodeEx ( ) = this . toNormalSinkNodeEx ( ) and
2829
2829
result .getState ( ) = state
2830
2830
}
2831
2831
}
0 commit comments