You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The default implementation of FunctionOpInterface::verifyBody() delegates to $_op.front(), but the interface methods of FunctionOpInterface may be shadowed in various ways making this illegal to assume. Concretely, the SingleBlock trait defines front() (and a number of other things) differently, resulting in ambiguous symbol resolution.
This can be pretty easily fixed locally by accessing generically in the generated code: Block &entryBlock = $_op->getRegion(0).front(); but it is a shame that these APIs shadow each other in this way.
The text was updated successfully, but these errors were encountered:
Since the actual implementation class can arbitrarily shadow parts of the FunctionOpInterface exported API, access the body generically instead of via the use of the interface being defined.
Fixesllvm/llvm-project#54807
Differential Revision: https://reviews.llvm.org/D123757
The default implementation of
FunctionOpInterface::verifyBody()
delegates to$_op.front()
, but the interface methods of FunctionOpInterface may be shadowed in various ways making this illegal to assume. Concretely, theSingleBlock
trait definesfront()
(and a number of other things) differently, resulting in ambiguous symbol resolution.This can be pretty easily fixed locally by accessing generically in the generated code:
Block &entryBlock = $_op->getRegion(0).front();
but it is a shame that these APIs shadow each other in this way.The text was updated successfully, but these errors were encountered: