From db9372463e77483f905436e4553b05a975df3d15 Mon Sep 17 00:00:00 2001 From: Bhargava Shastry Date: Thu, 15 Apr 2021 14:25:22 +0200 Subject: [PATCH] Rename function. --- test/tools/ossfuzz/YulToEvmDifferentialFuzzer.cpp | 9 +++++---- test/tools/ossfuzz/protomutators/YulProtoMutator.cpp | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/test/tools/ossfuzz/YulToEvmDifferentialFuzzer.cpp b/test/tools/ossfuzz/YulToEvmDifferentialFuzzer.cpp index 8c1297357..3b693d16a 100644 --- a/test/tools/ossfuzz/YulToEvmDifferentialFuzzer.cpp +++ b/test/tools/ossfuzz/YulToEvmDifferentialFuzzer.cpp @@ -58,7 +58,7 @@ using namespace std; namespace { /// @returns true if there are no recursive functions, false otherwise. -bool recursiveFunctionExists(Dialect const& _dialect, yul::Object& _object) +bool recursiveFunctionHasUnreachableVariables(Dialect const& _dialect, yul::Object& _object) { auto recursiveFunctions = CallGraphGenerator::callGraph(*_object.code).recursiveFunctions(); for(auto&& [function, variables]: CompilabilityChecker{ @@ -150,7 +150,7 @@ DEFINE_PROTO_FUZZER(Program const& _input) string step = "stackLimitEvader"; optimizerTest.setStep(step); shared_ptr astBlock = optimizerTest.run(); - bool recursiveFunction = recursiveFunctionExists(dialect, *subObject); + bool recursiveFunction = recursiveFunctionHasUnreachableVariables(dialect, *subObject); string optimisedSubObject = AsmPrinter{}(*astBlock); string optimisedProgram = Whiskers(R"( object "main" { @@ -200,6 +200,9 @@ DEFINE_PROTO_FUZZER(Program const& _input) ); auto callMessageOpt = YulEvmoneUtility{}.callMessage(deployResultOpt.create_address); evmc::result callResultOpt = hostContext.call(callMessageOpt); + // Bail out if we ran out of gas. + if (callResultOpt.status_code == EVMC_OUT_OF_GAS) + return 0; bool noRevertInSource = yulSubObject.find("revert") == string::npos; bool noInvalidInSource = yulSubObject.find("invalid") == string::npos; if (noRevertInSource) @@ -218,8 +221,6 @@ DEFINE_PROTO_FUZZER(Program const& _input) (!noInvalidInSource && callResultOpt.status_code == EVMC_INVALID_INSTRUCTION)), "Optimised call failed." ); - if (callResultOpt.status_code == EVMC_OUT_OF_GAS) - return; ostringstream optimizedState; optimizedState << EVMHostPrinter{hostContext, deployResultOpt.create_address}.storageOnly(); diff --git a/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp b/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp index de52c1a1d..e15c7fd46 100644 --- a/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp +++ b/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp @@ -46,7 +46,7 @@ static LPMPostProcessor addStoreToZero( ); static LPMPostProcessor addStackPressure( - [](FunctionDef* _message, unsigned _seed) + [](FunctionDef* _message, unsigned) { { MutationInfo m{_message, "Added stack pressure"};