let reference_of_array ty =
  let rec reftype ty =
    if isArrayType ty then
      let elty = reftype (direct_element_type ty) in
(*       if array_size ty > 0L then *)
        let size = constant_expr (direct_array_size ty) in
        mkTRefArray(elty,size,[])
(*       else *)
(*         (\* Array of zero size, e.g. in struct array hack. *\) *)
(*         TPtr(elty,[]) *)
    else ty
  in
  assert (isArrayType ty);
  reftype ty