Soteria_c_lib.Ctree_blockmodule MemVal : sig ... endinclude sig ... endmodule Expr : sig ... endtype nonrec sint =
MemVal.S_bounded_int.t Soteria.Bv_values.Bv_solver.Z3_solver.Value.tmodule Range : sig ... endmodule Split_tree : sig ... endA Split_tree is a simplified representation of a tree, that has no offset. It however indicates, on Nodes, at what offset the split occurs, relative to that node's start.
module Node : sig ... endmodule Tree : sig ... endval pp :
Ppx_deriving_runtime.Format.formatter ->
t ->
Ppx_deriving_runtime.unitval show : t -> Ppx_deriving_runtime.stringmodule SM : sig ... endval is_empty : t -> boolval pp_pretty : Stdlib.Format.formatter -> t -> unitval pp_syn :
Ppx_deriving_runtime.Format.formatter ->
syn ->
Ppx_deriving_runtime.unitval show_syn : syn -> Ppx_deriving_runtime.stringval lift_fixes :
offset:'a Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
len:'b Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
MemVal.syn list ->
syn listval lift_miss :
offset:'a Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
len:'b Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
(Cerb_location.t ->
(('c, 'd, MemVal.syn list) Soteria.Symex.Compo_res.t * Cerb_location.t)
Soteria__Symex.Make(Soteria.Bv_values.Bv_solver.Z3_solver).t) ->
Cerb_location.t ->
(('c, 'd, syn list) Soteria.Symex.Compo_res.t * Cerb_location.t)
Soteria__Symex.Make(Soteria.Bv_values.Bv_solver.Z3_solver).tval lift_miss_c :
offset:'a Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
len:'b Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
('c, MemVal.syn list) Soteria_c_lib__Csymex.CSYMEX.Consumer.t ->
('c, syn list) Soteria_c_lib__Csymex.CSYMEX.Consumer.tval of_opt :
?mk_fixes:
(unit ->
Cerb_location.t ->
('a list * Cerb_location.t)
Soteria__Symex.Make(Soteria.Bv_values.Bv_solver.Z3_solver).t) ->
'b option ->
Cerb_location.t ->
(('b, 'c, 'a) Soteria.Symex.Compo_res.t * Cerb_location.t)
Soteria__Symex.Make(Soteria.Bv_values.Bv_solver.Z3_solver).tval with_bound_check :
?mk_fixes:
(unit ->
Cerb_location.t ->
(syn list list * Cerb_location.t)
Soteria__Symex.Make(Soteria.Bv_values.Bv_solver.Z3_solver).t) ->
sint ->
(Tree.t ->
Cerb_location.t ->
(('a * Tree.t, [> `OutOfBounds ] as 'b, syn list) Soteria.Symex.Compo_res.t
* Cerb_location.t)
Soteria__Symex.Make(Soteria.Bv_values.Bv_solver.Z3_solver).t) ->
('a, 'b, syn list) SM.Result.tval assert_exclusively_owned :
t option ->
Cerb_location.t ->
((unit, 'a, syn list) Soteria.Symex.Compo_res.t * Cerb_location.t)
Soteria__Symex.Make(Soteria.Bv_values.Bv_solver.Z3_solver).tval get_raw_tree_owned :
MemVal.S_bounded_int.t Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
MemVal.S_bounded_int.t Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
((MemVal.t,
MemVal.S_bounded_int.t Soteria.Bv_values.Bv_solver.Z3_solver.Value.t)
Soteria__Sym_states__Tree_block.tree,
[> `OutOfBounds ],
syn list)
SM.Result.tval put_raw_tree :
MemVal.S_bounded_int.t Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
Tree.t ->
(unit, [> `OutOfBounds ], syn list) SM.Result.tval consume_bound :
Soteria.Bv_values.Bv_solver.Z3_solver.Value.Expr.t ->
t option ->
(t option, 'a) Soteria_c_lib__Csymex.CSYMEX.Consumer.tval produce_mem_val :
Expr.t ->
Expr.t ->
MemVal.syn ->
t option ->
t option Soteria_c_lib__Csymex.CSYMEX.Producer.tval range_of_low_and_type :
MemVal.S_bounded_int.t Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
Soteria_c_lib.Layout.CF.Ctype.ctype ->
Cerb_location.t ->
((MemVal.S_bounded_int.t Soteria.Bv_values.Bv_solver.Z3_solver.Value.t
* MemVal.S_bounded_int.t Soteria.Bv_values.Bv_solver.Z3_solver.Value.t)
* Cerb_location.t)
Soteria__Symex.Make(Soteria.Bv_values.Bv_solver.Z3_solver).tval sval_leaf :
range:('a * 'a) ->
value:Soteria_c_lib.Typed.T.cval Typed.t ->
ty:Ctype.ctype ->
(MemVal.t, 'a) Soteria__Sym_states__Tree_block.treeval zeros :
range:('a * 'a) ->
(MemVal.t, 'a) Soteria__Sym_states__Tree_block.treeval uninit :
range:('a * 'a) ->
(MemVal.t, 'a) Soteria__Sym_states__Tree_block.treeval mk_fix_typed :
'a Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
Soteria_c_lib.Layout.CF.Ctype.ctype ->
unit ->
Cerb_location.t ->
(syn list list * Cerb_location.t)
Soteria__Symex.Make(Soteria.Bv_values.Bv_solver.Z3_solver).tval mk_fix_any :
'a Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
'b Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
unit ->
syn list listval mk_fix_any_s :
'a Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
'b Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
unit ->
syn list list Csymex.tval decode :
ty:Ctype.ctype ->
ofs:'a Soteria.Bv_values.Bv_solver.Z3_solver.Value.t ->
MemVal.t MemVal.TB.node ->
(Soteria_c_lib.Typed.T.cval Typed.t,
[> `UninitializedMemoryAccess ],
syn list)
Csymex.Result.tval load :
Soteria_c_lib.Typed.T.sint Typed.t ->
Ctype.ctype ->
(Soteria_c_lib.Typed.T.cval Typed.t,
[> `OutOfBounds | `UninitializedMemoryAccess ],
syn list)
SM.Result.tval store :
Soteria_c_lib.Typed.T.sint Typed.t ->
Ctype.ctype ->
Soteria_c_lib.Typed.T.cval Typed.t ->
(unit, [> `OutOfBounds ], syn list) SM.Result.tval zero_range :
Soteria_c_lib.Typed.T.sint Typed.t ->
Soteria_c_lib.Typed.T.sint Typed.t ->
(unit, [> `OutOfBounds ], syn list) SM.Result.tval deinit :
Soteria_c_lib.Typed.T.sint Typed.t ->
Soteria_c_lib.Typed.T.sint Typed.t ->
(unit, [> `OutOfBounds ], syn list) SM.Result.t