Owen Mansel-Chan
449732a5fe
Shared CFG: add hooks for reachability-gated exit epilogue
...
Add opt-in InputSig2 predicates to support a function-exit epilogue whose
placement depends on reachability (such as Go's deferred calls, run at
exit in last-in-first-out order):
- deferExitStep: language-provided exit-epilogue edges, wired into
explicitStep but excluded from the defer-free reachability.
- overridesCallableBodyExit: suppresses the default fall-through edge from
a body's "after" node to the normal exit, so the epilogue can be
interposed on fall-through paths.
To let a language compute the reachability gate for those edges without
observing them (and without a non-monotonic cycle through reachable):
- explicitStep is split into explicitStepCommon (defer-free) plus
deferExitStep, and defaultCfg now negates explicitStepCommon so default
evaluation does not depend on deferExitStep.
- succIgnoringDeferExit exposes the defer-free successor relation, typed
over PreControlFlowNode so it does not depend on reachable.
- getASuccessorIgnoringDeferredExit exposes the same relation as a
ControlFlowNode member for general use.
- isInOrderNode exposes a structural, reachability-free node-identity test
for use inside the negations a language needs when computing its gate.
- EntryNodeImpl is no longer private, so a language can identify the entry
node over PreControlFlowNode.
All InputSig2 additions default to none(), leaving other languages
unchanged.
2026-06-22 23:09:19 +01:00
Owen Mansel-Chan
28afda1726
Shared CFG: add callableExitStep hook for routing epilogue tails to exit nodes
2026-06-22 23:09:15 +01:00
Owen Mansel-Chan
db8b2cff07
Allow overriding endAbruptCompletion for callables
2026-06-22 23:09:13 +01:00
Owen Mansel-Chan
fc055a8699
Initial shared CFG library instantiation for Go
2026-06-22 23:08:12 +01:00
Anders Schack-Mulligen
3a3ec1be90
Cfg: Distinguish parameters from their patterns.
2026-06-18 11:00:30 +02:00
Anders Schack-Mulligen
ff61344afa
Cfg: Add support for until-statements.
2026-06-12 13:55:05 +02:00
Anders Schack-Mulligen
fe8c029ac7
Cfg: Add support for unless-statements.
2026-06-12 13:50:41 +02:00
Anders Schack-Mulligen
912dc9c0bd
Merge pull request #21955 from aschackmull/cfg/try-body-index
...
Cfg: Fold getTryInit into indexed getBody.
2026-06-12 11:36:25 +02:00
Anders Schack-Mulligen
f3ec7087e3
Cfg: Fix type.
2026-06-12 10:02:48 +02:00
Anders Schack-Mulligen
a473565256
Merge pull request #21954 from aschackmull/cfg/consistency-child-idx
...
Cfg: Add consistency check for relevant child indices.
2026-06-08 14:44:20 +02:00
Anders Schack-Mulligen
01173bf383
Cfg: Fold getTryInit into indexed getBody.
2026-06-08 14:03:12 +02:00
Anders Schack-Mulligen
c47135a40b
Cfg: Add consistency check for relevant child indices.
2026-06-08 13:40:33 +02:00
Owen Mansel-Chan
167c837088
Merge pull request #21914 from owen-mc/shared/cfg/if-init
...
Shared CFG: allow init stmts for IfStmt
2026-06-02 22:01:02 +01:00
Owen Mansel-Chan
be9c785cb2
Fix incorrect QLDoc
...
Co-authored-by: Tom Hvitved <hvitved@github.com >
2026-06-02 09:26:13 +01:00
Owen Mansel-Chan
5e5a0437e1
Shared CFG: allow init stmts for IfStmt
2026-05-30 07:35:29 +01:00
github-actions[bot]
cfb18c2477
Post-release preparation for codeql-cli-2.25.6
2026-05-29 12:04:35 +00:00
github-actions[bot]
8b6f969cdb
Release preparation for version 2.25.6
2026-05-29 11:27:54 +00:00
Henry Mercer
9bc0c1b1ab
Revert "Release preparation for version 2.25.6"
2026-05-29 12:13:50 +01:00
github-actions[bot]
44a914e40f
Release preparation for version 2.25.6
2026-05-25 10:23:26 +00:00
Óscar San José
996e79131e
Merge branch 'main' into post-release-prep/codeql-cli-2.25.5
2026-05-22 16:32:30 +02:00
Owen Mansel-Chan
7e6b10e8cf
Merge pull request #21879 from owen-mc/shared/cfg/simpleleafnode
...
Shared CFG: update `simpleLeafNode` to exclude those with additional leaf nodes
2026-05-21 14:58:04 +01:00
Owen Mansel-Chan
c3bafc75ab
Shared CFG: allow statements for init and update of for loop
2026-05-21 13:40:26 +01:00
Owen Mansel-Chan
19f93cd18b
Shared CFG: update simpleLeafNode to exclude those with additional nodes
2026-05-21 13:31:56 +01:00
github-actions[bot]
9f64000962
Post-release preparation for codeql-cli-2.25.5
2026-05-18 15:20:31 +00:00
github-actions[bot]
e38616a2ef
Release preparation for version 2.25.5
2026-05-18 12:05:32 +00:00
Anders Schack-Mulligen
81e1ab7aab
Merge pull request #21808 from aschackmull/cfg/switch-pattern-eval
...
Cfg: Rework CFG for switch case patterns.
2026-05-08 12:48:44 +02:00
Anders Schack-Mulligen
048411e168
Apply suggestions from code review
...
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com >
2026-05-08 08:11:32 +02:00
Anders Schack-Mulligen
48785a0a76
Cfg: Rework CFG for switch case patterns.
2026-05-07 13:07:07 +02:00
github-actions[bot]
7610277199
Post-release preparation for codeql-cli-2.25.4
2026-05-05 10:10:06 +00:00
github-actions[bot]
88e1d86c27
Release preparation for version 2.25.4
2026-05-05 09:34:30 +00:00
Tom Hvitved
e14b654e8a
Update shared/controlflow/codeql/controlflow/ControlFlowGraph.qll
...
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com >
2026-04-29 14:57:35 +02:00
Tom Hvitved
cbe207ab65
C#: Include parameters and their defaults in the CFG
2026-04-29 14:01:09 +02:00
Tom Hvitved
c64223ae56
Merge pull request #21748 from hvitved/shared/remove-deprecated
...
Shared: Remove deprecated code
2026-04-23 14:44:17 +02:00
Tom Hvitved
90ae086822
Shared: Remove deprecated code
2026-04-23 11:24:14 +02:00
Tom Hvitved
1a84b2b555
CFG: Use dense ranking
2026-04-23 11:22:38 +02:00
Tom Hvitved
71fa2166ee
Apply suggestions from code review
...
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com >
2026-04-22 17:06:31 +02:00
Tom Hvitved
39cd86a48e
C#: Move handling of callables into shared control flow library
2026-04-22 14:11:57 +02:00
Anders Schack-Mulligen
f912731cd4
Merge pull request #21565 from aschackmull/csharp/cfg2
...
C#: Replace CFG with the shared implementation
2026-04-21 15:50:38 +02:00
Anders Schack-Mulligen
67c0515d3c
Cfg: Undo consistency check change.
2026-04-21 13:10:03 +02:00
Anders Schack-Mulligen
9de02b7ae6
Cfg: Use consistent casing in additional node tags.
2026-04-21 10:56:10 +02:00
Anders Schack-Mulligen
e928c224ae
C#/Cfg: Some simple review fixes.
2026-04-20 14:43:27 +02:00
github-actions[bot]
a0bab539bb
Post-release preparation for codeql-cli-2.25.3
2026-04-20 12:40:34 +00:00
github-actions[bot]
c861d99802
Release preparation for version 2.25.3
2026-04-20 09:27:23 +00:00
Anders Schack-Mulligen
d5c9fd1085
C#/Cfg: A bit more qldoc.
2026-04-10 15:47:25 +02:00
Anders Schack-Mulligen
ff978d1a8c
C#: Replace CFG.
2026-04-10 15:47:13 +02:00
Anders Schack-Mulligen
b85b02abb4
Cfg: Add dominance predicates to shared ControlFlowNode.
2026-04-10 15:47:10 +02:00
Anders Schack-Mulligen
88aaff863b
Cfg: Extend consistency checks.
2026-04-10 15:47:09 +02:00
Anders Schack-Mulligen
6ffed8523c
Cfg/Java: Move InstanceOfExpr CFG into shared lib.
2026-04-10 15:47:09 +02:00
Anders Schack-Mulligen
0b6c416fd4
Cfg: Support short-circuiting compound assignments.
2026-04-10 15:47:08 +02:00
Anders Schack-Mulligen
a53cffc121
Cfg: Support GotoStmt.
2026-04-10 15:47:07 +02:00