revive-integration 1.4.0

revive compiler integration test cases
// SPDX-License-Identifier: MIT

pragma solidity ^0.8;

/// Soundness PoC: `simplify.rs::find_panic_pattern_backwards` walks
/// backward from `revert(0, 0x24)` skipping every mstore whose offset
/// is not exactly 0 or 4, and the final `only_safe` gate only checks
/// that intermediate statements are `Let`/`MStore`/`Expression`. An
/// `mstore(p, …)` with `p ∈ (0, 4) ∪ (4, 0x24)` partially overwrites
/// the panic-encoded revert data EVM emits, but the simplifier still
/// matches the canonical panic shape and replaces the whole sequence
/// with `Statement::PanicRevert { code }` — dropping the corrupting
/// mstore from the revert data observed by the caller.
contract PanicInterveneBug {
    fallback() external {
        assembly {
            // Canonical panic selector + code prelude.
            mstore(0, 0x4e487b7100000000000000000000000000000000000000000000000000000000)
            mstore(4, 0x01)
            // Unaligned mstore overwriting bytes 7..38 — bytes 7..35 of
            // this end up in the revert(0, 0x24) data on EVM. PVM emits
            // canonical PanicRevert(0x01) instead, dropping these bytes.
            mstore(7, 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef)
            revert(0, 0x24)
        }
    }
}