]>
Commit | Line | Data |
---|---|---|
e74abb32 | 1 | error: any use of this value will cause an error |
dfeec247 | 2 | --> $SRC_DIR/libcore/ptr/const_ptr.rs:LL:COL |
e74abb32 XL |
3 | | |
4 | LL | intrinsics::ptr_offset_from(self, origin) | |
5 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
6 | | | | |
7 | | ptr_offset_from cannot compute offset of pointers into different allocations. | |
dfeec247 | 8 | | inside call to `std::ptr::const_ptr::<impl *const Struct>::offset_from` at $DIR/offset_from_ub.rs:22:27 |
e74abb32 | 9 | | |
dfeec247 | 10 | ::: $DIR/offset_from_ub.rs:16:1 |
e74abb32 XL |
11 | | |
12 | LL | / pub const DIFFERENT_ALLOC: usize = { | |
13 | LL | | | |
14 | LL | | let uninit = std::mem::MaybeUninit::<Struct>::uninit(); | |
15 | LL | | let base_ptr: *const Struct = &uninit as *const _ as *const Struct; | |
16 | ... | | |
17 | LL | | offset as usize | |
18 | LL | | }; | |
19 | | |__- | |
20 | | | |
21 | = note: `#[deny(const_err)]` on by default | |
22 | ||
23 | error: any use of this value will cause an error | |
dfeec247 | 24 | --> $SRC_DIR/libcore/ptr/const_ptr.rs:LL:COL |
e74abb32 XL |
25 | | |
26 | LL | intrinsics::ptr_offset_from(self, origin) | |
27 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
28 | | | | |
29 | | a memory access tried to interpret some bytes as a pointer | |
dfeec247 | 30 | | inside call to `std::ptr::const_ptr::<impl *const u8>::offset_from` at $DIR/offset_from_ub.rs:28:14 |
e74abb32 | 31 | | |
dfeec247 | 32 | ::: $DIR/offset_from_ub.rs:26:1 |
e74abb32 XL |
33 | | |
34 | LL | / pub const NOT_PTR: usize = { | |
35 | LL | | | |
36 | LL | | unsafe { (42 as *const u8).offset_from(&5u8) as usize } | |
37 | LL | | }; | |
38 | | |__- | |
39 | ||
40 | error: any use of this value will cause an error | |
dfeec247 | 41 | --> $SRC_DIR/libcore/ptr/const_ptr.rs:LL:COL |
e74abb32 XL |
42 | | |
43 | LL | intrinsics::ptr_offset_from(self, origin) | |
44 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
45 | | | | |
46 | | exact_div: 1 cannot be divided by 2 without remainder | |
dfeec247 | 47 | | inside call to `std::ptr::const_ptr::<impl *const u16>::offset_from` at $DIR/offset_from_ub.rs:36:14 |
e74abb32 | 48 | | |
dfeec247 | 49 | ::: $DIR/offset_from_ub.rs:31:1 |
e74abb32 | 50 | | |
60c5eb7d | 51 | LL | / pub const NOT_MULTIPLE_OF_SIZE: isize = { |
e74abb32 XL |
52 | LL | | |
53 | LL | | let data = [5u8, 6, 7]; | |
54 | LL | | let base_ptr = data.as_ptr(); | |
60c5eb7d XL |
55 | LL | | let field_ptr = &data[1] as *const u8 as *const u16; |
56 | LL | | unsafe { field_ptr.offset_from(base_ptr as *const u16) } | |
57 | LL | | }; | |
58 | | |__- | |
59 | ||
60 | error: any use of this value will cause an error | |
dfeec247 | 61 | --> $SRC_DIR/libcore/ptr/const_ptr.rs:LL:COL |
60c5eb7d XL |
62 | | |
63 | LL | intrinsics::ptr_offset_from(self, origin) | |
64 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
65 | | | | |
66 | | invalid use of NULL pointer | |
dfeec247 | 67 | | inside call to `std::ptr::const_ptr::<impl *const u8>::offset_from` at $DIR/offset_from_ub.rs:42:14 |
60c5eb7d | 68 | | |
dfeec247 | 69 | ::: $DIR/offset_from_ub.rs:39:1 |
60c5eb7d XL |
70 | | |
71 | LL | / pub const OFFSET_FROM_NULL: isize = { | |
72 | LL | | | |
73 | LL | | let ptr = 0 as *const u8; | |
74 | LL | | unsafe { ptr.offset_from(ptr) } | |
75 | LL | | }; | |
76 | | |__- | |
77 | ||
78 | error: any use of this value will cause an error | |
dfeec247 | 79 | --> $SRC_DIR/libcore/ptr/const_ptr.rs:LL:COL |
60c5eb7d XL |
80 | | |
81 | LL | intrinsics::ptr_offset_from(self, origin) | |
82 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
83 | | | | |
84 | | a memory access tried to interpret some bytes as a pointer | |
dfeec247 | 85 | | inside call to `std::ptr::const_ptr::<impl *const u8>::offset_from` at $DIR/offset_from_ub.rs:49:14 |
60c5eb7d | 86 | | |
dfeec247 | 87 | ::: $DIR/offset_from_ub.rs:45:1 |
60c5eb7d XL |
88 | | |
89 | LL | / pub const DIFFERENT_INT: isize = { // offset_from with two different integers: like DIFFERENT_ALLOC | |
90 | LL | | | |
91 | LL | | let ptr1 = 8 as *const u8; | |
92 | LL | | let ptr2 = 16 as *const u8; | |
93 | LL | | unsafe { ptr2.offset_from(ptr1) } | |
e74abb32 XL |
94 | LL | | }; |
95 | | |__- | |
96 | ||
60c5eb7d | 97 | error: aborting due to 5 previous errors |
e74abb32 | 98 |