let get_data_scope_at_stmt kf stmt lval =
  let dpds, _exact, zone = get_lval_zones stmt lval in
  (* TODO : is there something to do with 'exact' ? *)
  let zone = Locations.Zone.join dpds zone in
  let allstmts, info = compute kf in
  let modif_stmts = InitSid.find info zone in
  let (f_scope, fb_scope, b_scope) =
    find_scope allstmts modif_stmts stmt
  in
    R.debug
      "@[<hv 4>get_data_scope_at_stmt %a at %d @\nmodified by = %a@\nf = %a@\nfb = %a@\nb = %a@]"
      (* stmt at *)
      Locations.Zone.pretty zone stmt.sid
      (* modified by *)
      (Cilutil.print_list Cilutil.space Sid.pretty)
      (SidSet.to_list ~keep_default:false modif_stmts)
      (* scope *)
      Cilutil.StmtSet.pretty f_scope
      Cilutil.StmtSet.pretty fb_scope
      Cilutil.StmtSet.pretty b_scope;
    (f_scope, (fb_scope, b_scope))