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.
Derived from #1102
This PR changes Phi handling so that Phis are injected at dominance frontiers.
The current implementation adds empty Phi nodes which are later removed and cause variable instances to be missing a definition.
Linked issues:
These changes also improves the ArbitrarySendErc20 detector, which can now detect test case
bad2
:slither/tests/detectors/arbitrary-send-erc20/0.4.25/arbitrary_send_erc20.sol
Lines 44 to 46 in aa3171e
This PR also fixes a previously unknown issue where the existence of a Phi node is incorrectly interpreted as a variable write when
variables_written
is constructed. This bug introduced some small false positives, so their unit tests needed to be updated.