@@ -70,7 +70,7 @@ pair<YulString, BuiltinFunctionForEVM> createEVMFunction(
70
70
f.controlFlowSideEffects .terminates = evmasm::SemanticInformation::terminatesControlFlow (_instruction);
71
71
f.controlFlowSideEffects .reverts = evmasm::SemanticInformation::reverts (_instruction);
72
72
f.isMSize = _instruction == evmasm::Instruction::MSIZE;
73
- f.literalArguments .reset ();
73
+ f.literalArguments .clear ();
74
74
f.instruction = _instruction;
75
75
f.generateCode = [_instruction](
76
76
FunctionCall const & _call,
@@ -90,7 +90,7 @@ pair<YulString, BuiltinFunctionForEVM> createFunction(
90
90
size_t _params,
91
91
size_t _returns,
92
92
SideEffects _sideEffects,
93
- vector<bool > _literalArguments,
93
+ vector<optional<LiteralKind> > _literalArguments,
94
94
std::function<void (FunctionCall const &, AbstractAssembly&, BuiltinContext&, std::function<void (Expression const &)>)> _generateCode
95
95
)
96
96
{
@@ -102,10 +102,7 @@ pair<YulString, BuiltinFunctionForEVM> createFunction(
102
102
f.parameters .resize (_params);
103
103
f.returns .resize (_returns);
104
104
f.sideEffects = std::move (_sideEffects);
105
- if (!_literalArguments.empty ())
106
- f.literalArguments = std::move (_literalArguments);
107
- else
108
- f.literalArguments .reset ();
105
+ f.literalArguments = std::move (_literalArguments);
109
106
f.isMSize = false ;
110
107
f.instruction = {};
111
108
f.generateCode = std::move (_generateCode);
@@ -135,7 +132,7 @@ map<YulString, BuiltinFunctionForEVM> createBuiltins(langutil::EVMVersion _evmVe
135
132
136
133
if (_objectAccess)
137
134
{
138
- builtins.emplace (createFunction (" linkersymbol" , 1 , 1 , SideEffects{}, {true }, [](
135
+ builtins.emplace (createFunction (" linkersymbol" , 1 , 1 , SideEffects{}, {LiteralKind::String }, [](
139
136
FunctionCall const & _call,
140
137
AbstractAssembly& _assembly,
141
138
BuiltinContext&,
@@ -145,7 +142,7 @@ map<YulString, BuiltinFunctionForEVM> createBuiltins(langutil::EVMVersion _evmVe
145
142
Expression const & arg = _call.arguments .front ();
146
143
_assembly.appendLinkerSymbol (std::get<Literal>(arg).value .str ());
147
144
}));
148
- builtins.emplace (createFunction (" datasize" , 1 , 1 , SideEffects{}, {true }, [](
145
+ builtins.emplace (createFunction (" datasize" , 1 , 1 , SideEffects{}, {LiteralKind::String }, [](
149
146
FunctionCall const & _call,
150
147
AbstractAssembly& _assembly,
151
148
BuiltinContext& _context,
@@ -167,7 +164,7 @@ map<YulString, BuiltinFunctionForEVM> createBuiltins(langutil::EVMVersion _evmVe
167
164
_assembly.appendDataSize (subIdPath);
168
165
}
169
166
}));
170
- builtins.emplace (createFunction (" dataoffset" , 1 , 1 , SideEffects{}, {true }, [](
167
+ builtins.emplace (createFunction (" dataoffset" , 1 , 1 , SideEffects{}, {LiteralKind::String }, [](
171
168
FunctionCall const & _call,
172
169
AbstractAssembly& _assembly,
173
170
BuiltinContext& _context,
@@ -210,7 +207,7 @@ map<YulString, BuiltinFunctionForEVM> createBuiltins(langutil::EVMVersion _evmVe
210
207
2 ,
211
208
0 ,
212
209
SideEffects{false , false , false , false , true },
213
- {true , false },
210
+ {LiteralKind::String, std::nullopt },
214
211
[](
215
212
FunctionCall const & _call,
216
213
AbstractAssembly& _assembly,
@@ -230,7 +227,7 @@ map<YulString, BuiltinFunctionForEVM> createBuiltins(langutil::EVMVersion _evmVe
230
227
1 ,
231
228
1 ,
232
229
SideEffects{},
233
- {true },
230
+ {LiteralKind::String },
234
231
[](
235
232
FunctionCall const & _call,
236
233
AbstractAssembly& _assembly,
0 commit comments