Module Cvalue_forward

module Cvalue_forward: sig .. end

Forward operations on Cvalue.V.t


val are_comparable : Abstract_interp.Comp.t -> Cvalue.V.t -> Cvalue.V.t -> bool
val forward_binop_int : context:Eval.binop_context ->
logic:bool ->
typ:Cil_types.typ ->
Cvalue.V.t -> Cil_types.binop -> Cvalue.V.t -> Cvalue.V.t * Alarmset.t
val forward_binop_float : Fval.kind -> Cvalue.V.t -> Cil_types.binop -> Cvalue.V.t -> Cvalue.V.t
val forward_unop : context:Eval.unop_context ->
Cil_types.typ -> Cil_types.unop -> Cvalue.V.t -> Cvalue.V.t * Alarmset.t
val truncate_integer : Cil_types.exp ->
Eval_typ.integer_range -> Cvalue.V.t -> Cvalue.V.t * Alarmset.t
val rewrap_integer : Eval_typ.integer_range -> Cvalue.V.t -> Cvalue.V.t
val reinterpret : Cil_types.typ -> Cvalue.V.t -> Cvalue.V.t
val cast_float_to_int_alarms : Eval_typ.integer_range ->
(unit -> Cil_types.exp) -> Cvalue.V.t -> Cvalue.V.t * Alarmset.t
val cast : src_typ:Cil_types.typ ->
dst_typ:Cil_types.typ ->
Cil_types.exp -> Cvalue.V.t -> Cvalue.V.t * Alarmset.t
val make_volatile : ?typ:Cil_types.typ -> Cvalue.V.t -> Cvalue.V.t

make_volatile ?typ v makes the value v more general (to account for external modifications), whenever typ is None or when it has type qualifier volatile.

val eval_float_constant : float -> Cil_types.fkind -> string option -> Cvalue.V.t
val restrict_float : remove_infinite:bool ->
Cil_types.fkind -> Cil_types.exp -> Cvalue.V.t -> Cvalue.V.t * Alarmset.t