mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Make optimiser settings available to assembly stack.
This commit is contained in:
@@ -28,14 +28,18 @@ extern "C" int LLVMFuzzerTestOneInput(uint8_t const* _data, size_t _size)
|
||||
return 0;
|
||||
|
||||
string input(reinterpret_cast<char const*>(_data), _size);
|
||||
AssemblyStack stack(langutil::EVMVersion(), AssemblyStack::Language::StrictAssembly);
|
||||
AssemblyStack stack(
|
||||
langutil::EVMVersion(),
|
||||
AssemblyStack::Language::StrictAssembly,
|
||||
dev::solidity::OptimiserSettings::full()
|
||||
);
|
||||
|
||||
if (!stack.parseAndAnalyze("source", input))
|
||||
return 0;
|
||||
|
||||
try
|
||||
{
|
||||
MachineAssemblyObject obj = stack.assemble(AssemblyStack::Machine::EVM, /*optimize=*/true);
|
||||
MachineAssemblyObject obj = stack.assemble(AssemblyStack::Machine::EVM);
|
||||
solAssert(obj.bytecode, "");
|
||||
}
|
||||
catch (StackTooDeepError const&)
|
||||
|
||||
@@ -55,11 +55,18 @@ extern "C" int LLVMFuzzerTestOneInput(uint8_t const* _data, size_t _size)
|
||||
}))
|
||||
return 0;
|
||||
|
||||
AssemblyStack stack(EVMVersion::petersburg(), AssemblyStack::Language::StrictAssembly);
|
||||
AssemblyStack stack(
|
||||
EVMVersion::petersburg(),
|
||||
AssemblyStack::Language::StrictAssembly,
|
||||
dev::solidity::OptimiserSettings::full()
|
||||
);
|
||||
try
|
||||
{
|
||||
if (!stack.parseAndAnalyze("source", input) || !stack.parserResult()->code ||
|
||||
!stack.parserResult()->analysisInfo)
|
||||
if (
|
||||
!stack.parseAndAnalyze("source", input) ||
|
||||
!stack.parserResult()->code ||
|
||||
!stack.parserResult()->analysisInfo
|
||||
)
|
||||
return 0;
|
||||
}
|
||||
catch (Exception const&)
|
||||
|
||||
@@ -27,7 +27,11 @@ extern "C" int LLVMFuzzerTestOneInput(uint8_t const* _data, size_t _size)
|
||||
return 0;
|
||||
|
||||
string input(reinterpret_cast<char const*>(_data), _size);
|
||||
AssemblyStack stack(langutil::EVMVersion(), AssemblyStack::Language::StrictAssembly);
|
||||
AssemblyStack stack(
|
||||
langutil::EVMVersion(),
|
||||
AssemblyStack::Language::StrictAssembly,
|
||||
dev::solidity::OptimiserSettings::full()
|
||||
);
|
||||
|
||||
if (!stack.parseAndAnalyze("source", input))
|
||||
return 0;
|
||||
|
||||
@@ -46,7 +46,11 @@ DEFINE_PROTO_FUZZER(Function const& _input)
|
||||
}
|
||||
|
||||
// AssemblyStack entry point
|
||||
AssemblyStack stack(langutil::EVMVersion(), AssemblyStack::Language::StrictAssembly);
|
||||
AssemblyStack stack(
|
||||
langutil::EVMVersion(),
|
||||
AssemblyStack::Language::StrictAssembly,
|
||||
dev::solidity::OptimiserSettings::full()
|
||||
);
|
||||
|
||||
// Parse protobuf mutated YUL code
|
||||
if (!stack.parseAndAnalyze("source", yul_source))
|
||||
|
||||
@@ -52,7 +52,11 @@ DEFINE_PROTO_FUZZER(Function const& _input)
|
||||
}
|
||||
|
||||
// AssemblyStack entry point
|
||||
AssemblyStack stack(langutil::EVMVersion(), AssemblyStack::Language::StrictAssembly);
|
||||
AssemblyStack stack(
|
||||
langutil::EVMVersion(),
|
||||
AssemblyStack::Language::StrictAssembly,
|
||||
dev::solidity::OptimiserSettings::full()
|
||||
);
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user