Skip to content

About FlowState in C/C++ DataFlow analysis #13390

Answered by rdmarsh2
iiins0mn1a asked this question in Q&A
Discussion options

You must be logged in to vote

What's actually tracked in the middle of the path is a tuple of the DataFlow::Node, the flow state, and some additional call and field context, and the flow state can be modified partway through the path with an appropriate override of hasAdditionalFlowStep. There's multiple pruning stages that progressively add that information, to avoid tracking too much in the early stages. What will happen is that the path from source1 to sink3 will be eliminated in the stage that adds the flow state into the tuple, but not before that. If you have two sets of sources and sinks that you know shouldn't interact, you're likely to be better off from a performance perspective by writing multiple data flow…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@iiins0mn1a
Comment options

Answer selected by iiins0mn1a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants