Module AbsLoc.Loc

type prim = private
  1. | Var of IR.Var.t
  2. | Allocsite of Allocsite.t
val compare_prim : prim -> prim -> int
include Ppx_compare_lib.Comparable.S with type t := t
include Ppx_compare_lib.Equal.S with type t := t
val equal : t Base__Ppx_compare_lib.equal
include IStdlib.PrettyPrintable.PrintableOrderedType with type t := t
include IStdlib.IStd.Caml.Set.OrderedType with type t := t
val compare : t -> t -> int
include IStdlib.PrettyPrintable.PrintableType with type t := t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val of_allocsite : Allocsite.t -> t
val of_c_strlen : t -> t

It appends the strlen field.

val of_id : IR.Ident.t -> t
val of_path : Symb.SymbolPath.partial -> t
val of_pvar : IR.Pvar.t -> t
val of_var : IR.Var.t -> t
val unknown : t
val exists_pvar : f:(IR.Pvar.t -> bool) -> t -> bool

It checks if a pvar in location satisfies f.

val exists_str : f:(string -> bool) -> t -> bool

It checks if a variable or a field name in the location path satisfies f.

val get_literal_string : t -> string option
val get_literal_string_strlen : t -> string option
val get_path : t -> Symb.SymbolPath.partial option
val get_param_path : t -> Symb.SymbolPath.partial option

As get_path, but returns None if the path doesn't correspond to parameter passed by reference.

val is_trans_field_of : loc:t -> field_loc:t -> bool

Checks if field_loc is a direct or indirect field of loc.

val is_frontend_tmp : t -> bool
val is_global : t -> bool
val get_global_array_initializer : t -> IR.Procname.t option

Return the name of global initializer when given abstract location represents a global constant array value

val is_pretty : t -> bool

It checks if it is representable with pretty form, e.g., with a path or with a variable name.

val is_return : t -> bool
val is_unknown : t -> bool
val represents_multiple_values : t -> bool
val is_objc_collection_internal_array : t -> bool
val append_field : ?typ:IR.Typ.t -> t -> IR.Fieldname.t -> t

It appends field. typ is the type of fn.