Module VarUsageRef

module VarUsageRef: sig .. end
Usage Variable Analysis

exception NoSize
val degree_of_type : Cil_types.typ -> int
Dimensions in the type (0 for non-array)
val alloc_for_type : Cil_types.typ -> int list
Size of dimensions in the type (0 for unknown size)
val cells_in_type : Cil_types.typ -> Integer.t
Number of cells in the type (raise NoSize for unknown size)
val type_of_cells : Cil_types.typ -> Cil_types.typ
Type of multi-dimensional array cells
type usage = 
| NotUsed
| ByValue
| ByAddress
| ByReference
| ByArray of int list (*
Dimension
*)
| ByRefArray of int list (*
Dimension
*)
val compute : unit -> unit
val of_cvar : Cil_types.varinfo -> usage
val of_formal : Cil_types.varinfo -> usage
val of_lvar : Cil_types.logic_var -> usage
val validated_lvar : Cil_types.logic_var -> bool
val validated_cvar : Cil_types.varinfo -> bool
val dump : unit -> unit
val pretty : name:string -> Format.formatter -> usage -> unit