Skip to content

Commit 3b7ab8f

Browse files
author
Felicity Chapman
committed
Update shared data-flow note to match that for C/C++
1 parent 775ed38 commit 3b7ab8f

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

change-notes/1.23/analysis-csharp.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ The following changes in version 1.23 affect C# analysis in all applications.
3131
`isBarrierGuard`/`isSanitizerGuard` on data-flow and taint-tracking
3232
configurations respectively.
3333
* The data-flow library has been extended with a new feature to aid debugging.
34-
If you want to explore the possible flow from a source, replace `isSink(Node n) { any() }`
35-
with the new `Configuration::hasPartialFlow` predicate. This gives a more complete
36-
picture of the partial flow paths from a given source. The feature is
37-
disabled by default and can be enabled for individual configurations by
34+
Previously, to explore the possible flow from all sources you could specify `isSink(Node n) { any() }` on a configuration.
35+
Now you can use the new `Configuration::hasPartialFlow` predicate,
36+
which gives a more complete picture of the partial flow paths from a given source, including flow that doesn't reach any sink.
37+
The feature is disabled by default and can be enabled for individual configurations by
3838
overriding `int explorationLimit()`.
3939
* `foreach` statements where the body is guaranteed to be executed at least once, such as `foreach (var x in new string[]{ "a", "b", "c" }) { ... }`, are now recognized by all analyses based on the control-flow graph (such as SSA, data flow and taint tracking).
4040
* Fixed the control-flow graph for `switch` statements where the `default` case was not the last case. This had caused the remaining cases to be unreachable. `SwitchStmt.getCase(int i)` now puts the `default` case last.

0 commit comments

Comments
 (0)