[attrs] look at capture DB only -- selfinblock

Summary:
`AnalysisCallbacks.proc_resolve_attributes` introduces non-determinism because it first looks for the attributes in a (procdesc in a) summary and if it doesn't find it then returns the value in the attribute column from the capture DB.

The problem is:
- the main factor affecting the existence of a summary on-disk is timing;
- the two proc descs are generally different, as the one in the summary is preanalysed and the one in the capture DB is not;
- this extends to the attributes included in the proc desc in some cases.

The plan is to eliminate these calls one by one, replacing with `Attributes.load` which only looks at the capture DB attribute column.

Reviewed By: skcho

Differential Revision: D29817404

fbshipit-source-id: b3fe8ec4d
master
Nikos Gorogiannis 4 years ago committed by Facebook GitHub Bot
parent 567fa3f955
commit c10ddea518

@ -329,7 +329,7 @@ module TransferFunctions = struct
| _ ->
domain
in
let attributes_opt = AnalysisCallbacks.proc_resolve_attributes pname in
let attributes_opt = Attributes.load pname in
let annotations = get_annotations attributes_opt in
let args =
if is_objc_instance attributes_opt then match args with _ :: rest -> rest | [] -> []

Loading…
Cancel
Save