From 81f9ad23583e369b9d688cdafb304c46649f805b Mon Sep 17 00:00:00 2001 From: sirasistant Date: Mon, 26 Jan 2026 11:32:55 +0000 Subject: [PATCH] fix: Fuzzer sometimes creates to radix with num_limbs=0 --- .../avm_fuzzer/mutations/instructions/instruction.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/avm_fuzzer/mutations/instructions/instruction.cpp b/barretenberg/cpp/src/barretenberg/avm_fuzzer/mutations/instructions/instruction.cpp index 331beb1c3c8c..041f8865ec05 100644 --- a/barretenberg/cpp/src/barretenberg/avm_fuzzer/mutations/instructions/instruction.cpp +++ b/barretenberg/cpp/src/barretenberg/avm_fuzzer/mutations/instructions/instruction.cpp @@ -695,7 +695,7 @@ std::vector InstructionMutator::generate_toradixbe_instruction( .value = static_cast(is_output_bits ? 1 : 0) }); // Generate value with num_limbs digits - uint32_t num_limbs = std::uniform_int_distribution(1, 256)(rng); + uint32_t num_limbs = std::uniform_int_distribution(0, 256)(rng); bb::avm2::FF value = 0; bb::avm2::FF exponent = 1; for (uint32_t i = 0; i < num_limbs; i++) { @@ -704,9 +704,13 @@ std::vector InstructionMutator::generate_toradixbe_instruction( exponent *= radix; } - // 20% chance to truncate - reduce the number of limbs we request + // 20% chance to truncate - reduce the number of limbs we request or increment the value if we have 0 limbs if (std::uniform_int_distribution(0, 4)(rng) == 0) { - num_limbs--; + if (num_limbs > 0) { + num_limbs--; + } else { + value++; + } } // SET the num_limbs (U32)