Skip to content

Commit 45505ed

Browse files
committed
Add assumptions
1 parent e331419 commit 45505ed

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

library/core/src/alloc/layout.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,7 @@ mod verify {
560560
pub fn check_size() {
561561
let s = kani::any::<usize>();
562562
let a = kani::any::<usize>();
563+
kani::assume(Layout::from_size_align(s, a).is_ok());
563564
unsafe {
564565
let layout = Layout::from_size_align_unchecked(s, a);
565566
assert_eq!(layout.size(), s);
@@ -605,6 +606,7 @@ mod verify {
605606
pub fn check_dangling() {
606607
let s = kani::any::<usize>();
607608
let a = kani::any::<usize>();
609+
kani::assume(Layout::from_size_align(s, a).is_ok());
608610
unsafe {
609611
let layout = Layout::from_size_align_unchecked(s, a);
610612
let _ = layout.dangling();
@@ -616,6 +618,7 @@ mod verify {
616618
pub fn check_align_to() {
617619
let s = kani::any::<usize>();
618620
let a = kani::any::<usize>();
621+
kani::assume(Layout::from_size_align(s, a).is_ok());
619622
unsafe {
620623
let layout = Layout::from_size_align_unchecked(s, a);
621624
let a2 = kani::any::<usize>();
@@ -628,6 +631,7 @@ mod verify {
628631
pub fn check_padding_needed_for() {
629632
let s = kani::any::<usize>();
630633
let a = kani::any::<usize>();
634+
kani::assume(Layout::from_size_align(s, a).is_ok());
631635
unsafe {
632636
let layout = Layout::from_size_align_unchecked(s, a);
633637
let a2 = kani::any::<usize>();
@@ -642,6 +646,7 @@ mod verify {
642646
pub fn check_pad_to_align() {
643647
let s = kani::any::<usize>();
644648
let a = kani::any::<usize>();
649+
kani::assume(Layout::from_size_align(s, a).is_ok());
645650
unsafe {
646651
let layout = Layout::from_size_align_unchecked(s, a);
647652
let _ = layout.pad_to_align();
@@ -653,6 +658,7 @@ mod verify {
653658
pub fn check_repeat() {
654659
let s = kani::any::<usize>();
655660
let a = kani::any::<usize>();
661+
kani::assume(Layout::from_size_align(s, a).is_ok());
656662
unsafe {
657663
let layout = Layout::from_size_align_unchecked(s, a);
658664
let n = kani::any::<usize>();
@@ -665,10 +671,12 @@ mod verify {
665671
pub fn check_extend() {
666672
let s = kani::any::<usize>();
667673
let a = kani::any::<usize>();
674+
kani::assume(Layout::from_size_align(s, a).is_ok());
668675
unsafe {
669676
let layout = Layout::from_size_align_unchecked(s, a);
670677
let s2 = kani::any::<usize>();
671678
let a2 = kani::any::<usize>();
679+
kani::assume(Layout::from_size_align(s2, a2).is_ok());
672680
let layout2 = Layout::from_size_align_unchecked(s2, a2);
673681
let _ = layout.extend(layout2);
674682
}
@@ -679,6 +687,7 @@ mod verify {
679687
pub fn check_repeat_packed() {
680688
let s = kani::any::<usize>();
681689
let a = kani::any::<usize>();
690+
kani::assume(Layout::from_size_align(s, a).is_ok());
682691
unsafe {
683692
let layout = Layout::from_size_align_unchecked(s, a);
684693
let n = kani::any::<usize>();
@@ -691,10 +700,12 @@ mod verify {
691700
pub fn check_extend_packed() {
692701
let s = kani::any::<usize>();
693702
let a = kani::any::<usize>();
703+
kani::assume(Layout::from_size_align(s, a).is_ok());
694704
unsafe {
695705
let layout = Layout::from_size_align_unchecked(s, a);
696706
let s2 = kani::any::<usize>();
697707
let a2 = kani::any::<usize>();
708+
kani::assume(Layout::from_size_align(s2, a2).is_ok());
698709
let layout2 = Layout::from_size_align_unchecked(s2, a2);
699710
let _ = layout.extend_packed(layout2);
700711
}

0 commit comments

Comments
 (0)