Expand description
Interprocedural call summaries for the staged verifier.
The backward visitor needs dependency information: when a call result is relevant, which call arguments should become relevant too? The forward visitor needs effect information: after a retained call, what facts about the return value or arguments can be added or forgotten?
This module keeps those summaries in one place. Standard unsafe/std APIs are summarized by name. Local callees can additionally use the existing dataflow graph to approximate which arguments flow into the return value.
StructsΒ§
- Call
Dependency Summary - Dependency summary consumed by the backward visitor.
- Call
Effect Summary - Effect summary consumed by the forward visitor.
EnumsΒ§
- Call
Effect - Path-local effect produced by a retained call.
FunctionsΒ§
- call_
name - Return a stable, human-readable name for a MIR call operand.
- callee_
def_ id - Return the static callee definition for a MIR call operand.
- dependency_
summary - Return dependency information for a MIR call terminator.
- destination_
nonnull_ πalignment - Return pointee alignment when the destination is
NonNull<T>. - destination_
pointee_ πalignment - Return pointee alignment for a pointer returned into
destination. - destination_
stride π - Return the byte stride for a pointer returned into
destination. - effect_
summary - Return effect information for a MIR call terminator.
- is_
as_ mut_ ptr_ call - Return true for mutable pointer extraction calls.
- is_
as_ ptr_ call - Return true for slice/string/vector pointer extraction calls.
- is_
from_ πtrait_ call - is_
layout_ constant_ call - Return true for layout constant producers.
- is_
len_ call - Return true for slice/string/vector length queries.
- is_
maybe_ uninit_ uninit_ call - Return true for
MaybeUninit::<T>::uninit. - is_
nonnull_ πdestination - is_
pointer_ add_ call - Return true for typed pointer addition calls.
- is_
pointer_ offset_ call - Return true for typed pointer offset calls.
- is_
pointer_ read_ call - Return true for pointer reads.
- is_
pointer_ sub_ call - Return true for typed pointer subtraction calls.
- is_
pointer_ write_ call - Return true for pointer writes that initialize one element.
- layout_
call_ πty - Return the type argument for a layout-producing call.
- layout_
constant_ πeffect - Return a concrete layout constant effect for
align_of::<T>()orsize_of::<T>(). - local_
must_ πwrite_ args - Return callee argument indices that are definitely written on every reachable return path.
- local_
return_ πdependencies - Use the existing dataflow graph to approximate local callee return deps.
- nonnull_
inner_ πty - path_
ends_ πin_ return - pointee_
ty π - Return the pointee type of raw pointers and references.
- trace_
to_ πcallee_ arg - Trace backward from an operand (inner call arg) through Copy/Move/Cast assignments to the outer calleeβs argument local, returning its index.
- try_
pointer_ πarith_ wrapper_ effect - Detect when a local callee wraps a pointer-arithmetic call (add/sub) and
produce the correct
ReturnPointerAdd/ReturnPointerSubeffect. - ty_
has_ πparam_ const - type_
layout π - write_
args_ πon_ path