Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ impl GotocCtx<'_> {
Intrinsic::Assume => self.codegen_assert_assume(
fargs.remove(0).cast_to(Type::bool()),
PropertyClass::Assume,
"assumption failed",
"Rust intrinsic assumption failed",
loc,
),
Intrinsic::AtomicAnd(_) => codegen_atomic_binop!(bitand),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,12 +151,15 @@ impl GotocCtx<'_> {
let farg_types = operands.map(|op| self.operand_ty_stable(&op));
self.codegen_copy("copy_nonoverlapping", true, fargs, &farg_types, None, location)
}
// https://doc.rust-lang.org/beta/nightly-rustc/rustc_middle/mir/enum.NonDivergingIntrinsic.html#variant.Assume
// Informs the optimizer that a condition is always true.
// If the condition is false, the behavior is undefined.
StatementKind::Intrinsic(NonDivergingIntrinsic::Assume(ref op)) => {
let cond = self.codegen_operand_stable(op).cast_to(Type::bool());
self.codegen_assert_assume(
cond,
PropertyClass::Assume,
"assumption failed",
"Rust intrinsic assumption failed",
location,
)
}
Expand Down
4 changes: 2 additions & 2 deletions tests/expected/any_vec/exact_length.expected
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
Checking harness check_access_length_17...

Failed Checks: assumption failed\
Failed Checks: Rust intrinsic assumption failed\
in <usize as std::slice::SliceIndex<[u8]>>::get_unchecked

Checking harness check_access_length_zero...

Failed Checks: assumption failed\
Failed Checks: Rust intrinsic assumption failed\
in <usize as std::slice::SliceIndex<[u8]>>::get_unchecked

Verification failed for - check_access_length_17
Expand Down
2 changes: 1 addition & 1 deletion tests/expected/any_vec/out_bounds.expected
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Checking harness check_always_out_bounds...

Failed Checks: assumption failed
Failed Checks: Rust intrinsic assumption failed
in <usize as std::slice::SliceIndex<[u8]>>::get_unchecked

Verification failed for - check_always_out_bounds
Loading