contract C {
    struct S { uint a; }
    S s;
    function f() view public {
        S storage x = s;
        x;
    }
    function g() view public {
        S storage x = s;
        x = s;
    }
    function i() public {
        s.a = 2;
    }
    function h() public {
        S storage x = s;
        x.a = 2;
    }
}
// ----
