Merge pull request #8705 from ethereum/fix-8704

Fuzzer: Permit linking of libraries in compilation framework
This commit is contained in:
chriseth 2020-04-20 15:11:06 +02:00 committed by GitHub
commit a82ed2ac44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 4 deletions

View File

@ -9,13 +9,16 @@ SolidityCompilationFramework::SolidityCompilationFramework(langutil::EVMVersion
solidity::bytes SolidityCompilationFramework::compileContract( solidity::bytes SolidityCompilationFramework::compileContract(
std::string const& _sourceCode, std::string const& _sourceCode,
std::string const& _contractName std::string const& _contractName,
std::map<std::string, solidity::util::h160> const& _libraryAddresses,
frontend::OptimiserSettings _optimization
) )
{ {
std::string sourceCode = _sourceCode; std::string sourceCode = _sourceCode;
m_compiler.setSources({{"", sourceCode}}); m_compiler.setSources({{"", sourceCode}});
m_compiler.setLibraries(_libraryAddresses);
m_compiler.setEVMVersion(m_evmVersion); m_compiler.setEVMVersion(m_evmVersion);
m_compiler.setOptimiserSettings(m_optimiserSettings); m_compiler.setOptimiserSettings(_optimization);
if (!m_compiler.compile()) if (!m_compiler.compile())
{ {
langutil::SourceReferenceFormatter formatter(std::cerr); langutil::SourceReferenceFormatter formatter(std::cerr);

View File

@ -23,12 +23,13 @@ public:
} }
bytes compileContract( bytes compileContract(
std::string const& _sourceCode, std::string const& _sourceCode,
std::string const& _contractName = {} std::string const& _contractName,
std::map<std::string, solidity::util::h160> const& _libraryAddresses = {},
frontend::OptimiserSettings _optimization = frontend::OptimiserSettings::minimal()
); );
protected: protected:
frontend::CompilerStack m_compiler; frontend::CompilerStack m_compiler;
langutil::EVMVersion m_evmVersion; langutil::EVMVersion m_evmVersion;
frontend::OptimiserSettings m_optimiserSettings = frontend::OptimiserSettings::none();
}; };
} }