C++: Add a new library for constructing macro flow #304
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.
This is a new cute little library I made as a response to a request from @bdrodes. The library makes it easy to construct paths that shows how an expression constructed from a set of nested macro expansions ends up in a piece of code. For example, let's say we want to find uses of
sizeof(int)and we see code like this:If you simply create a query that finds occurences of
sizeof(int)you'll flag up the returned expression. However, it's not clear to a user why that expression is being alerted on. With this library we can do:and we then get:
which makes it clear to a user where that
sizeofis coming from.I think this library could be really useful in general for C/C++ queries going forward. I may even upstream it to GitHub if I can find a good place to use it.