@@ -15,54 +15,54 @@ fn main() {
15
15
// the casts, since the casts are the recommended fixes.
16
16
17
17
// e is an integer and U is *U_0, while U_0: Sized; addr-ptr-cast
18
- let ptr_i32_transmute = unsafe {
19
- transmute :: < isize , * const i32 > ( - 1 )
18
+ let _ptr_i32_transmute = unsafe {
19
+ transmute :: < usize , * const i32 > ( usize :: MAX )
20
20
} ;
21
- let ptr_i32 = - 1isize as * const i32 ;
21
+ let ptr_i32 = usize :: MAX as * const i32 ;
22
22
23
23
// e has type *T, U is *U_0, and either U_0: Sized ...
24
- let ptr_i8_transmute = unsafe {
24
+ let _ptr_i8_transmute = unsafe {
25
25
transmute :: < * const i32 , * const i8 > ( ptr_i32)
26
26
} ;
27
- let ptr_i8 = ptr_i32 as * const i8 ;
27
+ let _ptr_i8 = ptr_i32 as * const i8 ;
28
28
29
29
let slice_ptr = & [ 0 , 1 , 2 , 3 ] as * const [ i32 ] ;
30
30
31
31
// ... or pointer_kind(T) = pointer_kind(U_0); ptr-ptr-cast
32
- let ptr_to_unsized_transmute = unsafe {
32
+ let _ptr_to_unsized_transmute = unsafe {
33
33
transmute :: < * const [ i32 ] , * const [ u16 ] > ( slice_ptr)
34
34
} ;
35
- let ptr_to_unsized = slice_ptr as * const [ u16 ] ;
35
+ let _ptr_to_unsized = slice_ptr as * const [ u16 ] ;
36
36
// TODO: We could try testing vtable casts here too, but maybe
37
37
// we should wait until std::raw::TraitObject is stabilized?
38
38
39
39
// e has type *T and U is a numeric type, while T: Sized; ptr-addr-cast
40
- let usize_from_int_ptr_transmute = unsafe {
40
+ let _usize_from_int_ptr_transmute = unsafe {
41
41
transmute :: < * const i32 , usize > ( ptr_i32)
42
42
} ;
43
- let usize_from_int_ptr = ptr_i32 as usize ;
43
+ let _usize_from_int_ptr = ptr_i32 as usize ;
44
44
45
45
let array_ref: & [ i32 ; 4 ] = & [ 1 , 2 , 3 , 4 ] ;
46
46
47
47
// e has type &[T; n] and U is *const T; array-ptr-cast
48
- let array_ptr_transmute = unsafe {
48
+ let _array_ptr_transmute = unsafe {
49
49
transmute :: < & [ i32 ; 4 ] , * const [ i32 ; 4 ] > ( array_ref)
50
50
} ;
51
- let array_ptr = array_ref as * const [ i32 ; 4 ] ;
51
+ let _array_ptr = array_ref as * const [ i32 ; 4 ] ;
52
52
53
53
fn foo ( _: usize ) -> u8 { 42 }
54
54
55
55
// e is a function pointer type and U has type *T, while T: Sized; fptr-ptr-cast
56
- let usize_ptr_transmute = unsafe {
56
+ let _usize_ptr_transmute = unsafe {
57
57
transmute :: < fn ( usize ) -> u8 , * const usize > ( foo)
58
58
} ;
59
- let usize_ptr_transmute = foo as * const usize ;
59
+ let _usize_ptr_transmute = foo as * const usize ;
60
60
61
61
// e is a function pointer type and U is an integer; fptr-addr-cast
62
- let usize_from_fn_ptr_transmute = unsafe {
62
+ let _usize_from_fn_ptr_transmute = unsafe {
63
63
transmute :: < fn ( usize ) -> u8 , usize > ( foo)
64
64
} ;
65
- let usize_from_fn_ptr = foo as * const usize ;
65
+ let _usize_from_fn_ptr = foo as * const usize ;
66
66
}
67
67
68
68
// If a ref-to-ptr cast of this form where the pointer type points to a type other
0 commit comments