(* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) (** "Unit" abstract domain *) type t = unit [@@deriving equal, sexp_of] let pp fs () = Format.pp_print_string fs "()" let report_fmt_thunk () fs = pp fs () let init _ = () let join () () = Some () let is_false _ = false let exec_assume () _ = Some () let exec_kill () _ = () let exec_move () _ = () let exec_inst () _ = Some () let exec_intrinsic ~skip_throw:_ _ _ _ _ : t option option = None type from_call = unit [@@deriving compare, equal, sexp] let call ~summaries:_ ~globals:_ ~actuals:_ ~areturn:_ ~formals:_ ~freturn:_ ~locals:_ _ = ((), ()) let recursion_beyond_bound = `skip let post _ _ () = () let retn _ _ _ _ = () let dnf () = [()] let resolve_callee lookup ptr _ = match Reg.of_exp ptr with | Some callee -> (lookup (Reg.name callee), ()) | None -> ([], ()) type summary = unit let pp_summary fs () = Format.pp_print_string fs "()" let create_summary ~locals:_ ~formals:_ _ = ((), ()) let apply_summary _ _ = Some ()