The library compiled with 1.17.1 but with the new Rust version it not compiles anymore:
--> raydium-contract-instructions/src/farm_instruction.rs:113:38
|
113 | let value = unsafe { &mut *(&mut output[1] as *mut u8 as *mut InitArgs) };
| ^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| backing allocation comes from here
|
= note: casting from `u8` (1 bytes) to `farm_instruction::InitArgs` (24 bytes)
= note: `#[deny(invalid_reference_casting)]` on by default
error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused
--> raydium-contract-instructions/src/farm_instruction.rs:119:38
|
119 | let value = unsafe { &mut *(&mut output[1] as *mut u8 as *mut u64) };
| ^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^^^^
| |
| backing allocation comes from here
|
= note: casting from `u8` (1 bytes) to `u64` (8 bytes)
error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused
--> raydium-contract-instructions/src/farm_instruction.rs:125:38
|
125 | let value = unsafe { &mut *(&mut output[1] as *mut u8 as *mut u64) };
| ^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^^^^
| |
| backing allocation comes from here
|
= note: casting from `u8` (1 bytes) to `u64` (8 bytes)
error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused
--> raydium-contract-instructions/src/farm_instruction.rs:141:38
|
141 | let value = unsafe { &mut *(&mut output[1] as *mut u8 as *mut u64) };
| ^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^^^^
| |
| backing allocation comes from here
|
= note: casting from `u8` (1 bytes) to `u64` (8 bytes)
error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused
--> raydium-contract-instructions/src/farm_instruction.rs:146:38
|
146 | let value = unsafe { &mut *(&mut output[1] as *mut u8 as *mut u64) };
| ^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^^^^
| |
| backing allocation comes from here
|
= note: casting from `u8` (1 bytes) to `u64` (8 bytes)
error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused
--> raydium-contract-instructions/src/staking_instruction.rs:108:38
|
108 | let value = unsafe { &mut *(&mut output[1] as *mut u8 as *mut InitArgs) };
| ^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| backing allocation comes from here
|
= note: casting from `u8` (1 bytes) to `staking_instruction::InitArgs` (32 bytes)
error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused
--> raydium-contract-instructions/src/staking_instruction.rs:114:38
|
114 | let value = unsafe { &mut *(&mut output[1] as *mut u8 as *mut u64) };
| ^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^^^^
| |
| backing allocation comes from here
|
= note: casting from `u8` (1 bytes) to `u64` (8 bytes)
error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused
--> raydium-contract-instructions/src/staking_instruction.rs:120:38
|
120 | let value = unsafe { &mut *(&mut output[1] as *mut u8 as *mut u64) };
| ^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^^^^
| |
| backing allocation comes from here
|
= note: casting from `u8` (1 bytes) to `u64` (8 bytes)
error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused
--> raydium-contract-instructions/src/staking_instruction.rs:136:38
|
136 | let value = unsafe { &mut *(&mut output[1] as *mut u8 as *mut u64) };
| ^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^^^^
| |
| backing allocation comes from here
|
= note: casting from `u8` (1 bytes) to `u64` (8 bytes)
error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused
--> raydium-contract-instructions/src/staking_instruction.rs:141:38
|
141 | let value = unsafe { &mut *(&mut output[1] as *mut u8 as *mut u64) };
| ^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^^^^
| |
| backing allocation comes from here
|
= note: casting from `u8` (1 bytes) to `u64` (8 bytes)
error: could not compile `raydium-contract-instructions` (lib) due to 10 previous errors```
The library compiled with 1.17.1 but with the new Rust version it not compiles anymore: