Go: show FunctionModel steps in path summaries#13461
Merged
owen-mc merged 3 commits intogithub:mainfrom Jun 22, 2023
Merged
Conversation
Contributor
Author
|
Note: this is even better when combined with #13473. In that case we'd want to show the input and output nodes. |
d2daab9 to
e05ce1b
Compare
Contributor
Author
|
I've dropped the commit which made it only do inputs. I think inputs and outputs is definitely better given that #13473 should make the outputs more sensible. None of the test changes include changes to the select results, just nodes and edges, as you'd expect. I checked through 3 or 4 of them in detail and they were all good. |
e05ce1b to
387f523
Compare
387f523 to
c0fea85
Compare
mbg
approved these changes
Jun 21, 2023
Member
mbg
left a comment
There was a problem hiding this comment.
Looks good, subject to DCA results.
smowton
approved these changes
Jun 21, 2023
Contributor
Author
|
Nothing showed up in the performance evaluation so I'm merging. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
It was highlighted in #13415 that we don't put steps from functions modeled using
DataFlow::FunctionModelorTaintTracking::FunctionModelin path summaries, which can be confusing. This PR does that, showing both inputs and outputs. Here are screenshots showing the option of just inputs as well.Inputs only:

Both inputs and outputs:

Note: as discussed in #13415, step 3 in the second picture goes back to the definition of the variable being tainted, in a way which is quite counter-intuitive. This is a consequence of our use of def-use flow.
The downside of doing both is that any path which goes through the definition of sample (step 3 in the second picture) will have it in the path explanation, even if the path doesn't go through the function that has been modeled. This should be fixed by #13473.