let calculate_magnitude t ~orig = 
  match t.ct_ty with
    Tpointer (et) -> begin
      match convert_type et with
        {ct_ty = Tarray(_,Some sz)} ->
          Some (make_expr_t (CTTexpConstant (CTTconstInteger sz)) type_int ~orig)
      |        {ct_ty = Tarray(_,None)} ->
          failwith "unknown size: why?"
      |        _ -> None
    end
  | _ -> None