diff --git a/compiler/noirc_evaluator/src/ssa.rs b/compiler/noirc_evaluator/src/ssa.rs index c8b2ef26275..461604e2548 100644 --- a/compiler/noirc_evaluator/src/ssa.rs +++ b/compiler/noirc_evaluator/src/ssa.rs @@ -238,6 +238,8 @@ pub fn secondary_passes(brillig: &Brillig) -> Vec { /// In the future, we can potentially execute the actual initial version using the SSA interpreter. pub fn minimal_passes() -> Vec> { vec![ + // We need to get rid of function pointer parameters, otherwise they cause panic in Brillig generation. + SsaPass::new(Ssa::defunctionalize, "Defunctionalization"), // Even the initial SSA generation can result in optimizations that leave a function // which was called in the AST not being called in the SSA. Such functions would cause // panics later, when we are looking for global allocations. diff --git a/tooling/ast_fuzzer/fuzz/src/targets/acir_vs_brillig.rs b/tooling/ast_fuzzer/fuzz/src/targets/acir_vs_brillig.rs index b963ad3c287..b62cccd8a1d 100644 --- a/tooling/ast_fuzzer/fuzz/src/targets/acir_vs_brillig.rs +++ b/tooling/ast_fuzzer/fuzz/src/targets/acir_vs_brillig.rs @@ -46,8 +46,6 @@ pub fn fuzz(u: &mut Unstructured) -> eyre::Result<()> { #[cfg(test)] mod tests { - use crate::targets::tests::is_running_in_ci; - /// ```ignore /// NOIR_ARBTEST_SEED=0x6819c61400001000 \ /// NOIR_AST_FUZZER_SHOW_AST=1 \ @@ -55,10 +53,6 @@ mod tests { /// ``` #[test] fn fuzz_with_arbtest() { - if is_running_in_ci() { - // TODO: Investigate stack overflow and disagreements. - return; - } crate::targets::tests::fuzz_with_arbtest(super::fuzz); } } diff --git a/tooling/ast_fuzzer/src/lib.rs b/tooling/ast_fuzzer/src/lib.rs index 46b620d43a8..c1f57618582 100644 --- a/tooling/ast_fuzzer/src/lib.rs +++ b/tooling/ast_fuzzer/src/lib.rs @@ -119,8 +119,7 @@ impl Default for Config { avoid_large_int_literals: false, avoid_negative_int_literals: false, avoid_loop_control: false, - // TODO(#8543): Allow lambdas when ICE is fixed. - avoid_lambdas: true, + avoid_lambdas: false, comptime_friendly: false, } }