Mark inline assembly as memory-safe #78
Merged
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.
Fixes #52
The
GovernorCountingFractional
contract will be removed in a future release when we bump OZ to v5.1. But for the sake of users that can't upgrade to OZ v5.1, we're marking the use of assembly in that contract as memory-safe.Per the solidity docs:
The only assembly we have is here:
This assembly doesn't write to any memory variables. Nor does it allocate any. Instead, it assigns to return variables which solidity has already assigned to stack slots. It only reads from the
voteData
memory param, and does so within its already-allocated bounds (the caller would have reverted ifvoteData.length != 48
). It doesn't modify any scratch space or the free memory pointer.