let rec sizeof_c_object t : Tint.x_size = match t with
    | Ctypes.C_comp comp ->
        begin
          try
            let t = tcomp_of_comp comp in
            let sz = Cil.bitsSizeOf t in
              Tint.size_of_int sz
          with Cil.SizeOfError (msg, t) ->
            unsupported "sizeof %a : %s" !Ast_printer.d_type t msg
        end
    | Ctypes.C_array {Ctypes.arr_flat = Some flat} ->
        let nb = flat.Ctypes.arr_cell_nbr in
        let sz = sizeof_c_object (Ctypes.object_of flat.Ctypes.arr_cell) in
          Tint.cnst_mult_size nb sz
    | _ -> Tint.size_of_int64 (Ctypes.sizeof_object t)