Rust needs a safe abstraction over uninitialized memory

I would argue that asm!-based freeze can't have angelic nondeterminism because it can produce outputs that later cause UB, e.g. if the output is MaybeUninit<&u8>, it could produce null, which would be UB to assume_init(). angelic nondeterminism specifically chooses whichever values won't produce UB, but here the asm! and assume_init can easily produce UB.

1 Like