contract A {
    uint public a = 42;
    uint public b;
    uint public c;
    constructor(uint x) {
        b = a;
        a = x;
    }
    function f(uint x) public returns (uint256) { c = x * 3;  return 23; }
}
contract B is A {
    uint public d = f(a);
    uint public e = b;
    uint public b_a;
    uint public b_b;
    uint public b_c;
    constructor() A(17) { b_a = a; b_b = b; b_c = c; }
}
// ====
// compileViaYul: true
// ----
// a() -> 17
// b() -> 42
// c() -> 51
// b_a() -> 17
// b_b() -> 42
// b_c() -> 51
// d() -> 23
// e() -> 42