diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll index 29f1a16bf58e..492e2ca1c022 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll @@ -2292,7 +2292,10 @@ module IteratorFlow { predicate localFlowStep(Node nodeFrom, Node nodeTo) { exists(SourceVariable v | nodeFrom != nodeTo and - DataFlowIntegrationImpl::localFlowStep(v, fromDfNode(nodeFrom, v), fromDfNode(nodeTo, v), _) + // Skip use-use steps. These are already accounted for by regular SSA + // flow including proper handling of `modeledFlowBarrier`. + DataFlowIntegrationImpl::localFlowStep(v, fromDfNode(nodeFrom, v), fromDfNode(nodeTo, v), + false) ) } }