Module InferModules.Rearrange
val is_only_pt_by_fld_or_param_nonnull : InferIR.Procdesc.t -> InferIR.Tenv.t -> Prop.normal Prop.t -> InferIR.Exp.t -> boolval check_dereference_error : InferIR.Tenv.t -> InferIR.Procdesc.t -> Prop.normal Prop.t -> InferIR.Exp.t -> InferBase.Location.t -> unitCheck for dereference errors: dereferencing 0, a freed value, or an undefined value
val check_call_to_objc_block_error : InferIR.Tenv.t -> InferIR.Procdesc.t -> Prop.normal Prop.t -> InferIR.Exp.t -> InferBase.Location.t -> unitCheck that an expression representing an objc block can be null and raise a
B1null exception. It's used to check that we don't call possibly null blocks
val rearrange : ?report_deref_errors:bool -> InferIR.Procdesc.t -> InferIR.Tenv.t -> InferIR.Exp.t -> InferIR.Typ.t -> Prop.normal Prop.t -> InferBase.Location.t -> InferIR.Sil.offset list Prop.prop_iter listrearrange lexp proprearrangespropinto the formprop' * lexp|->strexp:typ. It returns an iterator withlexp |-> strexp: typas current predicate and the path (anoffsetlist) which leads tolexpas the iterator state.