Skip to content

Commit 7ffd9b4

Browse files
committed
Dataflow: Include read/store steps when finding non-hidden return.
1 parent 198b321 commit 7ffd9b4

File tree

27 files changed

+135
-27
lines changed

27 files changed

+135
-27
lines changed

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3788,7 +3788,11 @@ private module Subpaths {
37883788
private PathNodeImpl localStepToHidden(PathNodeImpl n) {
37893789
n.getASuccessorImpl() = result and
37903790
result.isHidden() and
3791-
localFlowBigStep(n.getNodeEx(), result.getNodeEx(), _, _, _, _)
3791+
exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() |
3792+
localFlowBigStep(n1, n2, _, _, _, _) or
3793+
store(n1, _, n2, _, _) or
3794+
read(n1, _, n2, _)
3795+
)
37923796
}
37933797

37943798
/**

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3788,7 +3788,11 @@ private module Subpaths {
37883788
private PathNodeImpl localStepToHidden(PathNodeImpl n) {
37893789
n.getASuccessorImpl() = result and
37903790
result.isHidden() and
3791-
localFlowBigStep(n.getNodeEx(), result.getNodeEx(), _, _, _, _)
3791+
exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() |
3792+
localFlowBigStep(n1, n2, _, _, _, _) or
3793+
store(n1, _, n2, _, _) or
3794+
read(n1, _, n2, _)
3795+
)
37923796
}
37933797

37943798
/**

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3788,7 +3788,11 @@ private module Subpaths {
37883788
private PathNodeImpl localStepToHidden(PathNodeImpl n) {
37893789
n.getASuccessorImpl() = result and
37903790
result.isHidden() and
3791-
localFlowBigStep(n.getNodeEx(), result.getNodeEx(), _, _, _, _)
3791+
exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() |
3792+
localFlowBigStep(n1, n2, _, _, _, _) or
3793+
store(n1, _, n2, _, _) or
3794+
read(n1, _, n2, _)
3795+
)
37923796
}
37933797

37943798
/**

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3788,7 +3788,11 @@ private module Subpaths {
37883788
private PathNodeImpl localStepToHidden(PathNodeImpl n) {
37893789
n.getASuccessorImpl() = result and
37903790
result.isHidden() and
3791-
localFlowBigStep(n.getNodeEx(), result.getNodeEx(), _, _, _, _)
3791+
exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() |
3792+
localFlowBigStep(n1, n2, _, _, _, _) or
3793+
store(n1, _, n2, _, _) or
3794+
read(n1, _, n2, _)
3795+
)
37923796
}
37933797

37943798
/**

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3788,7 +3788,11 @@ private module Subpaths {
37883788
private PathNodeImpl localStepToHidden(PathNodeImpl n) {
37893789
n.getASuccessorImpl() = result and
37903790
result.isHidden() and
3791-
localFlowBigStep(n.getNodeEx(), result.getNodeEx(), _, _, _, _)
3791+
exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() |
3792+
localFlowBigStep(n1, n2, _, _, _, _) or
3793+
store(n1, _, n2, _, _) or
3794+
read(n1, _, n2, _)
3795+
)
37923796
}
37933797

37943798
/**

cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3788,7 +3788,11 @@ private module Subpaths {
37883788
private PathNodeImpl localStepToHidden(PathNodeImpl n) {
37893789
n.getASuccessorImpl() = result and
37903790
result.isHidden() and
3791-
localFlowBigStep(n.getNodeEx(), result.getNodeEx(), _, _, _, _)
3791+
exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() |
3792+
localFlowBigStep(n1, n2, _, _, _, _) or
3793+
store(n1, _, n2, _, _) or
3794+
read(n1, _, n2, _)
3795+
)
37923796
}
37933797

37943798
/**

cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3788,7 +3788,11 @@ private module Subpaths {
37883788
private PathNodeImpl localStepToHidden(PathNodeImpl n) {
37893789
n.getASuccessorImpl() = result and
37903790
result.isHidden() and
3791-
localFlowBigStep(n.getNodeEx(), result.getNodeEx(), _, _, _, _)
3791+
exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() |
3792+
localFlowBigStep(n1, n2, _, _, _, _) or
3793+
store(n1, _, n2, _, _) or
3794+
read(n1, _, n2, _)
3795+
)
37923796
}
37933797

37943798
/**

cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3788,7 +3788,11 @@ private module Subpaths {
37883788
private PathNodeImpl localStepToHidden(PathNodeImpl n) {
37893789
n.getASuccessorImpl() = result and
37903790
result.isHidden() and
3791-
localFlowBigStep(n.getNodeEx(), result.getNodeEx(), _, _, _, _)
3791+
exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() |
3792+
localFlowBigStep(n1, n2, _, _, _, _) or
3793+
store(n1, _, n2, _, _) or
3794+
read(n1, _, n2, _)
3795+
)
37923796
}
37933797

37943798
/**

cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3788,7 +3788,11 @@ private module Subpaths {
37883788
private PathNodeImpl localStepToHidden(PathNodeImpl n) {
37893789
n.getASuccessorImpl() = result and
37903790
result.isHidden() and
3791-
localFlowBigStep(n.getNodeEx(), result.getNodeEx(), _, _, _, _)
3791+
exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() |
3792+
localFlowBigStep(n1, n2, _, _, _, _) or
3793+
store(n1, _, n2, _, _) or
3794+
read(n1, _, n2, _)
3795+
)
37923796
}
37933797

37943798
/**

csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3788,7 +3788,11 @@ private module Subpaths {
37883788
private PathNodeImpl localStepToHidden(PathNodeImpl n) {
37893789
n.getASuccessorImpl() = result and
37903790
result.isHidden() and
3791-
localFlowBigStep(n.getNodeEx(), result.getNodeEx(), _, _, _, _)
3791+
exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() |
3792+
localFlowBigStep(n1, n2, _, _, _, _) or
3793+
store(n1, _, n2, _, _) or
3794+
read(n1, _, n2, _)
3795+
)
37923796
}
37933797

37943798
/**

0 commit comments

Comments
 (0)