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.

179 lines
3.8 KiB

(*
* Copyright (c) 2017-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
open! IStd
open AbsLoc
module Dom = BufferOverrunDomain
module Relation = BufferOverrunDomainRelation
module PO = BufferOverrunProofObligations
module Exec : sig
val get_alist_size : Dom.Val.t -> Dom.Mem.astate -> Dom.Val.astate
val load_val : Ident.t -> Dom.Val.astate -> Dom.Mem.astate -> Dom.Mem.astate
type decl_local =
Typ.Procname.t
-> node_hash:int
-> Location.t
-> Loc.t
-> Typ.t
-> inst_num:int
-> represents_multiple_values:bool
-> dimension:int
-> Dom.Mem.astate
-> Dom.Mem.astate * int
val decl_local_array :
decl_local:decl_local
-> Typ.Procname.t
-> node_hash:int
-> Location.t
-> Loc.t
-> Typ.t
-> length:IntLit.t option
-> ?stride:int
-> inst_num:int
-> represents_multiple_values:bool
-> dimension:int
-> Dom.Mem.astate
-> Dom.Mem.astate * int
val decl_local_collection :
Typ.Procname.t
-> node_hash:int
-> Location.t
-> Loc.t
-> inst_num:int
-> represents_multiple_values:bool
-> dimension:int
-> Dom.Mem.astate
-> Dom.Mem.astate * int
type decl_sym_val =
Typ.Procname.t
-> Itv.SymbolPath.partial
-> Tenv.t
-> node_hash:int
-> Location.t
-> depth:int
-> Loc.t
-> Typ.t
-> Dom.Mem.astate
-> Dom.Mem.astate
val decl_sym_arr :
decl_sym_val:decl_sym_val
-> Symb.SymbolPath.c_sym_array_kind
-> Typ.Procname.t
-> Itv.SymbolTable.t
-> Itv.SymbolPath.partial
-> Tenv.t
-> node_hash:int
-> Location.t
-> depth:int
-> Loc.t
-> Typ.t
-> ?offset:Itv.t
-> ?size:Itv.t
-> ?stride:int
-> inst_num:int
-> new_sym_num:Counter.t
-> new_alloc_num:Counter.t
-> Dom.Mem.astate
-> Dom.Mem.astate
val decl_sym_java_ptr :
decl_sym_val:decl_sym_val
-> Typ.Procname.t
-> Itv.SymbolPath.partial
-> Tenv.t
-> node_hash:int
-> Location.t
-> depth:int
-> Loc.t
-> Typ.t
-> inst_num:int
-> new_alloc_num:Counter.t
-> Dom.Mem.astate
-> Dom.Mem.astate
val decl_sym_collection :
Typ.Procname.t
-> Itv.SymbolTable.t
-> Itv.SymbolPath.partial
-> Location.t
-> Loc.t
-> new_sym_num:Counter.t
-> Dom.Mem.astate
-> Dom.Mem.astate
val init_array_fields :
Tenv.t
-> Typ.IntegerWidths.t
-> Typ.Procname.t
-> Itv.SymbolPath.partial option
-> node_hash:int
-> Typ.t
-> PowLoc.t
-> ?dyn_length:Exp.t
-> Dom.Mem.astate
-> Dom.Mem.astate
val set_dyn_length :
Location.t -> Tenv.t -> Typ.t -> PowLoc.t -> Itv.t -> Dom.Mem.astate -> Dom.Mem.astate
end
module Check : sig
val array_access :
arr:Dom.Val.t
-> idx:Dom.Val.t
-> idx_sym_exp:Relation.SymExp.t option
-> relation:Relation.astate
-> is_plus:bool
-> Location.t
-> PO.ConditionSet.t
-> PO.ConditionSet.t
val lindex :
Typ.IntegerWidths.t
-> array_exp:Exp.t
-> index_exp:Exp.t
-> Dom.Mem.astate
-> Location.t
-> PO.ConditionSet.t
-> PO.ConditionSet.t
val lindex_byte :
Typ.IntegerWidths.t
-> array_exp:Exp.t
-> byte_index_exp:Exp.t
-> Dom.Mem.astate
-> Location.t
-> PO.ConditionSet.t
-> PO.ConditionSet.t
val collection_access :
Typ.IntegerWidths.t
-> array_exp:Exp.t
-> index_exp:Exp.t
-> ?is_collection_add:bool
-> Dom.Mem.astate
-> Location.t
-> PO.ConditionSet.t
-> PO.ConditionSet.t
val binary_operation :
Typ.IntegerWidths.t
-> Binop.t
-> lhs:Dom.Val.t
-> rhs:Dom.Val.t
-> Location.t
-> PO.ConditionSet.t
-> PO.ConditionSet.t
end