One way is it to explicitly block inlining, to mask insta-UB from optimizer:
#[inline(never)]
fn q(a : Option<[char; 1024]>) {
let b = unsafe {a.unwrap_unchecked()};
println!("{:?}", b);
}
fn main() {
let a: Option<[char; 1024]> = None;
q(a);
}
⣿
Standard Error
Compiling playground v0.0.1 (/playground)
Finished release [optimized] target(s) in 1.63s
Running `target/release/playground`
thread 'main' panicked at 'index out of bounds: the len is 32 but the index is 32', library/core/src/unicode/unicode_data.rs:75:40
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Standard Output
['\u{110000}', '\0', '\u{310}', '\0', '\u{310}', '\0', '\u{8}', '\0', '\u{3}', '\u{4}', '\u{1be6a0}', '\0', '\u{1be6a0}', '\0', '\u{1be6a0}', '\0', '\u{1c}', '\0', '\u{1c}', '\0', '\u{10}', '\0', '\u{1}', '\u{4}', '\0', '\0', '\0', '\0', '\0', '\0', '𡓨', '\0', '𡓨', '\0', 'က', '\0', '\u{1}', '\u{5}', '𢀀', '\0', '𢀀', '\0', '𢀀', '\0', '\u{177624}', '\0', '\u{177624}', '\0', 'က', '\0', '\u{1}', '\u{4}', '\u{19a000}', '\0', '\u{19a000}', '\0', '\u{19a000}', '\0', '\u{4d2c4}', '\0', '\u{4d2c4}', '\0', 'က', '\0', '\u{1}', '\u{6}', '\u{1e7788}', '\0', '\u{1e8788}', '\0', '\u{1e8788}', '\0', '倘', '\0', '軘', '\0', 'က', '\0', '\u{2}', '\u{6}', '\u{1eab80}', '\0', '\u{1ebb80}', '\0', '\u{1ebb80}', '\0', 'Ǡ', '\0', 'Ǡ', '\0', '\u{8}', '\0', '\u{4}', '\u{4}', '\u{350}', '\0', '\u{350}', '\0', '\u{350}', '\0', ' ', '\0', ' ', '\0', '\u{8}', '\0', '\u{4}', '\u{4}', 'Ͱ', '\0', 'Ͱ', '\0', 'Ͱ', '\0', 'D', '\0', 'D', '\0', '\u{4}', '\0', '\u{7}', '\u{4}', '\u{1e7788}', '\0', '\u{1e8788}', '\0', '\u{1e8788}', '\0', '\u{10}', '\0', '\u{90}', '\0', '\u{8}', '\0', '\u{6474e553}', '\u{4}', '\u{350}', '\0', '\u{350}', '\0', '\u{350}', '\0', ' ', '\0', ' ', '\0', '\u{8}', '\0', '\u{6474e550}', '\u{4}', '\u{1be6bc}', '\0', '\u{1be6bc}', '\0', '\u{1be6bc}', '\0', '廔', '\0', '廔', '\0', '\u{4}', '\0', '\u{6474e551}', '\u{6}', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\u{10}', '\0', '\u{6474e552}', '\u{4}', '\u{1e7788}', '\0', '\u{1e8788}', '\0', '\u{1e8788}', '\0', '㡸', '\0', '㡸', '\0', '\u{1}', '\0', '\u{b12d7120}', '翽', '\u{eb528e97}', '罼', '\u{1e7788}', '\0', '\u{1e8788}', '\0', '\u{eb4d7660}', '罼', '\u{10}', '\u{3}', '