solidity/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol
2020-12-17 17:05:54 +01:00

28 lines
528 B
Solidity

pragma experimental SMTChecker;
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;
_;
}
}
// ----
// Warning 5740: (95-144): Unreachable code.
// Warning 6328: (99-108): CHC: Assertion violation happens here.\nCounterexample:\ns = false\n\n\n\nTransaction trace:\nconstructor()\nState: s = false\nf()