let ocaml_int_to_cil v n s =
  let char_size = bitsSizeOf charType in 
  let int_size = bitsSizeOf intType in
  let short_size = bitsSizeOf (TInt(IShort,[]))in 
  let long_size = bitsSizeOf longType in
  let longlong_size = bitsSizeOf (TInt(ILongLong,[])) in
  let i = 
    match s with
      Signed ->
        if (n = char_size) then 
          ISChar
        else if (n = int_size) then
          IInt
        else if (n = short_size) then
          IShort
        else if (n = long_size) then
          ILong
        else if (n = longlong_size) then
          ILongLong
        else
          raise Weird_bitwidth
    | Unsigned ->
        if (n = char_size) then 
          IUChar
        else if (n = int_size) then
          IUInt
        else if (n = short_size) then
          IUShort
        else if (n = long_size) then
          IULong
        else if (n = longlong_size) then
          IULongLong
        else
          raise Weird_bitwidth
  in
  kinteger64 i v