// compile-flags: -Zmiri-symbolic-alignment-check use std::mem::size_of; fn main() { let mut a = Params::new(); a.key_block = [0; BLOCKBYTES]; } #[repr(C)] #[derive(Clone)] #[allow(unused)] pub struct Params { hash_length: u8, key_length: u8, key_block: [u8; BLOCKBYTES], max_leaf_length: u32, } pub const OUTBYTES: usize = 8 * size_of::(); pub const KEYBYTES: usize = 8 * size_of::(); pub const BLOCKBYTES: usize = 16 * size_of::(); impl Params { pub fn new() -> Self { Self { hash_length: OUTBYTES as u8, key_length: 0, key_block: [0; BLOCKBYTES], max_leaf_length: 0, } } }