Module Ctypes


module Ctypes: sig .. end
C-Types

module WpLog: Wp_parameters

type c_int =
| UInt8
| SInt8
| UInt16
| SInt16
| UInt32
| SInt32
| UInt64
| SInt64
Runtime integers.
val compare_c_int : c_int -> c_int -> int
val signed : c_int -> bool
true if ikind is signed
val i_sizeof : c_int -> int
All sizes are in bits
val make_c_int : bool -> int -> c_int
val c_int : Cil_types.ikind -> c_int
Conforms to
val c_int_bounds : c_int -> Big_int.big_int * Big_int.big_int
val c_int_all : c_int list
val c_bool : unit -> c_int
Returns the type of int
val c_char : unit -> c_int
Returns the type of char
val c_ptr : unit -> c_int
Returns the type of pointers
val sub_c_int : c_int -> c_int -> bool

type c_float =
| Float16
| Float32
| Float64
| Float96
| Float128
Runtime floats.
val compare_c_float : c_float -> c_float -> int
val f_sizeof : c_float -> int
val make_c_float : int -> c_float
val c_float : Cil_types.fkind -> c_float
Conforms to
val sub_c_float : c_float -> c_float -> bool

type arrayflat = {
   arr_size : int64; (*number of elements in the array*)
   arr_dim : int; (*number of dimensions in the array*)
   arr_cell : Cil_types.typ; (*type of elementary cells of the flatten array. Never an array.*)
   arr_cell_nbr : int64; (*number of elementary cells in the flatten array*)
}
Array objects, with both the head view and the flatten view.

type arrayinfo = {
   arr_element : Cil_types.typ; (*type of the elements of the array*)
   arr_flat : arrayflat option;
}
type c_object =
| C_int of c_int
| C_float of c_float
| C_pointer of Cil_types.typ
| C_comp of Cil_types.compinfo
| C_array of arrayinfo
Type of variable, inits, field or assignable values.
val idx : c_int -> int
val imemo : (c_int -> 'a) -> c_int -> 'a
val fdx : c_float -> int
val fmemo : (c_float -> 'a) -> c_float -> 'a
val pp_int : Format.formatter -> c_int -> unit
val pp_float : Format.formatter -> c_float -> unit
val pp_object : Format.formatter -> c_object -> unit
val char : char -> int64
val constant : Cil_types.exp -> int64
val get_int : Cil_types.exp -> int64 option
val dimension : Cil_types.typ -> int * int64 * Cil_types.typ
val is_void : Cil_types.typ -> bool
val object_of : Cil_types.typ -> c_object
val object_of_pointed : c_object -> c_object
c_objects of elements pointed to by pointer or array. fatal error if called on other type.
val object_of_array_elem : c_object -> c_object

Utilities


val no_infinite_array : c_object -> bool
val array_dim : arrayinfo -> c_object * int
val int64_max : Int64.t -> Int64.t -> Int64.t
val sizeof_object : c_object -> Int64.t
val field_offset : Cil_datatype.Fieldinfo.t -> int64
val i_convert : c_int -> c_int -> c_int
val f_convert : c_float -> c_float -> c_float
val promote : c_object -> c_object -> c_object
module AinfoComparable: sig .. end
val hash : c_object -> int
val equal : c_object -> c_object -> bool
val basetype : c_object -> int
val compare : c_object -> c_object -> int
val basename : c_object -> string
val pretty : Format.formatter -> c_object -> unit