solidity/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol
2021-01-04 10:03:16 +01:00

23 lines
489 B
Solidity

pragma experimental SMTChecker;
abstract contract A {
bool s;
function f() public view mod {
assert(s); // holds for B
assert(!s); // fails for B
}
modifier mod() virtual;
}
contract B is A {
modifier mod() virtual override {
bool x = true;
s = x;
_;
}
}
// ----
// Warning 5740: (95-156): Unreachable code.
// Warning 6328: (127-137): CHC: Assertion violation happens here.\nCounterexample:\ns = true\n\n\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f()