#[repr(packed)]
struct Packed {
flag: u8,
value: u32,
}
// *** before: ***
// указатель брали макросом, а обычная запись создавала
// промежуточную ссылку и вместе с ней неопределённое поведение
let p = std::ptr::addr_of!(packed.value);
// *** in version 1.82: ***
// то же самое стало частью языка
let p = &raw const packed.value;
let q = &raw mut packed.value;
println!("{}", unsafe { p.read_unaligned() });