From abe7fd4aa2c30bff98a20bd9bf7032e3d3ee8169 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 2 Sep 2020 12:13:34 +0200 Subject: [PATCH] [Slicing] avoid crash due to invalid command line --- src/plugins/slicing/slicingCmds.ml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/slicing/slicingCmds.ml b/src/plugins/slicing/slicingCmds.ml index a549613bcff..f4f31d5622a 100644 --- a/src/plugins/slicing/slicingCmds.ml +++ b/src/plugins/slicing/slicingCmds.ml @@ -529,6 +529,7 @@ let select_stmt_annots set mark ~spare ~threat ~user_assert ~slicing_pragma ~lo (** Registered as a slicing selection function: Add a selection of the annotations related to a function. *) let select_func_annots set mark ~spare ~threat ~user_assert ~slicing_pragma ~loop_inv ~loop_var kf = + try let zones_decl_vars,pragmas = !Db.Properties.Interp.To_zone.from_func_annots Kinstr.iter_from_func (Some @@ -538,6 +539,13 @@ let select_func_annots set mark ~spare ~threat ~user_assert ~slicing_pragma ~loo kf in let set = select_ZoneAnnot_pragmas set ~spare pragmas kf in select_ZoneAnnot_zones_decl_vars set mark (get_or_raise zones_decl_vars) kf + with Kernel_function.No_Definition -> + SlicingParameters.warning ~wkey:SlicingParameters.wkey_cmdline + "No definition for function '%a'. \ + Slicing requests from the command line are ignored." + Kernel_function.pretty kf; + Cil_datatype.Varinfo.Map.empty + (** Registered as a slicing selection function: Add selection of function outputs. -- GitLab