C++: Do not generate this parameters and read/write side effects from static member functions #3231
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.
Previously, when generating IR for code such as
(i.e., a qualified call to a static member function as if it was non-static)
we would generate a
this
parameter and read/write side effect instructions for parameter-1
.This PR removes the 'this' parameter and read/write side effects for such calls. The case for calls of the form
A::f()
remains unchanged as this was already generated correctly.This is the simplest fix I could find that still generate the qualifier without using it. That means that we still generate the call to
foo()
in an example as:even though the result of
getAnA()
isn't used as athis
parameter.An implication of this implementation is that
TranslatedFunctionCall::getQualifier()
can exist even thoughTranslatedFunctionCall::hasQualifier()
doesn't match andTranslatedFunctionCall::getQualifierResult
doesn't exist.