Skip to main content

Module interprocedural

Module interprocedural 

Source

FunctionsΒ§

callee_calls_other_local πŸ”’
Return true if the callee body contains any Call terminator (to local functions that may have side effects), meaning the callee is not self-contained.
callee_contains_pointer_arithmetic πŸ”’
Check whether a callee body contains pointer arithmetic calls.
detect_index_disjoint_validator πŸ”’
Detect an β€œindex disjoint validator”: a function whose body loads elements from an array argument, and returns early (Err) both when an element is out of range against a scalar argument (>= len) and when two elements are equal (a duplicate). Returns (indices_arg, len_arg).
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.
named_index_disjoint_validator πŸ”’
Recognize the standard-library get_disjoint_check_valid helper as a trusted index-disjoint validator by name.
path_ends_in_return πŸ”’
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_from_raw_parts_wrapper_effect πŸ”’
Detect when a local callee wraps from_raw_parts(ptr, len) and produce a ReturnFreshAllocation effect with the correct element size.
try_pointer_arith_wrapper_effect πŸ”’
Detect when a local callee wraps a pointer-arithmetic call (add/sub) and produce the correct ReturnPointerAdd / ReturnPointerSub effect.
write_args_on_path πŸ”’