abstract contract A {
	bool s;

	function f() public view mod {
		assert(s); // holds for C, but fails for B
	}
	modifier mod() virtual;
}

contract B is A {
	modifier mod() virtual override {
		s = false;
		_;
	}
}

contract C is B {
	modifier mod() override {
		s = true;
		_;
	}
}
// ====
// SMTEngine: all
// ----
// Warning 5740: (62-111): Unreachable code.
// Warning 6328: (66-75): CHC: Assertion violation happens here.\nCounterexample:\ns = false\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f()
