contract C {
	int x;

	function g(int y) public pure returns (int) {
		return y;
	}

	function postinc() internal returns (int) {
		x += 1;
		return x;
	}

	function f() public {
		x = 0;
		try this.g(postinc()) {
			assert(x == 1); // should hold
		} catch (bytes memory s) {
			assert(x == 0); // should fail - state is reverted to the state after postinc(), but before the call to this.g()
		}
	}
}
// ====
// SMTEngine: all
// ----
// Warning 5667: (259-273): Unused try/catch parameter. Remove or comment out the variable name to silence this warning.
// Warning 6328: (280-294): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\ns = []\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()\n    C.postinc() -- internal call
