/// Probe: `shl(256, x)` — LLVM `shl i256 x, 256` is UB; EVM defines SHL with /// count >= 256 as 0. revive's `shift_left` adds a switch+phi guard; this /// fixture stresses whether it survives O3 const-folding. object "ShlOverflowProbe" { code { let size := datasize("ShlOverflowProbe_deployed") codecopy(0, dataoffset("ShlOverflowProbe_deployed"), size) return(0, size) } object "ShlOverflowProbe_deployed" { code { let tag := calldataload(0) let value := calldataload(32) // count = 256, obfuscated so revive can't fold pre-LLVM let count := shl(8, 1) mstore(0, xor(shl(count, value), tag)) return(0, 32) } } }