revive-integration 1.3.0

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

pragma solidity ^0.8;

contract FmpNativeStoreBug {
    // Recursive — solc can't inline.
    function loop(uint depth) internal pure returns (uint) {
        if (depth == 0) return 0;
        return loop(depth - 1) + depth;
    }

    fallback() external {
        uint256 v;
        uint256 depth;
        assembly {
            v := calldataload(0)
            depth := calldataload(0x20)
            mstore(0x40, v)
        }
        // Recursive call: mem_opt clears memory_state, no escape so
        // fmp_word_escapes stays false, fmp_native_safe stays true.
        uint256 unused = loop(depth);
        uint256 r;
        assembly {
            r := mload(0x40)
            // use unused so solc doesn't DCE the call
            r := add(r, mul(unused, 0))
            mstore(0x100, r)
            return(0x100, 32)
        }
    }
}