Remove the expression callback from the code generator functions of Yul builtins.

This commit is contained in:
Daniel Kirchner
2021-09-06 17:07:53 +02:00
parent be95a8172b
commit a683ea7646
4 changed files with 38 additions and 79 deletions
+7 -3
View File
@@ -239,9 +239,13 @@ void CodeTransform::operator()(FunctionCall const& _call)
m_assembly.setSourceLocation(extractSourceLocationFromDebugData(_call.debugData));
if (BuiltinFunctionForEVM const* builtin = m_dialect.builtin(_call.functionName.name))
builtin->generateCode(_call, m_assembly, m_builtinContext, [&](Expression const& _expression) {
visitExpression(_expression);
});
{
for (auto&& [i, arg]: _call.arguments | ranges::views::enumerate | ranges::views::reverse)
if (!builtin->literalArgument(i))
visitExpression(arg);
m_assembly.setSourceLocation(extractSourceLocationFromDebugData(_call.debugData));
builtin->generateCode(_call, m_assembly, m_builtinContext);
}
else
{
AbstractAssembly::LabelID returnLabel = m_assembly.newLabelId();