|
19 | 19 | let _6: *mut [bool; 0];
|
20 | 20 | scope 6 {
|
21 | 21 | scope 10 (inlined NonNull::<[bool; 0]>::new_unchecked) {
|
22 |
| - let mut _8: bool; |
23 |
| - let _9: (); |
24 |
| - let mut _10: *mut (); |
25 |
| - let mut _11: *const [bool; 0]; |
| 22 | + let _8: (); |
| 23 | + let mut _9: *mut (); |
| 24 | + let mut _10: *const [bool; 0]; |
26 | 25 | scope 11 (inlined core::ub_checks::check_language_ub) {
|
| 26 | + let mut _11: bool; |
27 | 27 | scope 12 (inlined core::ub_checks::check_language_ub::runtime) {
|
28 | 28 | }
|
29 | 29 | }
|
|
44 | 44 | StorageLive(_1);
|
45 | 45 | StorageLive(_2);
|
46 | 46 | StorageLive(_3);
|
47 |
| - StorageLive(_9); |
| 47 | + StorageLive(_8); |
48 | 48 | StorageLive(_4);
|
49 | 49 | StorageLive(_5);
|
50 | 50 | StorageLive(_6);
|
|
54 | 54 | + _7 = const 1_usize;
|
55 | 55 | + _6 = const {0x1 as *mut [bool; 0]};
|
56 | 56 | StorageDead(_7);
|
| 57 | + StorageLive(_10); |
57 | 58 | StorageLive(_11);
|
58 |
| - StorageLive(_8); |
59 |
| - _8 = UbChecks(); |
60 |
| - switchInt(move _8) -> [0: bb5, otherwise: bb3]; |
| 59 | + _11 = UbChecks(); |
| 60 | + switchInt(move _11) -> [0: bb6, otherwise: bb5]; |
61 | 61 | }
|
62 | 62 |
|
63 | 63 | bb1: {
|
|
70 | 70 | }
|
71 | 71 |
|
72 | 72 | bb3: {
|
73 |
| - StorageLive(_10); |
74 |
| -- _10 = _6 as *mut () (PtrToPtr); |
75 |
| -- _9 = NonNull::<T>::new_unchecked::precondition_check(move _10) -> [return: bb4, unwind unreachable]; |
76 |
| -+ _10 = const {0x1 as *mut ()}; |
77 |
| -+ _9 = NonNull::<T>::new_unchecked::precondition_check(const {0x1 as *mut ()}) -> [return: bb4, unwind unreachable]; |
| 73 | + StorageDead(_9); |
| 74 | + goto -> bb4; |
78 | 75 | }
|
79 | 76 |
|
80 | 77 | bb4: {
|
81 |
| - StorageDead(_10); |
82 |
| - goto -> bb5; |
83 |
| - } |
84 |
| - |
85 |
| - bb5: { |
86 |
| - StorageDead(_8); |
87 |
| -- _11 = _6 as *const [bool; 0] (PointerCoercion(MutToConstPointer)); |
88 |
| -- _5 = NonNull::<[bool; 0]> { pointer: _11 }; |
89 |
| -+ _11 = const {0x1 as *const [bool; 0]}; |
| 78 | +- _10 = _6 as *const [bool; 0] (PointerCoercion(MutToConstPointer)); |
| 79 | +- _5 = NonNull::<[bool; 0]> { pointer: _10 }; |
| 80 | ++ _10 = const {0x1 as *const [bool; 0]}; |
90 | 81 | + _5 = const NonNull::<[bool; 0]> {{ pointer: {0x1 as *const [bool; 0]} }};
|
91 |
| - StorageDead(_11); |
| 82 | + StorageDead(_10); |
92 | 83 | StorageDead(_6);
|
93 | 84 | - _4 = Unique::<[bool; 0]> { pointer: move _5, _marker: const PhantomData::<[bool; 0]> };
|
94 | 85 | + _4 = const Unique::<[bool; 0]> {{ pointer: NonNull::<[bool; 0]> {{ pointer: {0x1 as *const [bool; 0]} }}, _marker: PhantomData::<[bool; 0]> }};
|
|
98 | 89 | StorageDead(_4);
|
99 | 90 | - _2 = Box::<[bool]>(_3, const std::alloc::Global);
|
100 | 91 | + _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);
|
101 |
| - StorageDead(_9); |
| 92 | + StorageDead(_8); |
102 | 93 | StorageDead(_3);
|
103 | 94 | - _1 = A { foo: move _2 };
|
104 | 95 | + _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) }};
|
105 | 96 | StorageDead(_2);
|
106 | 97 | _0 = const ();
|
107 | 98 | drop(_1) -> [return: bb1, unwind: bb2];
|
108 | 99 | }
|
| 100 | + |
| 101 | + bb5: { |
| 102 | + StorageDead(_11); |
| 103 | + StorageLive(_9); |
| 104 | +- _9 = _6 as *mut () (PtrToPtr); |
| 105 | +- _8 = NonNull::<T>::new_unchecked::precondition_check(move _9) -> [return: bb3, unwind unreachable]; |
| 106 | ++ _9 = const {0x1 as *mut ()}; |
| 107 | ++ _8 = NonNull::<T>::new_unchecked::precondition_check(const {0x1 as *mut ()}) -> [return: bb3, unwind unreachable]; |
| 108 | + } |
| 109 | + |
| 110 | + bb6: { |
| 111 | + StorageDead(_11); |
| 112 | + goto -> bb4; |
| 113 | + } |
109 | 114 | + }
|
110 | 115 | +
|
111 | 116 | + ALLOC2 (size: 16, align: 8) {
|
|
0 commit comments