contract C { bytes data; address sender; bytes4 sig; uint value; function f() public payable { data = msg.data; sender = msg.sender; sig = msg.sig; value = msg.value; g(); } function g() internal view { assert(data.length >= 0); // should hold assert(uint160(sender) >= 0); // should hold assert(uint32(sig) >= 0); // should hold assert(value >= 0); // should hold assert(data.length == msg.data.length); // should fail with BMC assert(sender == msg.sender); // should fail with BMC assert(sig == msg.sig); // should fail with BMC assert(value == msg.value); // should fail with BMC } } // ==== // SMTEngine: bmc // ---- // Warning 4661: (394-432): BMC: Assertion violation happens here. // Warning 4661: (460-488): BMC: Assertion violation happens here. // Warning 4661: (516-538): BMC: Assertion violation happens here. // Warning 4661: (566-592): BMC: Assertion violation happens here.