From 145a4ee6456b90723b8e1a64c9cf90de69a9f0ae Mon Sep 17 00:00:00 2001 From: Bhargava Shastry Date: Mon, 30 Dec 2019 15:21:11 +0100 Subject: [PATCH] Swap mutated block and function def block --- test/tools/ossfuzz/protomutators/YulProtoMutator.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp b/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp index 6b2e2f1b9..2a5f5e10e 100644 --- a/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp +++ b/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp @@ -666,8 +666,13 @@ static YulProtoMutator addFuncDef( std::cout << "YULMUTATOR: Add function def" << std::endl; #endif auto block = static_cast(_message); - auto stmt = block->add_statements(); auto funcDef = new FunctionDef(); + funcDef->set_num_input_params(_seed); + funcDef->set_num_output_params(_seed + block->ByteSizeLong()); + funcDef->mutable_block()->Swap(block); + // block should be empty now since it has been swapped + // with a default instance of function definition block. + auto stmt = block->add_statements(); stmt->set_allocated_funcdef(funcDef); #ifdef DEBUG std::cout << protobuf_mutator::SaveMessageAsText(*_message) << std::endl;