Module InferIR__DecompiledExp

The Smallfoot Intermediate Language: Decompiled Expressions

module F = Format
type t =
| Darray of t * t
| Dbinop of InferIR.Binop.t * t * t
| Dconst of InferIR.Const.t
| Dsizeof of InferIR.Typ.t * t option * InferIR.Subtype.t
| Dderef of t
| Dfcall of t * t list * InferBase.Location.t * InferIR.CallFlags.t
| Darrow of t * InferIR.Typ.Fieldname.t
| Ddot of t * InferIR.Typ.Fieldname.t
| Dpvar of InferIR.Pvar.t
| Dpvaraddr of InferIR.Pvar.t
| Dunop of InferIR.Unop.t * t
| Dunknown
| Dretcall of t * t list * InferBase.Location.t * InferIR.CallFlags.t

expression representing the result of decompilation

type vpath = t option

Value paths: identify an occurrence of a value in a symbolic heap each expression represents a path, with Dpvar being the simplest one

val to_string : t ‑> string

convert to a string

val pp_vpath : InferStdlib.Pp.env ‑> F.formatter ‑> vpath ‑> unit

Pretty print a value path

val has_tmp_var : t ‑> bool

return true if dexp contains a temporary pvar