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 ->
typ:Cil_types.typ ->
Cvalue.V.t -> Cil_types.binop -> Cvalue.V.t -> Cvalue.V.t * Alarmset.t
val forward_binop_float : Fval.rounding_mode ->
Cvalue.V.t -> Cil_types.binop -> Cvalue.V.t -> Cvalue.V.t * bool
val forward_binop_float_alarm : context:Eval.binop_context ->
Fval.rounding_mode ->
Cil_types.fkind ->
Cvalue.V.t -> Cil_types.binop -> Cvalue.V.t -> Cvalue.V.t * Alarmset.t
val forward_unop : check_overflow:bool ->
context:Eval.unop_context ->
Cil_types.typ -> Cil_types.unop -> Cvalue.V.t -> Cvalue.V.t * Alarmset.t
val reinterpret : Cil_types.exp -> Cil_types.typ -> Cvalue.V.t -> Cvalue.V.t * Alarmset.t
val unsafe_reinterpret : Cil_types.typ -> Cvalue.V.t -> Cvalue.V.t
val do_promotion : rounding_mode:Fval.rounding_mode ->
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 : Cil_types.exp ->
float -> Cil_types.fkind -> string option -> Cvalue.V.t Eval.evaluated