Module IR.DecompiledExp

The Smallfoot Intermediate Language: Decompiled Expressions

module F = Stdlib.Format
type t =
  1. | Darray of t * t
  2. | Dbinop of Binop.t * t * t
  3. | Dconst of Const.t
  4. | Dsizeof of Typ.t * t option * Subtype.t
  5. | Dderef of t
  6. | Dfcall of t * t list * IBase.Location.t * CallFlags.t
  7. | Darrow of t * Fieldname.t
  8. | Ddot of t * Fieldname.t
  9. | Dpvar of Pvar.t
  10. | Dpvaraddr of Pvar.t
  11. | Dunop of Unop.t * t
  12. | Dunknown
  13. | Dretcall of t * t list * IBase.Location.t * 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 pp : F.formatter -> t -> unit
val to_string : t -> string

convert to a string

val pp_vpath : IStdlib.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