revive-integration 1.0.0

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

pragma solidity ^0.8.24;

/* runner.json
{
  "differential": true,
  "actions": [
    {
      "Instantiate": {
        "code": {
          "Solidity": {
            "contract": "MemoryBounds"
          }
        }
      }
    },
    {
      "Call": {
        "dest": {
          "Instantiated": 0
        }
      }
    },
    {
      "Call": {
        "dest": {
          "Instantiated": 0
        },
        "data": "489eb33e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000000"
      }
    },
    {
      "Call": {
        "dest": {
          "Instantiated": 0
        },
        "data": "db1ff7bb00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000000"
      }
    }
  ]
}
*/

contract MemoryBounds {
    function oobLoad(bytes memory data) public pure returns (uint256, bytes memory) {
        uint256 result1;
        assembly {
            let ptr := mload(add(data, 0x20))
            result1 := calldataload(ptr)
        }
        return (result1, data);
    }

    function oobCopy(bytes memory data) public pure returns (uint256, bytes memory) {
        assembly {
            calldatacopy(0, 0x3a0000000000000000000000000000000000, 0x20)
        }
    }

    fallback() external {
        assembly {
            // Accessing OOB offsets should always work when the length is 0.
            return(100000, 0)
        }
    }
}