From 25c4877e13f9d173e926005db6f31b36c310e68e Mon Sep 17 00:00:00 2001 From: TomAFrench Date: Fri, 28 Jul 2023 14:56:07 +0000 Subject: [PATCH] fix: avoid potential panic in `two_complement` --- .../src/ssa_refactor/acir_gen/acir_ir/generated_acir.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/noirc_evaluator/src/ssa_refactor/acir_gen/acir_ir/generated_acir.rs b/crates/noirc_evaluator/src/ssa_refactor/acir_gen/acir_ir/generated_acir.rs index 18c7216a6fa..eb8938b0182 100644 --- a/crates/noirc_evaluator/src/ssa_refactor/acir_gen/acir_ir/generated_acir.rs +++ b/crates/noirc_evaluator/src/ssa_refactor/acir_gen/acir_ir/generated_acir.rs @@ -248,8 +248,11 @@ impl GeneratedAcir { ) -> Expression { let max_power_of_two = FieldElement::from(2_i128).pow(&FieldElement::from(max_bit_size as i128 - 1)); - let inter = &(&Expression::from_field(max_power_of_two) - lhs) * &leading.into(); - lhs.add_mul(FieldElement::from(2_i128), &inter.unwrap()) + + let intermediate = + self.mul_with_witness(&(&Expression::from(max_power_of_two) - lhs), &leading.into()); + + lhs.add_mul(FieldElement::from(2_i128), &intermediate) } /// Returns an expression which represents `lhs * rhs`