Module InferModules__AnalyzerTester.StructuredSil
structured language that makes it easy to write small test programs in OCaml
type assertion
= string
type label
= int
type structured_instr
=
|
Cmd of InferIR.Sil.instr
|
If of InferIR.Exp.t * structured_instr list * structured_instr list
|
While of InferIR.Exp.t * structured_instr list
try/catch/finally. note: there is no throw. the semantics are that every command in the try block is assumed to be possibly-excepting, and the catch block captures all exceptions
|
Try of structured_instr list * structured_instr list * structured_instr list
|
Invariant of assertion * label
gets autotranslated into assertions about abstract state
val pp_structured_instr : InferIR.Sil.F.formatter -> structured_instr -> unit
val pp_structured_instr_list : F.formatter -> structured_instr list -> unit
val pp_structured_program : F.formatter -> structured_instr list -> unit
val dummy_typ : InferIR.Typ.t
val dummy_loc : InferBase.Location.t
val dummy_procname : InferIR.Typ.Procname.t
val label_counter : int InferStdlib.IStd.ref
val fresh_label : unit -> int
val invariant : assertion -> structured_instr
val pvar_of_str : string -> InferIR.Pvar.t
val var_of_str : string -> InferIR.Exp.t
val ident_of_str : string -> InferIR.Ident.t
val unknown_exp : InferIR.Exp.t
val make_load : rhs_typ:InferIR.Typ.t -> InferIR.Ident.t -> InferIR.Exp.t -> structured_instr
val make_set : rhs_typ:InferIR.Typ.t -> lhs_exp:InferIR.Exp.t -> rhs_exp:InferIR.Exp.t -> structured_instr
val make_call : ?procname:InferIR.Typ.Procname.t -> ?return:(InferIR.Ident.t * InferIR.Typ.t) -> (InferIR.Exp.t * InferIR.Typ.t) list -> structured_instr
val make_store : rhs_typ:InferIR.Typ.t -> InferIR.Exp.t -> string -> rhs_exp:InferIR.Exp.t -> structured_instr
val make_load_fld : rhs_typ:InferIR.Typ.t -> string -> string -> InferIR.Exp.t -> structured_instr
val id_assign_exp : ?rhs_typ:InferIR.Typ.t -> string -> InferIR.Exp.t -> structured_instr
val id_assign_id : ?rhs_typ:InferIR.Typ.t -> string -> string -> structured_instr
val id_assign_var : ?rhs_typ:InferIR.Typ.t -> string -> string -> structured_instr
val id_set_id : ?rhs_typ:InferIR.Typ.t -> string -> string -> structured_instr
val var_assign_exp : rhs_typ:InferIR.Typ.t -> string -> InferIR.Exp.t -> structured_instr
val var_assign_int : string -> int -> structured_instr
val var_assign_id : ?rhs_typ:InferIR.Typ.t -> string -> string -> structured_instr
val var_assign_addrof_var : ?rhs_typ:InferIR.Typ.t -> string -> string -> structured_instr
val call_unknown : ?return:(string * InferIR.Typ.t) -> string InferStdlib.IStd.List.t -> structured_instr