module SigMarks: sig
.. end
SigMarks
works on the marks in function signatures.
type
t = SlicingInternals.pdg_mark PdgIndex.Signature.t
val pretty : Format.formatter -> SlicingInternals.pdg_mark PdgIndex.Signature.t -> unit
val get_input_mark : t -> int -> SlicingInternals.pdg_mark
val get_in_ctrl_mark : t -> SlicingInternals.pdg_mark
val get_in_top_mark : t -> SlicingInternals.pdg_mark
val get_all_input_marks : t ->
(PdgIndex.Signature.in_key * SlicingInternals.pdg_mark) list
val get_matching_input_marks : t ->
Locations.Zone.t ->
(PdgIndex.Signature.in_key * SlicingInternals.pdg_mark) list
exception Visible
val raise_if_visible : unit -> 'a * SlicingInternals.pdg_mark -> unit
val some_visible_out : SlicingInternals.pdg_mark PdgIndex.Signature.t -> bool
val is_topin_visible : t -> bool
val ctrl_visible : t -> bool
val some_visible_in : t -> bool
val merge_inputs_m1_mark : SlicingInternals.pdg_mark PdgIndex.Signature.t -> SlicingInternals.pdg_mark
val get_input_loc_under_mark : SlicingInternals.pdg_mark PdgIndex.Signature.t ->
Locations.Zone.t -> SlicingInternals.pdg_mark
Returns an under-approxamation of the mark for the given location.
If the location is not included in the union of the implicit inputs,
it returns bottom.
Else, it returns the intersection of the inputs that intersect the location.
val something_visible : t -> bool
val get_marked_out_zone : SlicingInternals.pdg_mark PdgIndex.Signature.t -> bool * Locations.Zone.t