You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.4 KiB

(*
* Copyright (c) 2016-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
open! IStd
module F = Format
type t =
{ annot_map: AnnotReachabilityDomain.astate option
; biabduction: BiabductionSummary.t option
; buffer_overrun: BufferOverrunSummary.t option
; class_loads: ClassLoadsDomain.summary option
; cost: CostDomain.summary option
; crashcontext_frame: Stacktree_t.stacktree option
; litho: LithoDomain.astate option
; purity: PurityDomain.summary option
; quandary: QuandarySummary.t option
; racerd: RacerDDomain.summary option
; resources: ResourceLeakDomain.summary option
; siof: SiofDomain.Summary.astate option
; starvation: StarvationDomain.summary option
; typestate: TypeState.t option
; uninit: UninitDomain.Summary.t option }
let pp pe fmt
{ annot_map
; biabduction
; buffer_overrun
; class_loads
; cost
; crashcontext_frame
; litho
; purity
; quandary
; racerd
; siof
; starvation
; typestate
; uninit } =
let pp_opt prefix pp fmt = function
| Some x ->
F.fprintf fmt "%s: %a@\n" prefix pp x
| None ->
()
in
F.fprintf fmt "%a%a%a%a%a%a%a%a%a%a%a%a%a%a@\n"
(pp_opt "Biabduction" (BiabductionSummary.pp pe))
biabduction (pp_opt "TypeState" TypeState.pp) typestate
(pp_opt "ClassLoads" ClassLoadsDomain.pp_summary)
class_loads
(pp_opt "CrashContext" Crashcontext.pp_stacktree)
crashcontext_frame
(pp_opt "Quandary" QuandarySummary.pp)
quandary
(pp_opt "Siof" SiofDomain.Summary.pp)
siof
(pp_opt "RacerD" RacerDDomain.pp_summary)
racerd (pp_opt "Litho" LithoDomain.pp) litho
(pp_opt "BufferOverrun" BufferOverrunSummary.pp)
buffer_overrun
(pp_opt "AnnotationReachability" AnnotReachabilityDomain.pp)
annot_map
(pp_opt "Uninitialised" UninitDomain.Summary.pp)
uninit
(pp_opt "Cost" CostDomain.pp_summary)
cost
(pp_opt "Starvation" StarvationDomain.pp_summary)
starvation
(pp_opt "Purity" PurityDomain.pp_summary)
purity
let empty =
{ annot_map= None
; biabduction= None
; class_loads= None
; buffer_overrun= None
; crashcontext_frame= None
; cost= None
; litho= None
; purity= None
; quandary= None
; racerd= None
; resources= None
; siof= None
; starvation= None
; typestate= None
; uninit= None }