pub(super) enum BoundsCheckResult {
KnownInBounds(u32),
Computed(Word),
Conditional {
condition_id: Word,
index_id: Word,
},
}
Expand description
The results of performing a bounds check.
On success, write_bounds_check
returns a value of this type. The caller can assume that the right
policy has been applied, and simply do what the variant says.
Variants§
KnownInBounds(u32)
The index is statically known and in bounds, with the given value.
Computed(Word)
The given instruction computes the index to be used.
When BoundsCheckPolicy::Restrict
is in force, this is a
clamped version of the index the user supplied.
When BoundsCheckPolicy::Unchecked
is in force, this is
simply the index the user supplied. This variant indicates
that we couldn’t prove statically that the index was in
bounds; otherwise we would have returned KnownInBounds
.
Conditional
The given instruction computes a boolean condition which is true if the index is in bounds.
This is returned when BoundsCheckPolicy::ReadZeroSkipWrite
is in force.