diff --git a/src/kernel_services/plugin_entry_points/db.ml b/src/kernel_services/plugin_entry_points/db.ml
index 9d0a42e6ebda2f54c326da5882d51ae0154901ce..f602bf07dcbe541966723f30099c0e4fd8d7cce7 100644
--- a/src/kernel_services/plugin_entry_points/db.ml
+++ b/src/kernel_services/plugin_entry_points/db.ml
@@ -526,8 +526,20 @@ module Value = struct
 
   let add_formals_to_state = mk_fun "add_formals_to_state"
 
+  let get_fundec_from_stmt stmt =
+    let kf =
+      try
+        Kernel_function.find_englobing_kf stmt
+      with Not_found ->
+        Kernel.fatal "Unknown statement '%a'" Printer.pp_stmt stmt
+    in
+    try
+      Kernel_function.get_definition kf
+    with Kernel_function.No_Definition ->
+      Kernel.fatal "No definition for function %a" Kernel_function.pretty kf
+
   let noassert_get_stmt_state ~after s =
-    if !no_results (Kernel_function.(get_definition (find_englobing_kf s)))
+    if !no_results (get_fundec_from_stmt s)
     then Cvalue.Model.top
     else
       let (find, add), find_by_callstack =
@@ -586,7 +598,7 @@ module Value = struct
 
   exception Is_reachable
   let is_reachable_stmt stmt =
-    if !no_results (Kernel_function.(get_definition (find_englobing_kf stmt)))
+    if !no_results (get_fundec_from_stmt stmt)
     then true
     else
       let ho = try Some (Table_By_Callstack.find stmt) with Not_found -> None in