/// Probe: `byte(32, x)` — byte index 32 is out of range. EVM returns 0. /// revive's `byte` builds a branchless mask; the question is whether the /// truncate-to-i8 of a constant 32 + shifts produces any UB intermediate. object "ByteOobProbe" { code { let size := datasize("ByteOobProbe_deployed") codecopy(0, dataoffset("ByteOobProbe_deployed"), size) return(0, size) } object "ByteOobProbe_deployed" { code { let tag := calldataload(0) let value := calldataload(32) let idx := shl(5, 1) // = 32 mstore(0, xor(byte(idx, value), tag)) return(0, 32) } } }