|
16 | 16 | scope 4 (inlined Unique::<[bool; 0]>::dangling) {
|
17 | 17 | let mut _5: std::ptr::NonNull<[bool; 0]>;
|
18 | 18 | scope 5 (inlined NonNull::<[bool; 0]>::dangling) {
|
19 |
| - let mut _6: std::num::NonZero<usize>; |
| 19 | + let _6: std::ptr::Alignment; |
| 20 | + let mut _7: std::num::NonZero<usize>; |
20 | 21 | scope 6 {
|
21 |
| - scope 8 (inlined std::ptr::Alignment::as_nonzero) { |
| 22 | + scope 10 (inlined std::ptr::Alignment::as_nonzero) { |
| 23 | + let mut _8: {closure@std::ptr::Alignment::as_nonzero::{closure#0}}; |
| 24 | + let mut _9: std::num::NonZero<usize>; |
| 25 | + scope 11 { |
| 26 | + } |
| 27 | + scope 12 (inlined core::contracts::build_check_ensures::<NonZero<usize>, {closure@std::ptr::Alignment::as_nonzero::{closure#0}}>) { |
| 28 | + } |
22 | 29 | }
|
23 |
| - scope 9 (inlined NonNull::<[bool; 0]>::without_provenance) { |
24 |
| - let _7: *const [bool; 0]; |
25 |
| - scope 10 { |
| 30 | + scope 13 (inlined NonNull::<[bool; 0]>::without_provenance) { |
| 31 | + let _10: *const [bool; 0]; |
| 32 | + scope 14 { |
26 | 33 | }
|
27 |
| - scope 11 (inlined NonZero::<usize>::get) { |
| 34 | + scope 15 (inlined NonZero::<usize>::get) { |
28 | 35 | }
|
29 |
| - scope 12 (inlined std::ptr::without_provenance::<[bool; 0]>) { |
30 |
| - scope 13 (inlined without_provenance_mut::<[bool; 0]>) { |
| 36 | + scope 16 (inlined std::ptr::without_provenance::<[bool; 0]>) { |
| 37 | + scope 17 (inlined without_provenance_mut::<[bool; 0]>) { |
31 | 38 | }
|
32 | 39 | }
|
33 | 40 | }
|
34 | 41 | }
|
35 | 42 | scope 7 (inlined std::ptr::Alignment::of::<[bool; 0]>) {
|
| 43 | + scope 8 { |
| 44 | + } |
| 45 | + scope 9 (inlined core::contracts::build_check_ensures::<std::ptr::Alignment, {closure@std::ptr::Alignment::of<[bool; 0]>::{closure#0}}>) { |
| 46 | + } |
36 | 47 | }
|
37 | 48 | }
|
38 | 49 | }
|
|
45 | 56 | StorageLive(_4);
|
46 | 57 | StorageLive(_5);
|
47 | 58 | StorageLive(_6);
|
48 |
| -- _6 = const std::ptr::Alignment::of::<[bool; 0]>::{constant#0} as std::num::NonZero<usize> (Transmute); |
49 |
| -+ _6 = const NonZero::<usize>(core::num::niche_types::NonZeroUsizeInner(1_usize)); |
50 |
| - StorageLive(_7); |
51 |
| -- _7 = copy _6 as *const [bool; 0] (Transmute); |
52 |
| -- _5 = NonNull::<[bool; 0]> { pointer: copy _7 }; |
53 |
| -+ _7 = const {0x1 as *const [bool; 0]}; |
54 |
| -+ _5 = const NonNull::<[bool; 0]> {{ pointer: {0x1 as *const [bool; 0]} }}; |
55 |
| - StorageDead(_7); |
56 |
| - StorageDead(_6); |
57 |
| -- _4 = Unique::<[bool; 0]> { pointer: move _5, _marker: const PhantomData::<[bool; 0]> }; |
58 |
| -+ _4 = const Unique::<[bool; 0]> {{ pointer: NonNull::<[bool; 0]> {{ pointer: {0x1 as *const [bool; 0]} }}, _marker: PhantomData::<[bool; 0]> }}; |
59 |
| - StorageDead(_5); |
60 |
| -- _3 = move _4 as std::ptr::Unique<[bool]> (PointerCoercion(Unsize, Implicit)); |
61 |
| -+ _3 = const Unique::<[bool]> {{ pointer: NonNull::<[bool]> {{ pointer: Indirect { alloc_id: ALLOC0, offset: Size(0 bytes) }: *const [bool] }}, _marker: PhantomData::<[bool]> }}; |
62 |
| - StorageDead(_4); |
63 |
| -- _2 = Box::<[bool]>(copy _3, const std::alloc::Global); |
64 |
| -+ _2 = const Box::<[bool]>(Unique::<[bool]> {{ pointer: NonNull::<[bool]> {{ pointer: Indirect { alloc_id: ALLOC1, offset: Size(0 bytes) }: *const [bool] }}, _marker: PhantomData::<[bool]> }}, std::alloc::Global); |
65 |
| - StorageDead(_3); |
66 |
| -- _1 = A { foo: move _2 }; |
67 |
| -+ _1 = const A {{ foo: Box::<[bool]>(Unique::<[bool]> {{ pointer: NonNull::<[bool]> {{ pointer: Indirect { alloc_id: ALLOC2, offset: Size(0 bytes) }: *const [bool] }}, _marker: PhantomData::<[bool]> }}, std::alloc::Global) }}; |
68 |
| - StorageDead(_2); |
69 |
| - _0 = const (); |
70 |
| - drop(_1) -> [return: bb1, unwind: bb2]; |
| 59 | + _6 = contract_check_ensures::<{closure@std::ptr::Alignment::of<[bool; 0]>::{closure#0}}, std::ptr::Alignment>(const ZeroSized: {closure@std::ptr::Alignment::of<[bool; 0]>::{closure#0}}, const std::ptr::Alignment::of::<[bool; 0]>::{constant#0}) -> [return: bb3, unwind continue]; |
71 | 60 | }
|
72 | 61 |
|
73 | 62 | bb1: {
|
|
78 | 67 | bb2 (cleanup): {
|
79 | 68 | resume;
|
80 | 69 | }
|
| 70 | + |
| 71 | + bb3: { |
| 72 | + StorageLive(_7); |
| 73 | + StorageLive(_8); |
| 74 | + _8 = {closure@$SRC_DIR/core/src/ptr/alignment.rs:LL:COL} { 0: copy _6 }; |
| 75 | + StorageLive(_9); |
| 76 | + _9 = copy _6 as std::num::NonZero<usize> (Transmute); |
| 77 | + _7 = contract_check_ensures::<{closure@std::ptr::Alignment::as_nonzero::{closure#0}}, NonZero<usize>>(move _8, move _9) -> [return: bb4, unwind continue]; |
| 78 | + } |
| 79 | + |
| 80 | + bb4: { |
| 81 | + StorageDead(_9); |
| 82 | + StorageDead(_8); |
| 83 | + StorageLive(_10); |
| 84 | + _10 = copy _7 as *const [bool; 0] (Transmute); |
| 85 | + _5 = NonNull::<[bool; 0]> { pointer: copy _10 }; |
| 86 | + StorageDead(_10); |
| 87 | + StorageDead(_7); |
| 88 | + StorageDead(_6); |
| 89 | + _4 = Unique::<[bool; 0]> { pointer: move _5, _marker: const PhantomData::<[bool; 0]> }; |
| 90 | + StorageDead(_5); |
| 91 | + _3 = move _4 as std::ptr::Unique<[bool]> (PointerCoercion(Unsize, Implicit)); |
| 92 | + StorageDead(_4); |
| 93 | + _2 = Box::<[bool]>(copy _3, const std::alloc::Global); |
| 94 | + StorageDead(_3); |
| 95 | + _1 = A { foo: move _2 }; |
| 96 | + StorageDead(_2); |
| 97 | + _0 = const (); |
| 98 | + drop(_1) -> [return: bb1, unwind: bb2]; |
| 99 | + } |
81 | 100 | }
|
82 |
| -+ |
83 |
| -+ ALLOC2 (size: 16, align: 8) { .. } |
84 |
| -+ |
85 |
| -+ ALLOC1 (size: 16, align: 8) { .. } |
86 |
| -+ |
87 |
| -+ ALLOC0 (size: 16, align: 8) { .. } |
88 | 101 |
|
0 commit comments