Skip to content

Commit 47fd64f

Browse files
authored
Merge pull request #7130 from hvitved/cfg/dead-end-consistency
Shared CFG: Add "dead end" consistency query
2 parents 2b2ff77 + fd0e318 commit 47fd64f

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -943,4 +943,9 @@ module Consistency {
943943
strictcount(getASuccessor(node, t)) > 1 and
944944
successor = getASuccessor(node, t)
945945
}
946+
947+
query predicate deadEnd(Node node) {
948+
not node instanceof TExitNode and
949+
not exists(getASuccessor(node, _))
950+
}
946951
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
deadEnd
2+
| SplittingStressTest.cs:95:13:95:14 | [b5 (line 3): false] access to parameter b5 |
3+
| SplittingStressTest.cs:95:13:95:14 | [b5 (line 3): true] access to parameter b5 |

ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -943,4 +943,9 @@ module Consistency {
943943
strictcount(getASuccessor(node, t)) > 1 and
944944
successor = getASuccessor(node, t)
945945
}
946+
947+
query predicate deadEnd(Node node) {
948+
not node instanceof TExitNode and
949+
not exists(getASuccessor(node, _))
950+
}
946951
}

0 commit comments

Comments
 (0)