module Misc:sig..end
Utilities for E-ACSL.
val result_lhost : Cil_types.kernel_function -> Cil_types.lhostval result_vi : Cil_types.kernel_function -> Cil_types.varinfoval is_fc_or_compiler_builtin : Cil_types.varinfo -> bool
val is_fc_stdlib_generated : Cil_types.varinfo -> boolReturns true if the varinfo is a generated stdlib function. (For instance
generated function by the Variadic plug-in.
val cty : Cil_types.logic_type -> Cil_types.typAssume that the logic type is indeed a C type. Just return it.
val ptr_base : loc:Cil_types.location -> Cil_types.exp -> Cil_types.expTakes an expression e and return base where base is the address p
if e is of the form p + i and e otherwise.
val ptr_base_and_base_addr : loc:Cil_types.location -> Cil_types.exp -> Cil_types.exp * Cil_types.exp
val term_of_li : Cil_types.logic_info -> Cil_types.termterm_of_li li assumes that li.l_body matches LBterm t
and returns t.
val is_set_of_ptr_or_array : Cil_types.logic_type -> boolChecks whether the given logic type is a set of pointers.
val is_range_free : Cil_types.term -> boolval is_bitfield_pointers : Cil_types.logic_type -> boolval term_has_lv_from_vi : Cil_types.term -> boolval name_of_binop : Cil_types.binop -> stringval finite_min_and_max : Ival.t -> Integer.t * Integer.tfinite_min_and_max i takes the finite ival i and returns its bounds.
module Id_term:Datatype.S_with_collectionswith type t = term
Datatype for terms that relies on physical equality.
val extract_uncoerced_lval : Cil_types.exp -> Cil_types.exp optionUnroll the CastE part of the expression until an Lval is found, and
return it.
If at some point the expression is neither a CastE nor an Lval, then
return None.