let annotation_visible ff_opt stmt annot =
SlicingParameters.debug ~level:2
"[SlicingTransform.Visibility.annotation_visible] ?";
match ff_opt with
| Isrc -> true
| Iproto -> false
| Iff (ff,_) ->
let kf = M.get_ff_kf ff in
let pdg = !Db.Pdg.get kf in
try
let ctrl_nodes, decl_nodes, data_info =
!Db.Pdg.find_code_annot_nodes pdg stmt annot
in
let data_visible = data_nodes_visible ff (decl_nodes, data_info) in
let visible = ((all_nodes_visible ff ctrl_nodes) && data_visible) in
SlicingParameters.debug ~level:2
"[SlicingTransform.Visibility.annotation_visible] -> %s"
(if visible then "yes" else "no");
visible
with NoDataInfo ->
(SlicingParameters.debug ~level:2
"[SlicingTransform.Visibility.annotation_visible] not implemented -> invisible";
false)