You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.1 KiB

(*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
open! IStd
module Invalidation = PulseInvalidation
module Trace = PulseTrace
module ValueHistory = PulseValueHistory
type t =
| AddressOfCppTemporary of Var.t * ValueHistory.t
| AddressOfStackVariable of Var.t * Location.t * ValueHistory.t
| Closure of Typ.Procname.t
| Constant of Const.t
| Invalid of Invalidation.t Trace.t
| MustBeValid of unit Trace.t
| StdVectorReserve
| WrittenTo of unit Trace.t
[@@deriving compare]
module Attributes : sig
include PrettyPrintable.PPUniqRankSet with type elt = t
val get_address_of_stack_variable : t -> (Var.t * Location.t * ValueHistory.t) option
val get_closure_proc_name : t -> Typ.Procname.t option
val get_constant : t -> Const.t option
val get_invalid : t -> Invalidation.t Trace.t option
val get_must_be_valid : t -> unit Trace.t option
val get_written_to : t -> unit Trace.t option
val is_modified : t -> bool
val is_std_vector_reserved : t -> bool
end