Skip to content

Commit 7cd98e8

Browse files
committed
fix-up for conflict resolution
1 parent ae8372a commit 7cd98e8

1 file changed

Lines changed: 27 additions & 27 deletions

File tree

  • library/core/src/intrinsics

library/core/src/intrinsics/mod.rs

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4096,33 +4096,33 @@ mod verify {
40964096
});
40974097
}
40984098

4099-
#[kani::proof_for_contract(copy)]
4100-
fn check_copy() {
4101-
run_with_arbitrary_ptrs::<char>(|src, dst| unsafe { copy(src, dst, kani::any()) });
4102-
}
4103-
4104-
#[kani::proof_for_contract(copy_nonoverlapping)]
4105-
fn check_copy_nonoverlapping() {
4106-
// Note: cannot use `ArbitraryPointer` here.
4107-
// The `ArbitraryPtr` will arbitrarily initialize memory by indirectly invoking
4108-
// `copy_nonoverlapping`.
4109-
// Kani contract checking would fail due to existing restriction on calls to
4110-
// the function under verification.
4111-
let gen_any_ptr = |buf: &mut [MaybeUninit<char>; 100]| -> *mut char {
4112-
let base = buf.as_mut_ptr() as *mut u8;
4113-
base.wrapping_add(kani::any_where(|offset: &usize| *offset < 400)) as *mut char
4114-
};
4115-
let mut buffer1 = [MaybeUninit::<char>::uninit(); 100];
4116-
for i in 0..100 {
4117-
if kani::any() {
4118-
buffer1[i] = MaybeUninit::new(kani::any());
4119-
}
4120-
}
4121-
let mut buffer2 = [MaybeUninit::<char>::uninit(); 100];
4122-
let src = gen_any_ptr(&mut buffer1);
4123-
let dst = if kani::any() { gen_any_ptr(&mut buffer2) } else { gen_any_ptr(&mut buffer1) };
4124-
unsafe { copy_nonoverlapping(src, dst, kani::any()) }
4125-
}
4099+
// #[kani::proof_for_contract(copy)]
4100+
// fn check_copy() {
4101+
// run_with_arbitrary_ptrs::<char>(|src, dst| unsafe { copy(src, dst, kani::any()) });
4102+
// }
4103+
4104+
// #[kani::proof_for_contract(copy_nonoverlapping)]
4105+
// fn check_copy_nonoverlapping() {
4106+
// // Note: cannot use `ArbitraryPointer` here.
4107+
// // The `ArbitraryPtr` will arbitrarily initialize memory by indirectly invoking
4108+
// // `copy_nonoverlapping`.
4109+
// // Kani contract checking would fail due to existing restriction on calls to
4110+
// // the function under verification.
4111+
// let gen_any_ptr = |buf: &mut [MaybeUninit<char>; 100]| -> *mut char {
4112+
// let base = buf.as_mut_ptr() as *mut u8;
4113+
// base.wrapping_add(kani::any_where(|offset: &usize| *offset < 400)) as *mut char
4114+
// };
4115+
// let mut buffer1 = [MaybeUninit::<char>::uninit(); 100];
4116+
// for i in 0..100 {
4117+
// if kani::any() {
4118+
// buffer1[i] = MaybeUninit::new(kani::any());
4119+
// }
4120+
// }
4121+
// let mut buffer2 = [MaybeUninit::<char>::uninit(); 100];
4122+
// let src = gen_any_ptr(&mut buffer1);
4123+
// let dst = if kani::any() { gen_any_ptr(&mut buffer2) } else { gen_any_ptr(&mut buffer1) };
4124+
// unsafe { copy_nonoverlapping(src, dst, kani::any()) }
4125+
// }
41264126

41274127
//We need this wrapper because transmute_unchecked is an intrinsic, for which Kani does
41284128
//not currently support contracts (https://github.com/model-checking/kani/issues/3345)

0 commit comments

Comments
 (0)