Program variables.
include sig ... endval compare_translation_unit : translation_unit ‑> translation_unit ‑> inttype tType for program variables. There are 4 kinds of variables:
1) local variables, used for local variables and formal parameters
2) callee program variables, used to handle recursion (x | callee is distinguished from x)
3) global variables
4) seed variables, used to store the initial value of formal parameters
val get_declaring_function : t ‑> Typ.Procname.t optionif not a global, return function declaring var
val get_ret_pvar : Typ.Procname.t ‑> tget_ret_pvar proc_name retuns the return pvar associated with the procedure name
val get_simplified_name : t ‑> stringGet a simplified version of the name component of a program variable.
val is_frontend_tmp : t ‑> boolreturn true if pvar is a temporary variable generated by the frontend
val is_ssa_frontend_tmp : t ‑> boolreturn true if pvar is a temporary variable generated by the frontend and is only assigned
once on a non-looping control-flow path
val is_cpp_temporary : t ‑> boolreturn true if this pvar represents a C++ temporary object (see http://en.cppreference.com/w/cpp/language/lifetime)
val mk : Mangled.t ‑> Typ.Procname.t ‑> tmk name proc_name suffix creates a program var with the given function name and suffix
val mk_abduced_ref_param : Typ.Procname.t ‑> int ‑> InferBase.Location.t ‑> tcreate an abduced variable for a parameter passed by reference
val mk_abduced_ret : Typ.Procname.t ‑> InferBase.Location.t ‑> tcreate an abduced return variable for a call to proc_name at loc
val mk_callee : Mangled.t ‑> Typ.Procname.t ‑> tmk_callee name proc_name creates a program var
for a callee function with the given function name
val mk_global : ?is_constexpr:bool ‑> ?is_pod:bool ‑> ?is_static_local:bool ‑> ?is_static_global:bool ‑> ?translation_unit:InferBase.SourceFile.t ‑> Mangled.t ‑> tcreate a global variable with the given name
val mk_tmp : string ‑> Typ.Procname.t ‑> tcreate a fresh temporary variable local to procedure pname. for use in the frontends only!
val pp_translation_unit : F.formatter ‑> translation_unit ‑> unitval to_callee : Typ.Procname.t ‑> t ‑> tTurn an ordinary program variable into a callee program variable
val get_translation_unit : t ‑> translation_unitGet the translation unit corresponding to a global. Raises Invalid_arg if not a global.
val is_compile_constant : t ‑> boolIs the variable's value a compile-time constant? Always (potentially incorrectly) returns
false for non-globals.
val is_pod : t ‑> boolIs the variable's type a "Plain Old Data" type (C++)? Always (potentially incorrectly) returns
true for non-globals.
val get_initializer_pname : t ‑> Typ.Procname.t optionGet the procname of the initializer function for the given global variable