From d85df10533ddd6b187eb7eefcf09d6abb061eb01 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Wed, 9 Sep 2020 15:35:48 +0200 Subject: [PATCH] [wp] Ignore unsupported step limit --- src/plugins/wp/ProverWhy3.ml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index 2d9a6ce177b..244ed12a218 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -1206,14 +1206,26 @@ let call_prover prover_config ~timeout ~steplimit drv prover task = Why3.Call_provers.limit_time = Why3.Opt.get_def def.limit_time timeout; Why3.Call_provers.limit_steps = Why3.Opt.get_def def.limit_time steps; } in - let command = Why3.Whyconf.get_complete_command prover_config - ~with_steps:(steps<>None) in + let with_steps = match steps, prover_config.Why3.Whyconf.command_steps with + | None, _ -> false + | Some _, Some _ -> true + | Some _, None -> + Wp_parameters.warning ~once:true ~current:false + "%a does not support steps limit (ignored option)" + Why3.Whyconf.print_prover prover ; + false + in + let command = Why3.Whyconf.get_complete_command prover_config ~with_steps in let call = Why3.Driver.prove_task_prepared ~command ~limit drv task in - Wp_parameters.debug ~dkey "Why3 run prover %a with %i timeout %i steps@." + let pp_steps fmt s = + if with_steps then Format.fprintf fmt "%i steps" (Why3.Opt.get_def (-1) s) + else Format.fprintf fmt "" + in + Wp_parameters.debug ~dkey "Why3 run prover %a with %i timeout %a@." Why3.Whyconf.print_prover prover (Why3.Opt.get_def (-1) timeout) - (Why3.Opt.get_def (-1) steps); + pp_steps steps ; let timeout = match timeout with None -> 0 | Some tlimit -> tlimit in let pcall = { call ; prover ; -- GitLab