-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Dataflow: Don't include arg -> param edges in PathGraph::edges where arg is not reachable #7526
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dataflow: Don't include arg -> param edges in PathGraph::edges where arg is not reachable #7526
Conversation
The changes to the |
Looks like the qltest failures are highlighting a pre-existing bug that I was actually just investigating in a separate context. I don't have a complete overview yet, but I expect to fix it in a separate PR. |
Actually, the fix is simple and would likely conflict, so I'll just push it here. |
…ot reachable This avoids lots of missing-node warnings from `codeql bqrs interpret` as it discards the nodes that occur in the `edges` relation but not `nodes`. The problem arises because subpaths introduced two variants of `reach`, one of which is more restrictive than simply `reach(succ) and succ = pred.getASuccessor()`, so it no longer suffices to just check that the successor is reachable.
c4e0493
to
9479301
Compare
In the `subpaths` section, the last node is now printed without its type if it is the sink of the path. This comes from the commit "Dataflow: Bugfix: include subpaths ending at a sink. " in github#7526
In the `subpaths` section, the last node is now printed without its type if it is the sink of the path. This comes from the commit "Dataflow: Bugfix: include subpaths ending at a sink. " in github#7526
In the `subpaths` section, the last node is now printed without its type if it is the sink of the path. This comes from the commit "Dataflow: Bugfix: include subpaths ending at a sink. " in github#7526
In the `subpaths` section, the last node is now printed without its type if it is the sink of the path. This comes from the commit "Dataflow: Bugfix: include subpaths ending at a sink. " in github#7526
This avoids lots of missing-node warnings from
codeql bqrs interpret
as it discards the nodes that occur in theedges
relation but notnodes
. The problem arises because subpaths introduced two variants ofreach
, one of which is more restrictive than simplyreach(succ) and succ = pred.getASuccessor()
, so it no longer suffices to just check that the successor is reachable.Suggestions re: the best way to test this welcome.