|
|
@ -617,8 +617,7 @@ let make_results_table exe_env summaries =
|
|
|
|
(fun snapshot acc -> ReportMap.add {threads; snapshot; tenv; procname} acc)
|
|
|
|
(fun snapshot acc -> ReportMap.add {threads; snapshot; tenv; procname} acc)
|
|
|
|
accesses acc
|
|
|
|
accesses acc
|
|
|
|
in
|
|
|
|
in
|
|
|
|
List.fold summaries ~init:ReportMap.empty ~f:(fun acc (proc_desc, summary) ->
|
|
|
|
List.fold summaries ~init:ReportMap.empty ~f:(fun acc (procname, summary) ->
|
|
|
|
let procname = Procdesc.get_proc_name proc_desc in
|
|
|
|
|
|
|
|
let tenv = Exe_env.get_proc_tenv exe_env procname in
|
|
|
|
let tenv = Exe_env.get_proc_tenv exe_env procname in
|
|
|
|
aggregate_post tenv procname acc summary )
|
|
|
|
aggregate_post tenv procname acc summary )
|
|
|
|
|
|
|
|
|
|
|
@ -678,13 +677,10 @@ let aggregate_by_class {InterproceduralAnalysis.procedures; file_exe_env; analyz
|
|
|
|
|> Option.bind ~f:(fun classname ->
|
|
|
|
|> Option.bind ~f:(fun classname ->
|
|
|
|
analyze_file_dependency procname
|
|
|
|
analyze_file_dependency procname
|
|
|
|
|> Option.filter ~f:(fun _ -> should_report_on_proc file_exe_env procname)
|
|
|
|
|> Option.filter ~f:(fun _ -> should_report_on_proc file_exe_env procname)
|
|
|
|
|> Option.map ~f:(fun summary_proc_desc ->
|
|
|
|
|> Option.map ~f:(fun (_, summary) ->
|
|
|
|
Typ.Name.Map.update classname
|
|
|
|
Typ.Name.Map.update classname
|
|
|
|
(function
|
|
|
|
(fun summaries_opt ->
|
|
|
|
| None ->
|
|
|
|
Some ((procname, summary) :: Option.value ~default:[] summaries_opt) )
|
|
|
|
Some [summary_proc_desc]
|
|
|
|
|
|
|
|
| Some summaries ->
|
|
|
|
|
|
|
|
Some (summary_proc_desc :: summaries) )
|
|
|
|
|
|
|
|
acc ) )
|
|
|
|
acc ) )
|
|
|
|
|> Option.value ~default:acc )
|
|
|
|
|> Option.value ~default:acc )
|
|
|
|
|> Typ.Name.Map.filter should_report_on_class
|
|
|
|
|> Typ.Name.Map.filter should_report_on_class
|
|
|
|