We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
size_of_val
I tried this code:
#[kani::proof] pub fn check_size_of_overflows() { let var: [u64; 4] = kani::any(); let fat_ptr: *const [u64] = &var as *const _; let (thin_ptr, size) = fat_ptr.to_raw_parts(); let new_size: usize = kani::any(); let new_ptr: *const [u64] = ptr::from_raw_parts(thin_ptr, new_size); #[cfg(blah)] if let Some(expected_size) = new_size.checked_mul(size_of::<u64>()) { assert_eq!(unsafe { size_of_val_raw(new_ptr) }, expected_size); } else { // Expect UB detection let _should_ub = unsafe { size_of_val_raw(new_ptr) }; } }
using the following command line invocation:
kani slice.rs
with Kani version: 0.56.0
I expected to see this happen: UB should be detected
Instead, this happened: Verification succeed
The text was updated successfully, but these errors were encountered:
celinval
No branches or pull requests
I tried this code:
using the following command line invocation:
with Kani version: 0.56.0
I expected to see this happen: UB should be detected
Instead, this happened: Verification succeed
The text was updated successfully, but these errors were encountered: