revive-integration 1.3.0

revive compiler integration test cases
// SPDX-License-Identifier: MIT
pragma solidity ^0.8;

/// Soundness PoC: newyork's `narrow_function_returns` only inspects the
/// function's fall-through `return_values`, ignoring values returned by EARLY
/// `leave` (return) statements. When the fall-through returns a small constant
/// (here `return 0`, min_width I1) but earlier branches return full-width
/// values, the function's return type is narrowed to i32 and EVERY early-leave
/// result is truncated to 32 bits. `op(a,b)` for a = 2^256-1 returns
/// 0xffffffff instead of 2^256-1.
contract MultiLeaveReturnNarrow {
    function run(uint256 op, uint256 a, uint256 b) external pure returns (uint256) {
        if (op == 0) return a + b;
        if (op == 1) return a - b;
        if (op == 2) return a * b;
        if (op == 3) return a / b;
        if (op == 4) return a % b;
        return 0;            // small-constant fall-through
    }
}