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
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 }
|