contract C {
    struct S { bool f; }
    S s;
    function ext() external { }
    function f() internal returns (S storage r)
    {
        try this.ext() { r = s; }
        catch (bytes memory) { r = s; }
    }
    function g() internal returns (S storage r)
    {
        try this.ext() { r = s; }
        catch Error (string memory) { r = s; }
        catch (bytes memory) { r = s; }
    }
    function h() internal returns (S storage r)
    {
        try this.ext() { }
        catch (bytes memory) { }
        r = s;
    }
}
// ====
// EVMVersion: >=byzantium
// ----
