@@ -440,7 +440,8 @@ module LocalFlow {
440
440
exists ( CIL:: ReadAccess readFrom , CIL:: ReadAccess readTo |
441
441
CilSsaImpl:: hasAdjacentReadsExt ( def , readFrom , readTo ) and
442
442
nodeTo = TCilExprNode ( readTo ) and
443
- nodeFrom = TCilExprNode ( readFrom )
443
+ nodeFrom = TCilExprNode ( readFrom ) and
444
+ nodeFrom != nodeTo
444
445
)
445
446
or
446
447
// Flow into phi (read) node
@@ -483,7 +484,8 @@ module LocalFlow {
483
484
or
484
485
hasNodePath ( any ( LocalExprStepConfiguration x ) , nodeFrom , nodeTo )
485
486
or
486
- ThisFlow:: adjacentThisRefs ( nodeFrom , nodeTo )
487
+ ThisFlow:: adjacentThisRefs ( nodeFrom , nodeTo ) and
488
+ nodeFrom != nodeTo
487
489
or
488
490
ThisFlow:: adjacentThisRefs ( nodeFrom .( PostUpdateNode ) .getPreUpdateNode ( ) , nodeTo )
489
491
or
@@ -541,7 +543,8 @@ predicate simpleLocalFlowStep(Node nodeFrom, Node nodeTo) {
541
543
exists ( SsaImpl:: DefinitionExt def |
542
544
LocalFlow:: localSsaFlowStepUseUse ( def , nodeFrom , nodeTo ) and
543
545
not FlowSummaryImpl:: Private:: Steps:: prohibitsUseUseFlow ( nodeFrom , _) and
544
- not LocalFlow:: usesInstanceField ( def )
546
+ not LocalFlow:: usesInstanceField ( def ) and
547
+ nodeFrom != nodeTo
545
548
)
546
549
or
547
550
// Flow into phi (read)/uncertain SSA definition node from read
@@ -880,7 +883,8 @@ private module Cached {
880
883
predicate localFlowStepImpl ( Node nodeFrom , Node nodeTo ) {
881
884
LocalFlow:: localFlowStepCommon ( nodeFrom , nodeTo )
882
885
or
883
- LocalFlow:: localSsaFlowStepUseUse ( _, nodeFrom , nodeTo )
886
+ LocalFlow:: localSsaFlowStepUseUse ( _, nodeFrom , nodeTo ) and
887
+ nodeFrom != nodeTo
884
888
or
885
889
exists ( SsaImpl:: DefinitionExt def |
886
890
LocalFlow:: localSsaFlowStep ( def , nodeFrom , nodeTo ) and
0 commit comments