From bb3aae740a93f9d60aed1c2f6acf09b88f5dfdcc Mon Sep 17 00:00:00 2001 From: Afonso Bordado Date: Mon, 12 Sep 2022 17:08:48 +0100 Subject: [PATCH] fuzzgen: Panic on failed NaN Canonicalization pass (#4896) This should never fail anyway, but it's good to know that we aren't accidentally ignoring an input --- cranelift/fuzzgen/src/lib.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cranelift/fuzzgen/src/lib.rs b/cranelift/fuzzgen/src/lib.rs index 515abe9741..6f0d0f64df 100644 --- a/cranelift/fuzzgen/src/lib.rs +++ b/cranelift/fuzzgen/src/lib.rs @@ -166,7 +166,7 @@ where Ok(inputs) } - fn run_func_passes(&self, func: Function) -> Result { + fn run_func_passes(&self, func: Function) -> Function { // Do a NaN Canonicalization pass on the generated function. // // Both IEEE754 and the Wasm spec are somewhat loose about what is allowed @@ -189,16 +189,18 @@ where let flags = settings::Flags::new(settings::builder()); let isa = builder_with_options(false) .expect("Unable to build a TargetIsa for the current host") - .finish(flags)?; + .finish(flags) + .expect("Failed to build TargetISA"); - ctx.canonicalize_nans(isa.as_ref())?; + ctx.canonicalize_nans(isa.as_ref()) + .expect("Failed validation after NaN canonicalization"); - Ok(ctx.func) + ctx.func } fn generate_func(&mut self) -> Result { let func = FunctionGenerator::new(&mut self.u, &self.config).generate()?; - self.run_func_passes(func) + Ok(self.run_func_passes(func)) } pub fn generate_test(mut self) -> Result {