Reviewed By: jberdine Differential Revision: D3327656 fbshipit-source-id: a5e429fmaster
parent
99a58e691d
commit
25578de26d
@ -0,0 +1,24 @@
|
||||
(*
|
||||
* Copyright (c) 2016 - present Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*)
|
||||
|
||||
(** Transfer functions that push abstract states across instructions. A typical client should
|
||||
implement the Make signature to allow the transfer functions to be used with any kind of CFG. *)
|
||||
|
||||
module type S = sig
|
||||
module CFG : ProcCfg.S
|
||||
module Domain : AbstractDomain.S (* abstract domain whose state we propagate *)
|
||||
type extras (* read-only extra state (results of previous analyses, globals, etc.) *)
|
||||
|
||||
(* {A} instr {A'}. [node] is the node of the current instruction *)
|
||||
val exec_instr : Domain.astate -> extras ProcData.t -> CFG.node -> Sil.instr -> Domain.astate
|
||||
end
|
||||
|
||||
module type Make = functor (C : ProcCfg.S) -> sig
|
||||
include (S with module CFG = C)
|
||||
end
|
Loading…
Reference in new issue