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 includes removing invocations where it does not have any impact, e.g., moving ints or arrays. I also added std::move calls for types where it improves performance, such as strings or std::vector.
Added noexcept modifier to move constructors
Added parentheses where they were missing.
Added pointer qualifier to auto declarations
Added checks to prevent broken objects in case of self assignments
For example for TaintFlow the assignment constructor first releases its own resources. If a self assignment TaintFlow f = flow; takes place, this would mean we release the resources and then try to use them, which is obviously problematic.