Module Biabduction__Rearrange
val is_only_pt_by_fld_or_param_nonnull : IR.Procdesc.t -> IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> bool
val check_dereference_error : IR.Tenv.t -> IR.Procdesc.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> IBase.Location.t -> unit
Check for dereference errors: dereferencing 0, a freed value, or an undefined value
val check_call_to_objc_block_error : IR.Tenv.t -> IR.Procdesc.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> IBase.Location.t -> unit
Check that an expression representing an objc block can be null and raise a
B1
null exception. It's used to check that we don't call possibly null blocks
val rearrange : ?report_deref_errors:bool -> Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> IR.Exp.t -> IR.Typ.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IBase.Location.t -> Biabduction.Predicates.offset list Biabduction.Prop.prop_iter list
rearrange lexp prop
rearrangesprop
into the formprop' * lexp|->strexp:typ
. It returns an iterator withlexp |-> strexp: typ
as current predicate and the path (anoffsetlist
) which leads tolexp
as the iterator state.