Reset Yul string repository before each compilation.

This commit is contained in:
Bhargava Shastry
2019-05-28 13:12:39 +02:00
committed by chriseth
parent b95eebee1c
commit dbae0fa939
19 changed files with 89 additions and 30 deletions
+9
View File
@@ -63,6 +63,15 @@ BuiltinFunction const* WasmDialect::builtin(YulString _name) const
return nullptr;
}
WasmDialect const& WasmDialect::instance()
{
static std::unique_ptr<WasmDialect> dialect;
static YulStringRepository::ResetCallback callback{[&] { dialect.reset(); }};
if (!dialect)
dialect = make_unique<WasmDialect>();
return *dialect;
}
void WasmDialect::addFunction(string _name, size_t _params, size_t _returns)
{
YulString name{move(_name)};
+5 -9
View File
@@ -42,17 +42,13 @@ struct Object;
*/
struct WasmDialect: public Dialect
{
BuiltinFunction const* builtin(YulString _name) const override;
static WasmDialect const& instance()
{
static WasmDialect dialect;
return dialect;
}
protected:
WasmDialect();
BuiltinFunction const* builtin(YulString _name) const override;
static WasmDialect const& instance();
private:
void addFunction(std::string _name, size_t _params, size_t _returns);
std::map<YulString, BuiltinFunction> m_functions;