From 0d0711f2a788a31335c62512dba8966fb404f5e0 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 18 Feb 2026 11:27:19 +0100 Subject: [PATCH] Java: Add change note. --- java/ql/lib/change-notes/2026-02-18-cfg.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 java/ql/lib/change-notes/2026-02-18-cfg.md diff --git a/java/ql/lib/change-notes/2026-02-18-cfg.md b/java/ql/lib/change-notes/2026-02-18-cfg.md new file mode 100644 index 00000000000..27bd381ec0d --- /dev/null +++ b/java/ql/lib/change-notes/2026-02-18-cfg.md @@ -0,0 +1,16 @@ +--- +category: breaking +--- +* The Java control flow graph (CFG) implementation has been completely + rewritten. The CFG now includes additional nodes to more accurately represent + certain constructs. This also means that any existing code that implicitly + relies on very specific details about the CFG may need to be updated. + The CFG now only includes the nodes that are reachable from the entry point. + Additionally, the following breaking changes have been made: + - `ControlFlowNode.asCall` has been removed - use `Call.getControlFlowNode` instead. + - `ControlFlowNode.getEnclosingStmt` has been removed. + - `ControlFlow::ExprNode` has been removed. + - `ControlFlow::StmtNode` has been removed. + - `ControlFlow::Node` has been removed - this was merely an alias of + `ControlFlowNode`, which is still available. + - Previously deprecated predicates on `BasicBlock` have been removed.