mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Add LiteralKind to Dialect.literalArguments
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
This commit is contained in:
co-authored by
Daniel Kirchner
parent
b8fd409f7f
commit
f6a57af809
@@ -21,6 +21,7 @@
|
||||
|
||||
#include <libyul/backends/wasm/WasmDialect.h>
|
||||
|
||||
#include <libyul/AsmData.h>
|
||||
#include <libyul/Exceptions.h>
|
||||
|
||||
using namespace std;
|
||||
@@ -119,8 +120,8 @@ WasmDialect::WasmDialect()
|
||||
m_functions["unreachable"_yulstring].controlFlowSideEffects.terminates = true;
|
||||
m_functions["unreachable"_yulstring].controlFlowSideEffects.reverts = true;
|
||||
|
||||
addFunction("datasize", {i64}, {i64}, true, {true});
|
||||
addFunction("dataoffset", {i64}, {i64}, true, {true});
|
||||
addFunction("datasize", {i64}, {i64}, true, {LiteralKind::String});
|
||||
addFunction("dataoffset", {i64}, {i64}, true, {LiteralKind::String});
|
||||
|
||||
addEthereumExternals();
|
||||
}
|
||||
@@ -221,7 +222,7 @@ void WasmDialect::addEthereumExternals()
|
||||
f.controlFlowSideEffects = ext.controlFlowSideEffects;
|
||||
f.isMSize = false;
|
||||
f.sideEffects.invalidatesStorage = (ext.name == "storageStore");
|
||||
f.literalArguments.reset();
|
||||
f.literalArguments.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,7 +231,7 @@ void WasmDialect::addFunction(
|
||||
vector<YulString> _params,
|
||||
vector<YulString> _returns,
|
||||
bool _movable,
|
||||
std::vector<bool> _literalArguments
|
||||
vector<optional<LiteralKind>> _literalArguments
|
||||
)
|
||||
{
|
||||
YulString name{move(_name)};
|
||||
@@ -241,8 +242,5 @@ void WasmDialect::addFunction(
|
||||
f.returns = std::move(_returns);
|
||||
f.sideEffects = _movable ? SideEffects{} : SideEffects::worst();
|
||||
f.isMSize = false;
|
||||
if (!_literalArguments.empty())
|
||||
f.literalArguments = std::move(_literalArguments);
|
||||
else
|
||||
f.literalArguments.reset();
|
||||
f.literalArguments = std::move(_literalArguments);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user