23 instruction_block.
instructions.end(), new_instructions.begin(), new_instructions.end());
25 return instruction_block;
36 instruction_block.
instructions.end(), new_instructions.begin(), new_instructions.end());
45 if (!new_instructions.empty()) {
47 size_t index = dist(rng);
50 new_instructions.begin(),
51 new_instructions.end());
64 instruction_mutator.mutate_instruction(instr, r);
::FuzzInstruction FuzzInstruction
#define AVM_HIGHEST_MEM_ADDRESS
T select(std::mt19937_64 &rng) const
std::vector< FuzzInstruction > generate_instruction(std::mt19937_64 &rng)
Generate one instruction and optionally backfill.
constexpr VecMutationConfig BASIC_VEC_MUTATION_CONFIGURATION
constexpr uint16_t MAX_INSTRUCTION_BLOCK_SIZE_ON_GENERATION
InstructionBlock generate_instruction_block(std::mt19937_64 &rng, const FuzzerContext &context)
void mutate_instruction_block(InstructionBlock &instruction_block, std::mt19937_64 &rng, const FuzzerContext &context)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static void mutate(std::mt19937_64 &rng, std::vector< T > &vec)
static void mutate(std::mt19937_64 &rng, std::vector< T > &vec, MutateFn &&mutate_element_function)
static void mutate(std::mt19937_64 &rng, std::vector< T > &vec)
std::vector< FuzzInstruction > instructions