let rec check_indir_label label d = match d with
      | F.D1null | F.D1addr _ -> ()
      | F.D1var (None, _v) -> (* TODO: this might be incorrect !*) ()
          (* unsupported "indirect access at %a based on logical variable '%a' ?"
             Clabels.pretty label pp_var v *)

      | F.D1var (Some (_, l), _) ->
          if label = l then ()
          else unsupported "indirect access at %a of data at %a"
            Clabels.pretty label Clabels.pretty l
      | F.D1base e | F.D1indir e | F.D1proj (e, _) | F.D1depl (e, _)
      | F.D1shift (e, _)
      | F.D1mu (e, _, _) | F.D1muI (e, _, _) 
      | F.D1muRange (e, _) | F.D1muIrange (e, _)
          -> check_indir_label label e