diff --git a/test/libsolidity/smtCheckerTests/abi/abi_decode_1_tuple.sol b/test/libsolidity/smtCheckerTests/abi/abi_decode_1_tuple.sol index d0efe08ab..2cfa10b31 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_decode_1_tuple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_decode_1_tuple.sol @@ -1,11 +1,12 @@ -pragma experimental SMTChecker; contract C { function f(bytes calldata data) external pure returns (uint256[] memory) { return abi.decode(data, (uint256[])); } } +// ==== +// SMTEngine: all // ---- -// Warning 8364: (148-157): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (147-158): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (148-157): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (147-158): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (116-125): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (115-126): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (116-125): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (115-126): Assertion checker does not yet implement type type(uint256[] memory) diff --git a/test/libsolidity/smtCheckerTests/abi/abi_decode_array.sol b/test/libsolidity/smtCheckerTests/abi/abi_decode_array.sol index 57841ca27..10e6115e5 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_decode_array.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_decode_array.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -29,42 +28,44 @@ contract C { assert(l.length == b.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 8364: (194-200): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (202-208): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (315-321): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (323-329): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (564-570): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (572-578): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (580-586): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (801-807): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (801-809): Assertion checker does not yet implement type type(uint256[] memory[] memory) -// Warning 8364: (811-817): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (811-819): Assertion checker does not yet implement type type(uint256[] memory[] memory) -// Warning 8364: (811-821): Assertion checker does not yet implement type type(uint256[] memory[] memory[] memory) -// Warning 8364: (1021-1027): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (1029-1035): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 6328: (214-242): CHC: Assertion violation happens here. -// Warning 6328: (367-395): CHC: Assertion violation happens here. -// Warning 6328: (446-474): CHC: Assertion violation happens here. -// Warning 6328: (592-620): CHC: Assertion violation happens here. -// Warning 6328: (639-667): CHC: Assertion violation happens here. -// Warning 6328: (686-714): CHC: Assertion violation happens here. -// Warning 6328: (911-948): CHC: Assertion violation happens here. -// Warning 6328: (1041-1069): CHC: Assertion violation happens here. -// Warning 6328: (1088-1116): CHC: Assertion violation happens here. -// Warning 6328: (1135-1163): CHC: Assertion violation happens here. -// Warning 8364: (194-200): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (202-208): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (315-321): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (323-329): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (564-570): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (572-578): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (580-586): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (801-807): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (801-809): Assertion checker does not yet implement type type(uint256[] memory[] memory) -// Warning 8364: (811-817): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (811-819): Assertion checker does not yet implement type type(uint256[] memory[] memory) -// Warning 8364: (811-821): Assertion checker does not yet implement type type(uint256[] memory[] memory[] memory) -// Warning 8364: (1021-1027): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (1029-1035): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (162-168): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (170-176): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (283-289): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (291-297): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (532-538): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (540-546): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (548-554): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (769-775): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (769-777): Assertion checker does not yet implement type type(uint256[] memory[] memory) +// Warning 8364: (779-785): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (779-787): Assertion checker does not yet implement type type(uint256[] memory[] memory) +// Warning 8364: (779-789): Assertion checker does not yet implement type type(uint256[] memory[] memory[] memory) +// Warning 8364: (989-995): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (997-1003): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 6328: (182-210): CHC: Assertion violation happens here. +// Warning 6328: (335-363): CHC: Assertion violation happens here. +// Warning 6328: (414-442): CHC: Assertion violation happens here. +// Warning 6328: (560-588): CHC: Assertion violation happens here. +// Warning 6328: (607-635): CHC: Assertion violation happens here. +// Warning 6328: (654-682): CHC: Assertion violation happens here. +// Warning 6328: (879-916): CHC: Assertion violation happens here. +// Warning 6328: (1009-1037): CHC: Assertion violation happens here. +// Warning 6328: (1056-1084): CHC: Assertion violation happens here. +// Warning 6328: (1103-1131): CHC: Assertion violation happens here. +// Warning 8364: (162-168): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (170-176): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (283-289): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (291-297): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (532-538): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (540-546): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (548-554): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (769-775): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (769-777): Assertion checker does not yet implement type type(uint256[] memory[] memory) +// Warning 8364: (779-785): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (779-787): Assertion checker does not yet implement type type(uint256[] memory[] memory) +// Warning 8364: (779-789): Assertion checker does not yet implement type type(uint256[] memory[] memory[] memory) +// Warning 8364: (989-995): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (997-1003): Assertion checker does not yet implement type type(uint256[] memory) diff --git a/test/libsolidity/smtCheckerTests/abi/abi_decode_simple.sol b/test/libsolidity/smtCheckerTests/abi/abi_decode_simple.sol index 8c4b8d678..2020ce7ae 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_decode_simple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_decode_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiDecodeSimple(bytes memory b1, bytes memory b2) public pure { (uint x, uint y) = abi.decode(b1, (uint, uint)); @@ -19,12 +18,13 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (241-255): CHC: Assertion violation happens here. -// Warning 6328: (292-306): CHC: Assertion violation happens here. -// Warning 6328: (391-405): CHC: Assertion violation happens here. -// Warning 6328: (424-438): CHC: Assertion violation happens here. -// Warning 6328: (457-466): CHC: Assertion violation happens here. -// Warning 6328: (537-551): CHC: Assertion violation happens here. -// Warning 6328: (570-584): CHC: Assertion violation happens here. +// Warning 6328: (209-223): CHC: Assertion violation happens here. +// Warning 6328: (260-274): CHC: Assertion violation happens here. +// Warning 6328: (359-373): CHC: Assertion violation happens here. +// Warning 6328: (392-406): CHC: Assertion violation happens here. +// Warning 6328: (425-434): CHC: Assertion violation happens here. +// Warning 6328: (505-519): CHC: Assertion violation happens here. +// Warning 6328: (538-552): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice.sol index b8b0a78ae..9b1440f89 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(bytes calldata data) external pure { bytes memory b1 = abi.encode(data); @@ -24,6 +23,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (311-341): CHC: Assertion violation happens here. +// Warning 6328: (279-309): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice_2.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice_2.sol index e1261521c..4c8e32697 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice_2.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(uint[] calldata data) external pure { bytes memory b1 = abi.encode(data); @@ -24,9 +23,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (364-379): Unused local variable. -// Warning 2072: (650-665): Unused local variable. -// Warning 2072: (823-838): Unused local variable. -// Warning 6328: (312-342): CHC: Assertion violation happens here. +// Warning 2072: (332-347): Unused local variable. +// Warning 2072: (618-633): Unused local variable. +// Warning 2072: (791-806): Unused local variable. +// Warning 6328: (280-310): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_function.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_function.sol index 6f8f7b5a3..fd082d9c5 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_function.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_function.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f() public view { abi.encode(this.f); } } +// ==== +// SMTEngine: all // ---- -// Warning 6031: (86-92): Internal error: Expression undefined for SMT solver. -// Warning 6031: (86-92): Internal error: Expression undefined for SMT solver. +// Warning 6031: (54-60): Internal error: Expression undefined for SMT solver. +// Warning 6031: (54-60): Internal error: Expression undefined for SMT solver. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_hash.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_hash.sol index dd4762fe2..fae9039d8 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_hash.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_hash.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeHash(uint a, uint b) public pure { require(a == b); @@ -7,3 +6,5 @@ contract C { assert(keccak256(b1) == keccak256(b2)); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_no_arguments.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_no_arguments.sol index b30842302..336696d39 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_no_arguments.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_no_arguments.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() pure public { bytes memory res = abi.encode(); @@ -14,9 +13,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (152-174): CHC: Assertion violation happens here. -// Warning 6328: (263-285): CHC: Assertion violation happens here. -// Warning 6328: (339-362): CHC: Assertion violation happens here. -// Warning 6328: (455-478): CHC: Assertion violation happens here. +// Warning 6328: (120-142): CHC: Assertion violation happens here. +// Warning 6328: (231-253): CHC: Assertion violation happens here. +// Warning 6328: (307-330): CHC: Assertion violation happens here. +// Warning 6328: (423-446): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice.sol index 3538f9130..91bcfe5ea 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiencodePackedSlice(bytes calldata data) external pure { bytes memory b1 = abi.encodePacked(data); @@ -28,9 +27,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (159-174): Unused local variable. -// Warning 2072: (723-738): Unused local variable. -// Warning 2072: (1131-1146): Unused local variable. -// Warning 6328: (1079-1109): CHC: Assertion violation happens here. +// Warning 2072: (127-142): Unused local variable. +// Warning 2072: (691-706): Unused local variable. +// Warning 2072: (1099-1114): Unused local variable. +// Warning 6328: (1047-1077): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice_2.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice_2.sol index 460c86072..7f8b98806 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice_2.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiencodePackedSlice(uint[] calldata data) external pure { bytes memory b1 = abi.encodePacked(data); @@ -27,6 +26,8 @@ contract C { //assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (675-690): Unused local variable. -// Warning 6328: (330-360): CHC: Assertion violation happens here. +// Warning 2072: (643-658): Unused local variable. +// Warning 6328: (298-328): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_hash.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_hash.sol index 5682e4a04..a9608a828 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_hash.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_hash.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiencodePackedHash(uint a, uint b) public pure { require(a == b); @@ -10,7 +9,9 @@ contract C { assert(keccak256(b1) == keccak256(b3)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (313-351): CHC: Error trying to invoke SMT solver. -// Warning 6328: (313-351): CHC: Assertion violation might happen here. -// Warning 4661: (313-351): BMC: Assertion violation happens here. +// Warning 1218: (281-319): CHC: Error trying to invoke SMT solver. +// Warning 6328: (281-319): CHC: Assertion violation might happen here. +// Warning 4661: (281-319): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_simple.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_simple.sol index 43e1f2b56..75fd7e989 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_simple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiencodePackedSimple(bool t, uint x, uint y, uint z, uint[] memory a, uint[] memory b) public pure { require(x == y); @@ -21,8 +20,10 @@ contract C { //assert(b1.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (354-384): CHC: Assertion violation happens here. -// Warning 6328: (451-481): CHC: Assertion violation happens here. -// Warning 6328: (560-590): CHC: Assertion violation happens here. -// Warning 6328: (609-639): CHC: Assertion violation happens here. +// Warning 6328: (322-352): CHC: Assertion violation happens here. +// Warning 6328: (419-449): CHC: Assertion violation happens here. +// Warning 6328: (528-558): CHC: Assertion violation happens here. +// Warning 6328: (577-607): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_string_literal.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_string_literal.sol index e19177e30..0598311ad 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_string_literal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiencodePackedStringLiteral() public pure { bytes memory b1 = abi.encodePacked(""); @@ -20,17 +19,19 @@ contract C { assert(b1.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (258-288): CHC: Assertion violation happens here. -// Warning 1218: (342-372): CHC: Error trying to invoke SMT solver. -// Warning 6328: (342-372): CHC: Assertion violation might happen here. -// Warning 1218: (515-545): CHC: Error trying to invoke SMT solver. -// Warning 6328: (515-545): CHC: Assertion violation might happen here. -// Warning 1218: (600-630): CHC: Error trying to invoke SMT solver. -// Warning 6328: (600-630): CHC: Assertion violation might happen here. -// Warning 1218: (686-716): CHC: Error trying to invoke SMT solver. -// Warning 6328: (686-716): CHC: Assertion violation might happen here. -// Warning 4661: (342-372): BMC: Assertion violation happens here. -// Warning 4661: (515-545): BMC: Assertion violation happens here. -// Warning 4661: (600-630): BMC: Assertion violation happens here. -// Warning 4661: (686-716): BMC: Assertion violation happens here. +// Warning 6328: (226-256): CHC: Assertion violation happens here. +// Warning 1218: (310-340): CHC: Error trying to invoke SMT solver. +// Warning 6328: (310-340): CHC: Assertion violation might happen here. +// Warning 1218: (483-513): CHC: Error trying to invoke SMT solver. +// Warning 6328: (483-513): CHC: Assertion violation might happen here. +// Warning 1218: (568-598): CHC: Error trying to invoke SMT solver. +// Warning 6328: (568-598): CHC: Assertion violation might happen here. +// Warning 1218: (654-684): CHC: Error trying to invoke SMT solver. +// Warning 6328: (654-684): CHC: Assertion violation might happen here. +// Warning 4661: (310-340): BMC: Assertion violation happens here. +// Warning 4661: (483-513): BMC: Assertion violation happens here. +// Warning 4661: (568-598): BMC: Assertion violation happens here. +// Warning 4661: (654-684): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_simple.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_simple.sol index f6115b749..9164f5e3b 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_simple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSimple(bool t, uint x, uint y, uint z, uint[] memory a, uint[] memory b) public pure { require(x == y); @@ -18,7 +17,9 @@ contract C { //assert(b1.length == b5.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (330-360): CHC: Assertion violation happens here. -// Warning 6328: (421-451): CHC: Assertion violation happens here. -// Warning 6328: (524-554): CHC: Assertion violation happens here. +// Warning 6328: (298-328): CHC: Assertion violation happens here. +// Warning 6328: (389-419): CHC: Assertion violation happens here. +// Warning 6328: (492-522): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_string_literal.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_string_literal.sol index fadc9f48d..3b2006215 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_string_literal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeStringLiteral() public pure { bytes memory b1 = abi.encode(""); @@ -17,16 +16,18 @@ contract C { assert(b1.length == b5.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (240-270): CHC: Error trying to invoke SMT solver. -// Warning 6328: (240-270): CHC: Assertion violation might happen here. -// Warning 1218: (318-348): CHC: Error trying to invoke SMT solver. -// Warning 6328: (318-348): CHC: Assertion violation might happen here. -// Warning 1218: (485-515): CHC: Error trying to invoke SMT solver. -// Warning 6328: (485-515): CHC: Assertion violation might happen here. -// Warning 1218: (564-594): CHC: Error trying to invoke SMT solver. -// Warning 6328: (564-594): CHC: Assertion violation might happen here. -// Warning 4661: (240-270): BMC: Assertion violation happens here. -// Warning 4661: (318-348): BMC: Assertion violation happens here. -// Warning 4661: (485-515): BMC: Assertion violation happens here. -// Warning 4661: (564-594): BMC: Assertion violation happens here. +// Warning 1218: (208-238): CHC: Error trying to invoke SMT solver. +// Warning 6328: (208-238): CHC: Assertion violation might happen here. +// Warning 1218: (286-316): CHC: Error trying to invoke SMT solver. +// Warning 6328: (286-316): CHC: Assertion violation might happen here. +// Warning 1218: (453-483): CHC: Error trying to invoke SMT solver. +// Warning 6328: (453-483): CHC: Assertion violation might happen here. +// Warning 1218: (532-562): CHC: Error trying to invoke SMT solver. +// Warning 6328: (532-562): CHC: Assertion violation might happen here. +// Warning 4661: (208-238): BMC: Assertion violation happens here. +// Warning 4661: (286-316): BMC: Assertion violation happens here. +// Warning 4661: (453-483): BMC: Assertion violation happens here. +// Warning 4661: (532-562): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice.sol index fd713f1c6..0365b9655 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(bytes4 sel, bytes calldata data) external pure { bytes memory b1 = abi.encodeWithSelector(sel, data); @@ -23,15 +22,17 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (357-387): CHC: Assertion violation happens here. -// Warning 6328: (610-640): CHC: Assertion violation happens here. -// Warning 1218: (723-753): CHC: Error trying to invoke SMT solver. -// Warning 6328: (723-753): CHC: Assertion violation might happen here. -// Warning 1218: (991-1021): CHC: Error trying to invoke SMT solver. -// Warning 6328: (991-1021): CHC: Assertion violation might happen here. -// Warning 1218: (1111-1141): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1111-1141): CHC: Assertion violation might happen here. -// Warning 4661: (723-753): BMC: Assertion violation happens here. -// Warning 4661: (991-1021): BMC: Assertion violation happens here. -// Warning 4661: (1111-1141): BMC: Assertion violation happens here. +// Warning 6328: (325-355): CHC: Assertion violation happens here. +// Warning 6328: (578-608): CHC: Assertion violation happens here. +// Warning 1218: (691-721): CHC: Error trying to invoke SMT solver. +// Warning 6328: (691-721): CHC: Assertion violation might happen here. +// Warning 1218: (959-989): CHC: Error trying to invoke SMT solver. +// Warning 6328: (959-989): CHC: Assertion violation might happen here. +// Warning 1218: (1079-1109): CHC: Error trying to invoke SMT solver. +// Warning 6328: (1079-1109): CHC: Assertion violation might happen here. +// Warning 4661: (691-721): BMC: Assertion violation happens here. +// Warning 4661: (959-989): BMC: Assertion violation happens here. +// Warning 4661: (1079-1109): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice_2.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice_2.sol index 3418df5a4..b94977030 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice_2.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(bytes4 sel, uint[] calldata data) external pure { bytes memory b1 = abi.encodeWithSelector(sel, data); @@ -23,15 +22,17 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (358-388): CHC: Assertion violation happens here. -// Warning 6328: (611-641): CHC: Assertion violation happens here. -// Warning 1218: (724-754): CHC: Error trying to invoke SMT solver. -// Warning 6328: (724-754): CHC: Assertion violation might happen here. -// Warning 1218: (992-1022): CHC: Error trying to invoke SMT solver. -// Warning 6328: (992-1022): CHC: Assertion violation might happen here. -// Warning 1218: (1112-1142): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1112-1142): CHC: Assertion violation might happen here. -// Warning 4661: (724-754): BMC: Assertion violation happens here. -// Warning 4661: (992-1022): BMC: Assertion violation happens here. -// Warning 4661: (1112-1142): BMC: Assertion violation happens here. +// Warning 6328: (326-356): CHC: Assertion violation happens here. +// Warning 6328: (579-609): CHC: Assertion violation happens here. +// Warning 1218: (692-722): CHC: Error trying to invoke SMT solver. +// Warning 6328: (692-722): CHC: Assertion violation might happen here. +// Warning 1218: (960-990): CHC: Error trying to invoke SMT solver. +// Warning 6328: (960-990): CHC: Assertion violation might happen here. +// Warning 1218: (1080-1110): CHC: Error trying to invoke SMT solver. +// Warning 6328: (1080-1110): CHC: Assertion violation might happen here. +// Warning 4661: (692-722): BMC: Assertion violation happens here. +// Warning 4661: (960-990): BMC: Assertion violation happens here. +// Warning 4661: (1080-1110): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_hash.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_hash.sol index c3d311fbc..3360feb02 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_hash.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_hash.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeHash(bytes4 sel, uint a, uint b) public pure { require(a == b); @@ -11,10 +10,12 @@ contract C { assert(keccak256(b1) != keccak256(b3)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (365-403): CHC: Error trying to invoke SMT solver. -// Warning 6328: (365-403): CHC: Assertion violation might happen here. -// Warning 1218: (422-460): CHC: Error trying to invoke SMT solver. -// Warning 6328: (422-460): CHC: Assertion violation might happen here. -// Warning 4661: (365-403): BMC: Assertion violation happens here. -// Warning 4661: (422-460): BMC: Assertion violation happens here. +// Warning 1218: (333-371): CHC: Error trying to invoke SMT solver. +// Warning 6328: (333-371): CHC: Assertion violation might happen here. +// Warning 1218: (390-428): CHC: Error trying to invoke SMT solver. +// Warning 6328: (390-428): CHC: Assertion violation might happen here. +// Warning 4661: (333-371): BMC: Assertion violation happens here. +// Warning 4661: (390-428): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_simple.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_simple.sol index 3ff5af194..f776c3dc4 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_simple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSimple(bytes4 sel, bool t, uint x, uint y, uint z, uint[] memory a, uint[] memory b) public pure { require(x == y); @@ -22,9 +21,11 @@ contract C { assert(b1.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (132-147): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (603-633): CHC: Assertion violation happens here. -// Warning 6328: (723-753): CHC: Assertion violation happens here. -// Warning 6328: (772-802): CHC: Assertion violation happens here. -// Warning 6328: (887-917): CHC: Assertion violation happens here. +// Warning 5667: (100-115): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (571-601): CHC: Assertion violation happens here. +// Warning 6328: (691-721): CHC: Assertion violation happens here. +// Warning 6328: (740-770): CHC: Assertion violation happens here. +// Warning 6328: (855-885): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal.sol index 79c875bc1..e824c57d1 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeStringLiteral(bytes4 sel) public pure { bytes memory b1 = abi.encodeWithSelector(sel, ""); @@ -20,17 +19,19 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (284-314): CHC: Assertion violation happens here. -// Warning 1218: (379-409): CHC: Error trying to invoke SMT solver. -// Warning 6328: (379-409): CHC: Assertion violation might happen here. -// Warning 1218: (563-593): CHC: Error trying to invoke SMT solver. -// Warning 6328: (563-593): CHC: Assertion violation might happen here. -// Warning 1218: (659-689): CHC: Error trying to invoke SMT solver. -// Warning 6328: (659-689): CHC: Assertion violation might happen here. -// Warning 1218: (778-808): CHC: Error trying to invoke SMT solver. -// Warning 6328: (778-808): CHC: Assertion violation might happen here. -// Warning 4661: (379-409): BMC: Assertion violation happens here. -// Warning 4661: (563-593): BMC: Assertion violation happens here. -// Warning 4661: (659-689): BMC: Assertion violation happens here. -// Warning 4661: (778-808): BMC: Assertion violation happens here. +// Warning 6328: (252-282): CHC: Assertion violation happens here. +// Warning 1218: (347-377): CHC: Error trying to invoke SMT solver. +// Warning 6328: (347-377): CHC: Assertion violation might happen here. +// Warning 1218: (531-561): CHC: Error trying to invoke SMT solver. +// Warning 6328: (531-561): CHC: Assertion violation might happen here. +// Warning 1218: (627-657): CHC: Error trying to invoke SMT solver. +// Warning 6328: (627-657): CHC: Assertion violation might happen here. +// Warning 1218: (746-776): CHC: Error trying to invoke SMT solver. +// Warning 6328: (746-776): CHC: Assertion violation might happen here. +// Warning 4661: (347-377): BMC: Assertion violation happens here. +// Warning 4661: (531-561): BMC: Assertion violation happens here. +// Warning 4661: (627-657): BMC: Assertion violation happens here. +// Warning 4661: (746-776): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal_2.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal_2.sol index ffa39e4c7..352a620e6 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal_2.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeStringLiteral(bytes4 sel) public pure { bytes memory b1 = abi.encodeWithSelector(""); @@ -7,3 +6,5 @@ contract C { assert(b1.length == b2.length); // should hold } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_vs_sig.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_vs_sig.sol index 598b35273..b97f28955 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_vs_sig.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_vs_sig.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(string memory sig, uint x, uint[] memory a) public pure { bytes memory b1 = abi.encodeWithSignature(sig, x, a); @@ -7,5 +6,7 @@ contract C { assert(b1.length == b2.length); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (326-356): CHC: Assertion violation happens here. +// Warning 6328: (294-324): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice.sol index a108d6f69..7530ea6c5 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(string memory sig, bytes calldata data) external pure { bytes memory b1 = abi.encodeWithSignature(sig, data); @@ -23,15 +22,17 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (366-396): CHC: Assertion violation happens here. -// Warning 6328: (620-650): CHC: Assertion violation happens here. -// Warning 1218: (734-764): CHC: Error trying to invoke SMT solver. -// Warning 6328: (734-764): CHC: Assertion violation might happen here. -// Warning 1218: (1003-1033): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1003-1033): CHC: Assertion violation might happen here. -// Warning 1218: (1118-1148): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1118-1148): CHC: Assertion violation might happen here. -// Warning 4661: (734-764): BMC: Assertion violation happens here. -// Warning 4661: (1003-1033): BMC: Assertion violation happens here. -// Warning 4661: (1118-1148): BMC: Assertion violation happens here. +// Warning 6328: (334-364): CHC: Assertion violation happens here. +// Warning 6328: (588-618): CHC: Assertion violation happens here. +// Warning 1218: (702-732): CHC: Error trying to invoke SMT solver. +// Warning 6328: (702-732): CHC: Assertion violation might happen here. +// Warning 1218: (971-1001): CHC: Error trying to invoke SMT solver. +// Warning 6328: (971-1001): CHC: Assertion violation might happen here. +// Warning 1218: (1086-1116): CHC: Error trying to invoke SMT solver. +// Warning 6328: (1086-1116): CHC: Assertion violation might happen here. +// Warning 4661: (702-732): BMC: Assertion violation happens here. +// Warning 4661: (971-1001): BMC: Assertion violation happens here. +// Warning 4661: (1086-1116): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice_2.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice_2.sol index 053d08d6d..f9da7be6b 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice_2.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(string memory sig, uint[] calldata data) external pure { bytes memory b1 = abi.encodeWithSignature(sig, data); @@ -23,15 +22,17 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (367-397): CHC: Assertion violation happens here. -// Warning 6328: (621-651): CHC: Assertion violation happens here. -// Warning 1218: (735-765): CHC: Error trying to invoke SMT solver. -// Warning 6328: (735-765): CHC: Assertion violation might happen here. -// Warning 1218: (1004-1034): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1004-1034): CHC: Assertion violation might happen here. -// Warning 1218: (1119-1149): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1119-1149): CHC: Assertion violation might happen here. -// Warning 4661: (735-765): BMC: Assertion violation happens here. -// Warning 4661: (1004-1034): BMC: Assertion violation happens here. -// Warning 4661: (1119-1149): BMC: Assertion violation happens here. +// Warning 6328: (335-365): CHC: Assertion violation happens here. +// Warning 6328: (589-619): CHC: Assertion violation happens here. +// Warning 1218: (703-733): CHC: Error trying to invoke SMT solver. +// Warning 6328: (703-733): CHC: Assertion violation might happen here. +// Warning 1218: (972-1002): CHC: Error trying to invoke SMT solver. +// Warning 6328: (972-1002): CHC: Assertion violation might happen here. +// Warning 1218: (1087-1117): CHC: Error trying to invoke SMT solver. +// Warning 6328: (1087-1117): CHC: Assertion violation might happen here. +// Warning 4661: (703-733): BMC: Assertion violation happens here. +// Warning 4661: (972-1002): BMC: Assertion violation happens here. +// Warning 4661: (1087-1117): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_hash.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_hash.sol index fc499921b..a76f91f81 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_hash.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_hash.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeHash(string memory sig, uint a, uint b) public pure { require(a == b); @@ -11,10 +10,12 @@ contract C { assert(keccak256(b1) != keccak256(b3)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (369-407): CHC: Error trying to invoke SMT solver. -// Warning 6328: (369-407): CHC: Assertion violation might happen here. -// Warning 1218: (426-464): CHC: Error trying to invoke SMT solver. -// Warning 6328: (426-464): CHC: Assertion violation might happen here. -// Warning 4661: (369-407): BMC: Assertion violation happens here. -// Warning 4661: (426-464): BMC: Assertion violation happens here. +// Warning 1218: (337-375): CHC: Error trying to invoke SMT solver. +// Warning 6328: (337-375): CHC: Assertion violation might happen here. +// Warning 1218: (394-432): CHC: Error trying to invoke SMT solver. +// Warning 6328: (394-432): CHC: Assertion violation might happen here. +// Warning 4661: (337-375): BMC: Assertion violation happens here. +// Warning 4661: (394-432): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_simple.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_simple.sol index 069dbd1a4..7c640a560 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_simple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSimple(string memory sig, bool t, uint x, uint y, uint z, uint[] memory a, uint[] memory b) public pure { require(x == y); @@ -21,9 +20,11 @@ contract C { assert(b1.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (139-154): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (575-605): CHC: Assertion violation happens here. -// Warning 6328: (696-726): CHC: Assertion violation happens here. -// Warning 6328: (745-775): CHC: Assertion violation happens here. -// Warning 6328: (856-886): CHC: Assertion violation happens here. +// Warning 5667: (107-122): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (543-573): CHC: Assertion violation happens here. +// Warning 6328: (664-694): CHC: Assertion violation happens here. +// Warning 6328: (713-743): CHC: Assertion violation happens here. +// Warning 6328: (824-854): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_string_literal.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_string_literal.sol index e586e6fba..666fa23ba 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_string_literal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeStringLiteral(string memory sig) public pure { bytes memory b1 = abi.encodeWithSignature(sig, ""); @@ -20,17 +19,19 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (293-323): CHC: Assertion violation happens here. -// Warning 1218: (389-419): CHC: Error trying to invoke SMT solver. -// Warning 6328: (389-419): CHC: Assertion violation might happen here. -// Warning 1218: (574-604): CHC: Error trying to invoke SMT solver. -// Warning 6328: (574-604): CHC: Assertion violation might happen here. -// Warning 1218: (671-701): CHC: Error trying to invoke SMT solver. -// Warning 6328: (671-701): CHC: Assertion violation might happen here. -// Warning 1218: (785-815): CHC: Error trying to invoke SMT solver. -// Warning 6328: (785-815): CHC: Assertion violation might happen here. -// Warning 4661: (389-419): BMC: Assertion violation happens here. -// Warning 4661: (574-604): BMC: Assertion violation happens here. -// Warning 4661: (671-701): BMC: Assertion violation happens here. -// Warning 4661: (785-815): BMC: Assertion violation happens here. +// Warning 6328: (261-291): CHC: Assertion violation happens here. +// Warning 1218: (357-387): CHC: Error trying to invoke SMT solver. +// Warning 6328: (357-387): CHC: Assertion violation might happen here. +// Warning 1218: (542-572): CHC: Error trying to invoke SMT solver. +// Warning 6328: (542-572): CHC: Assertion violation might happen here. +// Warning 1218: (639-669): CHC: Error trying to invoke SMT solver. +// Warning 6328: (639-669): CHC: Assertion violation might happen here. +// Warning 1218: (753-783): CHC: Error trying to invoke SMT solver. +// Warning 6328: (753-783): CHC: Assertion violation might happen here. +// Warning 4661: (357-387): BMC: Assertion violation happens here. +// Warning 4661: (542-572): BMC: Assertion violation happens here. +// Warning 4661: (639-669): BMC: Assertion violation happens here. +// Warning 4661: (753-783): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_1.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_1.sol index 764cf9df0..43aa6c31f 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,5 +5,7 @@ contract C { a.push(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_2.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_2.sol index a25e9bf6a..011d7b321 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,5 +5,7 @@ contract C { a.length; } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_3.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_3.sol index d114983e3..b74321006 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_3.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,6 +5,8 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() -// Warning 2529: (93-100): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (60-67): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_4.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_4.sol index 8a6dae0b6..206ada96e 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_4.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,5 +5,7 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (94-101): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (61-68): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_5.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_5.sol index 98a07bd5a..8811944c8 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_5.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function g() internal { @@ -10,5 +8,7 @@ contract C { g(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (122-129): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (89-96): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_6.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_6.sol index 66d59019b..f47a89375 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_6.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function g() internal view { @@ -10,5 +8,7 @@ contract C { g(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (127-134): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (94-101): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_7.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_7.sol index 34663d931..d91ee235f 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_7.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,3 +5,5 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_8.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_8.sol index 15e29249b..6de94c8ec 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_8.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -12,5 +10,7 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_push_string_literal.sol b/test/libsolidity/smtCheckerTests/array_members/array_push_string_literal.sol index 066c73845..aa3256397 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_push_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_push_string_literal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { bytes data; function g() public { @@ -12,6 +11,8 @@ contract C { assert(uint8(data[0]) == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (171-193): CHC: Assertion violation happens here.\nCounterexample:\ndata = [98]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g() -// Warning 6328: (295-322): CHC: Assertion violation happens here.\nCounterexample:\ndata = [1]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g() +// Warning 6328: (139-161): CHC: Assertion violation happens here.\nCounterexample:\ndata = [98]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g() +// Warning 6328: (263-290): CHC: Assertion violation happens here.\nCounterexample:\ndata = [1]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g() diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_memory_to_memory.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_memory_to_memory.sol index 970b0c1e7..7a402bbe0 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_memory_to_memory.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_memory_to_memory.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -9,3 +8,5 @@ contract C { assert(arr.length == arr2.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_storage_to_storage.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_storage_to_storage.sol index 019677fd7..5733a5d56 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_storage_to_storage.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_storage_to_storage.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -15,3 +14,5 @@ contract C { assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_memory_to_storage.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_memory_to_storage.sol index d452900e4..a73ec7b91 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_memory_to_storage.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_memory_to_storage.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -10,3 +9,5 @@ contract C { assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_storage_to_memory.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_storage_to_memory.sol index 77ecd50a6..a4fdc211f 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_storage_to_memory.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_storage_to_memory.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -15,3 +14,5 @@ contract C { assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_1.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_1.sol index dbce0665c..091c304a2 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_1.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[]) map; function f() public view { assert(map[0].length == map[1].length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2.sol index dc2305f79..6aff8e365 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[]) map; function f(uint x, uint y) public view { @@ -7,3 +5,5 @@ contract C { assert(map[x].length == map[y].length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2d_1.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2d_1.sol index 543c309e0..f98f0d3e6 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2d_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[][]) map; function f(uint x, uint y) public { @@ -8,3 +6,5 @@ contract C { assert(map[x][0].length == map[y][0].length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_1.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_1.sol index 8857b91db..3ab218741 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[] arr; @@ -10,4 +8,6 @@ contract C { assert(s1.arr.length == s2.arr.length); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_2d_1.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_2d_1.sol index 64812492b..6b904a8ae 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_2d_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_2d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[][] arr; @@ -20,3 +18,5 @@ contract C { assert(s1.arr[0].length == s2.arr[0].length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_assignment_2d_memory_to_memory.sol b/test/libsolidity/smtCheckerTests/array_members/length_assignment_2d_memory_to_memory.sol index cfac3d721..0bc93f945 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_assignment_2d_memory_to_memory.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_assignment_2d_memory_to_memory.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -7,3 +6,5 @@ contract C { assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_assignment_memory_to_memory.sol b/test/libsolidity/smtCheckerTests/array_members/length_assignment_memory_to_memory.sol index 66f6d1067..79c8799ab 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_assignment_memory_to_memory.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_assignment_memory_to_memory.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f(uint[] memory arr) public pure { uint[] memory arr2 = arr; assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_assignment_storage_to_storage.sol b/test/libsolidity/smtCheckerTests/array_members/length_assignment_storage_to_storage.sol index c379f3381..607de1014 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_assignment_storage_to_storage.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_assignment_storage_to_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; uint[] arr2; @@ -8,3 +6,5 @@ contract C { assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_basic.sol b/test/libsolidity/smtCheckerTests/array_members/length_basic.sol index 9cbf1023b..205c7746d 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_basic.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_basic.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; function f() public view { @@ -9,5 +7,7 @@ contract C { assert(arr.length != y); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (153-176): CHC: Assertion violation happens here.\nCounterexample:\narr = []\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: arr = []\nC.f() +// Warning 6328: (120-143): CHC: Assertion violation happens here.\nCounterexample:\narr = []\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: arr = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/length_copy_memory_to_storage.sol b/test/libsolidity/smtCheckerTests/array_members/length_copy_memory_to_storage.sol index ec6c2a2f2..d60dced50 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_copy_memory_to_storage.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_copy_memory_to_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; function f(uint[] memory marr) public { @@ -7,3 +5,5 @@ contract C { assert(marr.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_copy_storage_to_memory.sol b/test/libsolidity/smtCheckerTests/array_members/length_copy_storage_to_memory.sol index 20e83c908..893649a49 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_copy_storage_to_memory.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_copy_storage_to_memory.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; function f() public view { @@ -7,3 +5,5 @@ contract C { assert(marr.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_function_call.sol b/test/libsolidity/smtCheckerTests/array_members/length_function_call.sol index 250c88666..2a8179acb 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_function_call.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_function_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; function f() public view { @@ -8,3 +6,5 @@ contract C { function g() internal pure returns (uint[] memory) { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment.sol b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment.sol index 5d26afd87..2be0b54e0 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; constructor() { @@ -14,3 +12,5 @@ contract C { assert(arr.length == arr2.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2.sol b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2.sol index 5b41200da..eef8f01c7 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] arr; constructor() { @@ -22,3 +20,5 @@ contract C { assert(arr.length == z); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2_fail.sol b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2_fail.sol index cb427a0a5..086224a11 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] arr; constructor() { @@ -23,8 +21,9 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (324-350): CHC: Assertion violation happens here. -// Warning 6328: (354-380): CHC: Assertion violation happens here. -// Warning 6328: (384-407): CHC: Assertion violation happens here. +// Warning 6328: (291-317): CHC: Assertion violation happens here. +// Warning 6328: (321-347): CHC: Assertion violation happens here. +// Warning 6328: (351-374): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3.sol b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3.sol index f030876d3..a274452b4 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] arr; @@ -27,3 +25,5 @@ contract C { assert(arr[5].length == t); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3_fail.sol b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3_fail.sol index 6e40c3b07..f4d5c889c 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3_fail.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] arr; constructor() { @@ -25,8 +23,10 @@ contract C { assert(arr[5].length != t); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (352-378): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() -// Warning 6328: (382-408): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() -// Warning 6328: (412-435): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() -// Warning 6328: (439-465): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() +// Warning 6328: (319-345): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() +// Warning 6328: (349-375): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() +// Warning 6328: (379-402): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() +// Warning 6328: (406-432): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_1_safe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_1_safe.sol index 34663d931..d91ee235f 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_1_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_1_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,3 +5,5 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol index 9ebdde1f2..270fa28fb 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_2d_safe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_2d_safe.sol index c67e91959..0d11770f8 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_2d_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_2d_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -8,3 +6,5 @@ contract C { a[0].pop(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol index d66114f62..f74381ce9 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -9,5 +7,7 @@ contract C { a[1].pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (123-133): CHC: Empty array "pop" happens here.\nCounterexample:\na = [[0], []]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (90-100): CHC: Empty array "pop" happens here.\nCounterexample:\na = [[0], []]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_constructor_safe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_constructor_safe.sol index c462713df..7817f4eec 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_constructor_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_constructor_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; constructor() { @@ -7,3 +5,5 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol index 1bbd1fbfd..1cb1ed013 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { uint[] a; constructor() { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (76-83): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor() +// Warning 2529: (43-50): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_loop_safe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_loop_safe.sol index aee7aeb52..2bf382e5d 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_loop_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_loop_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f(uint l) public { @@ -9,4 +7,6 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol index e4020f8c6..0b0ba37e3 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f(uint l) public { @@ -10,5 +8,7 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (150-157): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\nl = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f(0) +// Warning 2529: (117-124): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\nl = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_safe.sol b/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_safe.sol index 34a1ae680..e306cc722 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f(uint[] memory x, uint y) public { @@ -8,3 +6,5 @@ contract C { assert(a[0][a[0].length - 1] == y); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_unsafe.sol index 8e54d1166..235c585bd 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f(uint[] memory x, uint y) public { @@ -10,7 +8,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 3944: (162-177): CHC: Underflow (resulting value less than 0) happens here. -// Warning 6328: (150-184): CHC: Assertion violation happens here. +// Warning 3944: (129-144): CHC: Underflow (resulting value less than 0) happens here. +// Warning 6328: (117-151): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/push_arg_1.sol b/test/libsolidity/smtCheckerTests/array_members/push_arg_1.sol index e36895554..8d31f78bc 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_arg_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_arg_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f(uint x) public { @@ -7,3 +5,5 @@ contract C { assert(a[a.length - 1] == x); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_1d.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_1d.sol index 6d0c00a0e..5920a4e74 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_1d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_1d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] b; @@ -17,5 +15,7 @@ contract C { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (232-262): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g() +// Warning 6328: (199-229): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d.sol index 86367689c..862798b17 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] c; @@ -20,5 +18,7 @@ contract C { assert(c[c.length - 1][c[c.length - 1].length - 1] == 200); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (395-453): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g() +// Warning 6328: (362-420): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d_2.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d_2.sol index a6a57233d..b64032291 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function s() public returns (int[] memory) { @@ -7,3 +6,5 @@ contract C { return array2d[1]; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_3d.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_3d.sol index d09ebcbff..dcb8c3aac 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_3d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_3d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][][] c; @@ -26,6 +24,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (570-625): CHC: Assertion violation happens here. +// Warning 6328: (537-592): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_1d.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_1d.sol index 9214b530b..c634fbaa3 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_1d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_1d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] b; function f() public { @@ -12,5 +10,7 @@ contract C { assert(b[length - 1] == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (237-263): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() +// Warning 6328: (204-230): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_1.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_1.sol index bf9cd63fc..b79bc3e3b 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] b; function f() public { @@ -15,5 +13,7 @@ contract C { assert(b[0][0] != b[1][0]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (317-343): CHC: Assertion violation happens here.\nCounterexample:\nb = [[0], [0]]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() +// Warning 6328: (284-310): CHC: Assertion violation happens here.\nCounterexample:\nb = [[0], [0]]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_2.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_2.sol index 69b62803a..988fdcfca 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] b; function f() public { @@ -13,3 +11,5 @@ contract C { assert(b[length - 1][length1 - 1] == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_bytes.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_bytes.sol index 486470669..6f3cfa214 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_bytes.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes b; function f() public { @@ -12,5 +10,7 @@ contract C { assert(b[length - 1] == bytes1(uint8(1))); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (236-277): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() +// Warning 6328: (203-244): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes.sol index 68b51d0c0..79a1f394c 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes b; @@ -18,5 +16,7 @@ contract C { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (298-343): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\none = 1\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g() +// Warning 6328: (265-310): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\none = 1\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes_2d.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes_2d.sol index cde51ab91..a58647e61 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes_2d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes[] c; @@ -22,5 +20,7 @@ contract C { assert(c[c.length - 1][c[c.length - 1].length - 1] == bytes1(uint8(100))); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (468-541): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\nval = 2\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g() +// Warning 6328: (435-508): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\nval = 2\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_compound_assignment.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_compound_assignment.sol index 031bee0a5..f13c4f452 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_compound_assignment.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_compound_assignment.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { int[] u; @@ -11,5 +9,7 @@ contract C { assert(u[0] >= 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (161-178): CHC: Assertion violation happens here.\nCounterexample:\nu = [(- 1)]\n\nTransaction trace:\nC.constructor()\nState: u = []\nC.t() +// Warning 6328: (128-145): CHC: Assertion violation happens here.\nCounterexample:\nu = [(- 1)]\n\nTransaction trace:\nC.constructor()\nState: u = []\nC.t() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_struct.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_struct.sol index 87773a7ea..23743dd7f 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_struct.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_struct.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { int[] b; @@ -13,3 +12,5 @@ contract C { assert(s.b[s.b.length -1] == t.s.b[t.s.b.length - 1]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe.sol b/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe.sol index dac9b10a0..87ead6a10 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256[] x; constructor() { x.push(42); } @@ -8,3 +6,5 @@ contract C { assert(x[0] == 42 || x[0] == 23); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe_no_overflow_assumption.sol b/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe_no_overflow_assumption.sol index 6b4642bfd..1e4089886 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe_no_overflow_assumption.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe_no_overflow_assumption.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256[] x; constructor() { x.push(42); } @@ -8,3 +6,5 @@ contract C { assert(x[0] == 42); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe.sol b/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe.sol index 340f670d0..4b10daaec 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe.sol @@ -10,3 +10,5 @@ contract C { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe_no_overflow_assumption.sol b/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe_no_overflow_assumption.sol index 433df09d5..1b241745a 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe_no_overflow_assumption.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe_no_overflow_assumption.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256[] x; function f(uint256 l) public { @@ -11,4 +9,6 @@ contract C { assert(x[0] == 42); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1.sol b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1.sol index 8acd7998a..6290875a0 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function l() public { @@ -7,3 +6,5 @@ contract C { assert(array2d[array2d.length - 1].length > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1_fail.sol b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1_fail.sol index 8407d2869..9e998a1f0 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function l() public { @@ -7,6 +6,8 @@ contract C { assert(array2d[array2d.length - 1].length > 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (113-139): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() -// Warning 6328: (143-189): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() +// Warning 6328: (81-107): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() +// Warning 6328: (111-157): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2.sol b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2.sol index b6fd8e8c9..fc147e3d8 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][][] array2d; function l() public { @@ -9,3 +8,5 @@ contract C { assert(array2d[array2d.length - 1][last - 1].length > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2_fail.sol b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2_fail.sol index 7020350ef..db0a88f7b 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][][] array2d; function l() public { @@ -9,7 +8,9 @@ contract C { assert(array2d[array2d.length - 1][last - 1].length > 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (122-148): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() -// Warning 6328: (202-218): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() -// Warning 6328: (222-278): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() +// Warning 6328: (90-116): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() +// Warning 6328: (170-186): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() +// Warning 6328: (190-246): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_safe_aliasing.sol b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_safe_aliasing.sol index 4c9aef2ac..7a120f428 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_safe_aliasing.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_safe_aliasing.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -12,9 +10,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (212-216): CHC: Out of bounds access happens here. -// Warning 6368: (217-221): CHC: Out of bounds access happens here. -// Warning 3944: (217-232): CHC: Underflow (resulting value less than 0) happens here. -// Warning 6328: (205-239): CHC: Assertion violation happens here. +// Warning 6368: (179-183): CHC: Out of bounds access happens here. +// Warning 6368: (184-188): CHC: Out of bounds access happens here. +// Warning 3944: (184-199): CHC: Underflow (resulting value less than 0) happens here. +// Warning 6328: (172-206): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_aliasing.sol b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_aliasing.sol index a7ea93073..d51a5f9e2 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_aliasing.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_aliasing.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -12,7 +10,9 @@ contract C { assert(a[0][0] == 16); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (221-225): CHC: Out of bounds access happens here.\nCounterexample:\na = []\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() -// Warning 6368: (221-228): CHC: Out of bounds access happens here.\nCounterexample:\na = [[], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]]\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() -// Warning 6328: (214-235): CHC: Assertion violation happens here.\nCounterexample:\n\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 6368: (188-192): CHC: Out of bounds access happens here.\nCounterexample:\na = []\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 6368: (188-195): CHC: Out of bounds access happens here.\nCounterexample:\na = [[], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]]\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 6328: (181-202): CHC: Assertion violation happens here.\nCounterexample:\n\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_length.sol b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_length.sol index 06635c232..ea55e3055 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_length.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_length.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; uint[][][] c; @@ -25,14 +23,16 @@ contract C { //assert(d[1] == 7); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (271-275): CHC: Out of bounds access happens here. -// Warning 6368: (271-278): CHC: Out of bounds access might happen here. -// Warning 6368: (271-281): CHC: Out of bounds access might happen here. -// Warning 6368: (344-348): CHC: Out of bounds access happens here. -// Warning 6368: (376-380): CHC: Out of bounds access happens here. -// Warning 6328: (369-393): CHC: Assertion violation happens here. -// Warning 6368: (546-550): CHC: Out of bounds access happens here. -// Warning 6368: (546-553): CHC: Out of bounds access happens here. -// Warning 6368: (546-556): CHC: Out of bounds access happens here. -// Warning 6328: (539-563): CHC: Assertion violation happens here. +// Warning 6368: (238-242): CHC: Out of bounds access happens here. +// Warning 6368: (238-245): CHC: Out of bounds access might happen here. +// Warning 6368: (238-248): CHC: Out of bounds access might happen here. +// Warning 6368: (311-315): CHC: Out of bounds access happens here. +// Warning 6368: (343-347): CHC: Out of bounds access happens here. +// Warning 6328: (336-360): CHC: Assertion violation happens here. +// Warning 6368: (513-517): CHC: Out of bounds access happens here. +// Warning 6368: (513-520): CHC: Out of bounds access happens here. +// Warning 6368: (513-523): CHC: Out of bounds access happens here. +// Warning 6328: (506-530): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/push_struct_member_1.sol b/test/libsolidity/smtCheckerTests/array_members/push_struct_member_1.sol index b2e500c74..15330f39b 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_struct_member_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_struct_member_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { int[] b; @@ -14,4 +13,6 @@ contract C { } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/array_members/push_struct_member_2.sol b/test/libsolidity/smtCheckerTests/array_members/push_struct_member_2.sol index ba9a84713..f763dd55c 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_struct_member_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_struct_member_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { int[] b; @@ -15,4 +14,6 @@ contract C { } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_safe.sol b/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_safe.sol index 33d9d1063..f92a929e0 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -8,3 +6,5 @@ contract C { assert(a[a.length - 1][0] == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_unsafe.sol index a7f9c51d9..ec33dc041 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -8,5 +6,7 @@ contract C { assert(a[a.length - 1][0] == 100); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (122-155): CHC: Assertion violation happens here.\nCounterexample:\na = [[0]]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 6328: (89-122): CHC: Assertion violation happens here.\nCounterexample:\na = [[0]]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_zero_safe.sol b/test/libsolidity/smtCheckerTests/array_members/push_zero_safe.sol index e8054e361..d677c9710 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_zero_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_zero_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,3 +5,5 @@ contract C { assert(a[a.length - 1] == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol index 16e019753..6647e8d41 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,5 +5,7 @@ contract C { assert(a[a.length - 1] == 100); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (94-124): CHC: Assertion violation happens here.\nCounterexample:\na = [0]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 6328: (61-91): CHC: Assertion violation happens here.\nCounterexample:\na = [0]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1.sol b/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1.sol index 618aaff99..8b1791190 100644 --- a/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function l() public { @@ -14,5 +13,7 @@ contract C { return array2d[2]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (184-213): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [], []]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()\n C.s() -- internal call +// Warning 6328: (152-181): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [], []]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()\n C.s() -- internal call diff --git a/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1_safe.sol b/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1_safe.sol index 843b46b16..0f95b057a 100644 --- a/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1_safe.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function l() public { @@ -13,3 +12,5 @@ contract C { return array2d[2]; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol b/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol index 45bb781ba..7bbbf9ddb 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint t; constructor() { @@ -17,4 +15,6 @@ contract C { //assert(address(this).balance == t); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change.sol b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change.sol index 816b9af32..7e233950c 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address t; constructor() { @@ -9,4 +7,6 @@ contract C { assert(address(this) == t); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_external_call.sol b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_external_call.sol index c0adb1fe9..1af2dfb58 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_external_call.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_external_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -16,3 +14,5 @@ contract C { assert(a == t); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_internal_call.sol b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_internal_call.sol index 70feedc3e..db82c55fe 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_internal_call.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_internal_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address t; constructor() { @@ -13,3 +11,5 @@ contract C { assert(a == address(this)); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol b/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol index 2ca716b21..4192d8aba 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address payable a) public { require(address(this).balance > 1000); @@ -10,6 +8,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (199-234): CHC: Assertion violation happens here. +// Warning 6328: (166-201): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/assert.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/assert.sol index 9043689f5..819839f7e 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/assert.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/assert.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { assert(x > 0); @@ -20,7 +19,7 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (81-94): BMC: Assertion violation happens here. -// Warning 6838: (143-149): BMC: Condition is always true. -// Warning 6838: (218-224): BMC: Condition is always false. -// Warning 2512: (286-292): BMC: Condition unreachable. +// Warning 4661: (49-62): BMC: Assertion violation happens here. +// Warning 6838: (111-117): BMC: Condition is always true. +// Warning 6838: (186-192): BMC: Condition is always false. +// Warning 2512: (254-260): BMC: Condition unreachable. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/assert_in_constructor.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/assert_in_constructor.sol index 2ceae7304..f6f2f3a5b 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/assert_in_constructor.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/assert_in_constructor.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = initX(); diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers.sol index fb87df2b5..297d732ee 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -25,4 +23,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (103-117): BMC: Assertion violation happens here. +// Warning 4661: (70-84): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers_2.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers_2.sol index 47e3a27ef..f37f05684 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers_2.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -40,6 +38,6 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (384-398): BMC: Assertion violation happens here. -// Warning 4661: (635-652): BMC: Assertion violation happens here. -// Warning 4661: (781-795): BMC: Assertion violation happens here. +// Warning 4661: (351-365): BMC: Assertion violation happens here. +// Warning 4661: (602-619): BMC: Assertion violation happens here. +// Warning 4661: (748-762): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init.sol index 6d960112a..eb2f58105 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; constructor (int a) { x = a;} @@ -37,7 +35,7 @@ contract C is B { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (330-344): BMC: Assertion violation happens here. -// Warning 4661: (422-445): BMC: Assertion violation happens here. -// Warning 4661: (522-546): BMC: Assertion violation happens here. -// Warning 4661: (566-579): BMC: Assertion violation happens here. +// Warning 4661: (297-311): BMC: Assertion violation happens here. +// Warning 4661: (389-412): BMC: Assertion violation happens here. +// Warning 4661: (489-513): BMC: Assertion violation happens here. +// Warning 4661: (533-546): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_chain_alternate.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_chain_alternate.sol index 511cfbb60..6364eb167 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_chain_alternate.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_chain_alternate.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 1; } @@ -27,4 +25,4 @@ contract D is C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (319-333): BMC: Assertion violation happens here. +// Warning 4661: (286-300): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_diamond.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_diamond.sol index c962d1003..b72555b69 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_diamond.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_diamond.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; } @@ -62,11 +60,11 @@ contract D4 is B, C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (370-384): BMC: Assertion violation happens here. -// Warning 4661: (403-418): BMC: Assertion violation happens here. +// Warning 4661: (337-351): BMC: Assertion violation happens here. +// Warning 4661: (370-385): BMC: Assertion violation happens here. +// Warning 4661: (460-474): BMC: Assertion violation happens here. // Warning 4661: (493-507): BMC: Assertion violation happens here. -// Warning 4661: (526-540): BMC: Assertion violation happens here. -// Warning 4661: (703-717): BMC: Assertion violation happens here. -// Warning 4661: (769-784): BMC: Assertion violation happens here. +// Warning 4661: (670-684): BMC: Assertion violation happens here. +// Warning 4661: (736-751): BMC: Assertion violation happens here. +// Warning 4661: (827-841): BMC: Assertion violation happens here. // Warning 4661: (860-874): BMC: Assertion violation happens here. -// Warning 4661: (893-907): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructors.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructors.sol index 9ed5ddcbf..afc48b4fe 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructors.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructors.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract B { int x; constructor(int b) { @@ -27,7 +25,7 @@ contract C is B { // ==== // SMTEngine: bmc // ---- -// Warning 5740: (152-157): Unreachable code. +// Warning 5740: (119-124): Unreachable code. +// Warning 4661: (277-291): BMC: Assertion violation happens here. // Warning 4661: (310-324): BMC: Assertion violation happens here. // Warning 4661: (343-357): BMC: Assertion violation happens here. -// Warning 4661: (376-390): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/nested_if.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/nested_if.sol index c941c6421..378c9dc92 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/nested_if.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/nested_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a, uint256 b) public pure { @@ -24,5 +22,5 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (147-174): BMC: Assertion violation happens here. -// Warning 6838: (332-348): BMC: Condition is always false. +// Warning 4661: (114-141): BMC: Assertion violation happens here. +// Warning 6838: (299-315): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/return_in_both_branches.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/return_in_both_branches.sol index 0ad554c31..992d0ee1d 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/return_in_both_branches.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/return_in_both_branches.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test() public pure { @@ -20,4 +18,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 5740: (265-273): Unreachable code. +// Warning 5740: (232-240): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if.sol index 783a28543..aed7b0bb3 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a, uint256 b) public pure returns (uint256) { if (a == 0) { diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if2.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if2.sol index d614edb55..4860bd885 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if2.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a) public pure { @@ -16,4 +14,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (89-114): BMC: Assertion violation happens here. +// Warning 4661: (56-81): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_array.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_array.sol index 70cc1ed38..76e416905 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_array.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -27,4 +25,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (205-222): BMC: Assertion violation happens here. +// Warning 4661: (172-189): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_state_var.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_state_var.sol index 5acc7fcbe..20dd68eaa 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_state_var.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_state_var.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -21,4 +19,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (132-146): BMC: Assertion violation happens here. +// Warning 4661: (99-113): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct.sol index de3cfda1b..3976333cd 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -24,4 +22,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (156-172): BMC: Assertion violation happens here. +// Warning 4661: (123-139): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct_2.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct_2.sol index d709be0c7..aad44b7ea 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct_2.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -24,4 +22,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (156-172): BMC: Assertion violation happens here. +// Warning 4661: (123-139): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_tuple.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_tuple.sol index e1e6b323c..5c5bb1297 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_tuple.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_tuple.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -25,5 +23,5 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (160-174): BMC: Assertion violation happens here. -// Warning 4661: (194-208): BMC: Assertion violation happens here. +// Warning 4661: (127-141): BMC: Assertion violation happens here. +// Warning 4661: (161-175): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/triple_nested_if.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/triple_nested_if.sol index 38a5c852b..d3d7cb50c 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/triple_nested_if.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/triple_nested_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint a; diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol index 129361224..737443e64 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(address payable a) public { a.transfer(200); @@ -7,4 +6,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 1236: (87-102): BMC: Insufficient funds happens here. +// Warning 1236: (55-70): BMC: Insufficient funds happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/implicit_constructor_with_function_calls.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/implicit_constructor_with_function_calls.sol index 2f09c6a9b..56c7eca75 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/implicit_constructor_with_function_calls.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/implicit_constructor_with_function_calls.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = initX(); uint y = initY(); @@ -16,4 +14,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (205-220): BMC: Assertion violation happens here. +// Warning 4661: (172-187): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/math.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/math.sol index 75a85172d..92dad6bd4 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/math.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/math.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function a(uint x, uint y) public pure returns (uint) { return x + y; @@ -16,7 +15,7 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 2661: (111-116): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4144: (187-192): BMC: Underflow (resulting value less than 0) happens here. -// Warning 2661: (263-268): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 3046: (339-344): BMC: Division by zero happens here. +// Warning 2661: (79-84): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4144: (155-160): BMC: Underflow (resulting value less than 0) happens here. +// Warning 2661: (231-236): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 3046: (307-312): BMC: Division by zero happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/math_constructor.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/math_constructor.sol index 79fca378e..6d027c58e 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/math_constructor.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/math_constructor.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint z = 1; uint w = z - 3; @@ -6,4 +5,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4144: (68-73): BMC: Underflow (resulting value less than 0) happens here. +// Warning 4144: (36-41): BMC: Underflow (resulting value less than 0) happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/msg_value_4.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/msg_value_4.sol index 185a76eda..8ac34fad5 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/msg_value_4.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/msg_value_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { uint x = msg.value; constructor() { @@ -14,4 +13,4 @@ contract B { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (186-208): BMC: Assertion violation happens here. +// Warning 4661: (154-176): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/range_check.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/range_check.sol index 10906198c..faf713e2a 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/range_check.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/range_check.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { constructor() payable { assert(tx.origin >= address(0)); diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/timestamp.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/timestamp.sol index 65933f6d1..850c999ae 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/timestamp.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/timestamp.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view returns (uint) { uint b = block.timestamp; diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_catch_clauses_2.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_catch_clauses_2.sol index eb6fe4756..ce81f2666 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_catch_clauses_2.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_catch_clauses_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure {} @@ -21,4 +20,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (338-352): BMC: Assertion violation happens here. +// Warning 4661: (306-320): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_returned_values_with_tuple.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_returned_values_with_tuple.sol index 136d96542..f79d82c12 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_returned_values_with_tuple.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_returned_values_with_tuple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { @@ -25,4 +24,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (368-383): BMC: Assertion violation happens here. +// Warning 4661: (336-351): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/unary_add_minus_overflow_detected.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/unary_add_minus_overflow_detected.sol index 9d375fd58..085be4618 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/unary_add_minus_overflow_detected.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/unary_add_minus_overflow_detected.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint8 x; @@ -24,5 +23,5 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 2661: (87-90): BMC: Overflow (resulting value larger than 255) happens here. -// Warning 4144: (127-130): BMC: Underflow (resulting value less than 0) happens here. +// Warning 2661: (55-58): BMC: Overflow (resulting value larger than 255) happens here. +// Warning 4144: (95-98): BMC: Underflow (resulting value less than 0) happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/unchecked_function_call_with_unchecked_block.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/unchecked_function_call_with_unchecked_block.sol index 03e7f50aa..e5eb9b631 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/unchecked_function_call_with_unchecked_block.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/unchecked_function_call_with_unchecked_block.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) internal pure { unchecked { @@ -13,5 +12,5 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (117-130): BMC: Assertion violation happens here. -// Warning 4661: (117-130): BMC: Assertion violation happens here. +// Warning 4661: (85-98): BMC: Assertion violation happens here. +// Warning 4661: (85-98): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/complex/MerkleProof.sol b/test/libsolidity/smtCheckerTests/complex/MerkleProof.sol index 0e18796a1..606625d3f 100644 --- a/test/libsolidity/smtCheckerTests/complex/MerkleProof.sol +++ b/test/libsolidity/smtCheckerTests/complex/MerkleProof.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - /** * @title MerkleProof * @dev Merkle proof verification based on @@ -33,4 +31,6 @@ library MerkleProof { } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol b/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol index 92a45e5ac..2415ac5eb 100644 --- a/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol +++ b/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { @@ -51,8 +49,9 @@ contract MyConc{ } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2519: (773-792): This declaration shadows an existing declaration. -// Warning 2018: (1009-1086): Function state mutability can be restricted to view -// Warning 4984: (985-1002): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 2519: (740-759): This declaration shadows an existing declaration. +// Warning 2018: (976-1053): Function state mutability can be restricted to view +// Warning 4984: (952-969): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/complex/slither/data_dependency.sol b/test/libsolidity/smtCheckerTests/complex/slither/data_dependency.sol index 074bc5b10..87edde95c 100644 --- a/test/libsolidity/smtCheckerTests/complex/slither/data_dependency.sol +++ b/test/libsolidity/smtCheckerTests/complex/slither/data_dependency.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract Simple{ address destination; @@ -116,5 +115,7 @@ contract PropagateThroughReturnValue { return (var_state); } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (1879-1947): Function state mutability can be restricted to view +// Warning 2018: (1847-1915): Function state mutability can be restricted to view diff --git a/test/libsolidity/smtCheckerTests/complex/slither/external_function.sol b/test/libsolidity/smtCheckerTests/complex/slither/external_function.sol index bf7345c75..9c235a28a 100644 --- a/test/libsolidity/smtCheckerTests/complex/slither/external_function.sol +++ b/test/libsolidity/smtCheckerTests/complex/slither/external_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract ContractWithFunctionCalled { function funcCalled() external { uint256 i = 0; @@ -72,21 +70,23 @@ contract InternalCall { } } +// ==== +// SMTEngine: all // ---- -// Warning 9302: (760-815): Return value of low-level calls not used. -// Warning 2072: (117-126): Unused local variable. -// Warning 2072: (260-269): Unused local variable. -// Warning 2072: (667-676): Unused local variable. -// Warning 2018: (75-137): Function state mutability can be restricted to pure -// Warning 2018: (218-280): Function state mutability can be restricted to pure -// Warning 2018: (470-539): Function state mutability can be restricted to pure -// Warning 2018: (1144-1206): Function state mutability can be restricted to pure -// Warning 2018: (1212-1274): Function state mutability can be restricted to pure -// Warning 2018: (1280-1342): Function state mutability can be restricted to pure -// Warning 4588: (714-749): Assertion checker does not yet implement this type of function call. -// Warning 4588: (760-815): Assertion checker does not yet implement this type of function call. -// Warning 4588: (887-919): Assertion checker does not yet implement this type of function call. -// Warning 4588: (714-749): Assertion checker does not yet implement this type of function call. -// Warning 4588: (760-815): Assertion checker does not yet implement this type of function call. -// Warning 4588: (887-919): Assertion checker does not yet implement this type of function call. -// Warning 5729: (1403-1408): BMC does not yet implement this type of function call. +// Warning 9302: (727-782): Return value of low-level calls not used. +// Warning 2072: (84-93): Unused local variable. +// Warning 2072: (227-236): Unused local variable. +// Warning 2072: (634-643): Unused local variable. +// Warning 2018: (42-104): Function state mutability can be restricted to pure +// Warning 2018: (185-247): Function state mutability can be restricted to pure +// Warning 2018: (437-506): Function state mutability can be restricted to pure +// Warning 2018: (1111-1173): Function state mutability can be restricted to pure +// Warning 2018: (1179-1241): Function state mutability can be restricted to pure +// Warning 2018: (1247-1309): Function state mutability can be restricted to pure +// Warning 4588: (681-716): Assertion checker does not yet implement this type of function call. +// Warning 4588: (727-782): Assertion checker does not yet implement this type of function call. +// Warning 4588: (854-886): Assertion checker does not yet implement this type of function call. +// Warning 4588: (681-716): Assertion checker does not yet implement this type of function call. +// Warning 4588: (727-782): Assertion checker does not yet implement this type of function call. +// Warning 4588: (854-886): Assertion checker does not yet implement this type of function call. +// Warning 5729: (1370-1375): BMC does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/complex/warn_on_typecast.sol b/test/libsolidity/smtCheckerTests/complex/warn_on_typecast.sol index b37bd1a19..28b2a30d9 100644 --- a/test/libsolidity/smtCheckerTests/complex/warn_on_typecast.sol +++ b/test/libsolidity/smtCheckerTests/complex/warn_on_typecast.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns (uint) { return uint8(1); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/assignment_in_declaration.sol b/test/libsolidity/smtCheckerTests/control_flow/assignment_in_declaration.sol index 0c701672d..9a17438fe 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/assignment_in_declaration.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/assignment_in_declaration.sol @@ -1,4 +1,5 @@ -pragma experimental SMTChecker; contract C { function f() public pure { uint a = 2; assert(a == 2); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_1.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_1.sol index 64f6e0121..054098bd5 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { if (x > 10) { @@ -10,3 +9,5 @@ contract C { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_2.sol index e39ab844a..b1af861dd 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { if (x > 10) { @@ -14,3 +13,5 @@ contract C { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_1.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_1.sol index 4bf0bbe8b..097637168 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint x; modifier m(uint z) { @@ -20,5 +19,7 @@ contract C { assert(x == 6); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (359-373): CHC: Assertion violation happens here.\nCounterexample:\nx = 7\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call +// Warning 6328: (327-341): CHC: Assertion violation happens here.\nCounterexample:\nx = 7\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_2.sol index bf8173cbc..458c78081 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint x; modifier m(uint z) { @@ -20,5 +19,7 @@ contract C { assert(x == 6); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (365-379): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call +// Warning 6328: (333-347): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_3.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_3.sol index a7774f53b..b8323501c 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_3.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint x; modifier m(uint z) { @@ -20,5 +19,7 @@ contract C { assert(x == 6); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (358-372): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call +// Warning 6328: (326-340): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_4.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_4.sol index cb2bc8703..81f8b3d7c 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_4.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint x; modifier m(uint z) { @@ -21,6 +20,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (365-379): CHC: Assertion violation happens here. +// Warning 6328: (333-347): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_1.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_1.sol index f93e32e41..fa55db9f7 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Branch does not touch variable a contract C { function f(uint x) public pure { @@ -8,3 +7,5 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_2.sol index c00ef787a..30524b403 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Positive branch touches variable a, but assertion should still hold. contract C { function f(uint x) public pure { @@ -9,3 +8,5 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_3.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_3.sol index 4e18aa881..48833bb84 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_3.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Negative branch touches variable a, but assertion should still hold. contract C { function f(uint x) public pure { @@ -10,3 +9,5 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_4.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_4.sol index e3a027044..8fd6ca7b0 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_4.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Variable is not merged, if it is only read. contract C { function f(uint x) public pure { @@ -11,3 +10,5 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_5.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_5.sol index 0bd1cf3a0..b7c937700 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_5.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_5.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Variable is reset in both branches contract C { function f(uint x) public pure { @@ -11,3 +10,5 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_6.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_6.sol index 8e4771792..cd70a82c1 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_6.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_6.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Variable is reset in both branches contract C { function f(uint x) public pure { @@ -11,3 +10,5 @@ contract C { assert(a >= 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers.sol index 3651374c8..aa8199cd0 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -22,5 +20,7 @@ contract C { function test() check inc public { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.test() +// Warning 6328: (70-84): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.test() diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers_2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers_2.sol index f41bf2860..4241fa9e2 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -42,7 +40,9 @@ contract C { x = _x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.test()\n C.reset_if_overflow() -- internal call -// Warning 6328: (535-552): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\noldx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(1)\nState: x = 1\nC.test()\n C.reset_if_overflow() -- internal call -// Warning 6328: (648-662): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(10)\nState: x = 10\nC.test()\n C.reset_if_overflow() -- internal call +// Warning 6328: (255-269): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.test()\n C.reset_if_overflow() -- internal call +// Warning 6328: (502-519): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\noldx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(1)\nState: x = 1\nC.test()\n C.reset_if_overflow() -- internal call +// Warning 6328: (615-629): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(10)\nState: x = 10\nC.test()\n C.reset_if_overflow() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init.sol index c79da79b2..3f660be66 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; constructor (int a) { x = a;} @@ -34,8 +32,10 @@ contract C is B { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (330-344): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (422-445): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (522-546): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) -// Warning 6328: (566-579): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (297-311): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) +// Warning 6328: (389-412): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) +// Warning 6328: (489-513): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (533-546): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_chain_alternate.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_chain_alternate.sol index b9dc9f051..f0b5d48e1 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_chain_alternate.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_chain_alternate.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 1; } @@ -24,5 +22,7 @@ contract D is C { assert(x == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (319-333): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\na = 1\n\nTransaction trace:\nD.constructor(1) +// Warning 6328: (286-300): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\na = 1\n\nTransaction trace:\nD.constructor(1) diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_diamond.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_diamond.sol index f149dff8d..7eb23a120 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_diamond.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_diamond.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; } @@ -59,12 +57,14 @@ contract D4 is B, C { assert(x == -1); // should hold (constructor of C is executed AFTER constructor of B) } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (370-384): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 1, x = 0\n\nTransaction trace:\nD1.constructor() -// Warning 6328: (403-418): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 1, x = 0\n\nTransaction trace:\nD1.constructor() +// Warning 6328: (337-351): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 1, x = 0\n\nTransaction trace:\nD1.constructor() +// Warning 6328: (370-385): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 1, x = 0\n\nTransaction trace:\nD1.constructor() +// Warning 6328: (460-474): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 1, x = (- 1)\n\nTransaction trace:\nD2.constructor() // Warning 6328: (493-507): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 1, x = (- 1)\n\nTransaction trace:\nD2.constructor() -// Warning 6328: (526-540): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 1, x = (- 1)\n\nTransaction trace:\nD2.constructor() -// Warning 6328: (703-717): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 2, x = 1\n\nTransaction trace:\nD3.constructor() -// Warning 6328: (769-784): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 2, x = 1\n\nTransaction trace:\nD3.constructor() +// Warning 6328: (670-684): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 2, x = 1\n\nTransaction trace:\nD3.constructor() +// Warning 6328: (736-751): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 2, x = 1\n\nTransaction trace:\nD3.constructor() +// Warning 6328: (827-841): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 2, x = (- 1)\n\nTransaction trace:\nD4.constructor() // Warning 6328: (860-874): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 2, x = (- 1)\n\nTransaction trace:\nD4.constructor() -// Warning 6328: (893-907): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 2, x = (- 1)\n\nTransaction trace:\nD4.constructor() diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructors.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructors.sol index e0b9242a5..d17a3f421 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructors.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructors.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract B { int x; constructor(int b) { @@ -24,8 +22,10 @@ contract C is B { assert(x == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 5740: (152-157): Unreachable code. +// Warning 5740: (119-124): Unreachable code. +// Warning 6328: (277-291): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 1\n\nTransaction trace:\nC.constructor(1) // Warning 6328: (310-324): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (343-357): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (376-390): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\na = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (343-357): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\na = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/nested_if.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/nested_if.sol index df6fc1ba7..43a4aea30 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/nested_if.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/nested_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a, uint256 b) public pure { @@ -21,6 +19,8 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (147-174): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\nb = 2\n\nTransaction trace:\nC.constructor()\nC.test(0, 2)\n C.nested_if(0, 2) -- internal call\n C.nested_if(0, 2) -- internal call -// Warning 6838: (332-348): BMC: Condition is always false. +// Warning 6328: (114-141): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\nb = 2\n\nTransaction trace:\nC.constructor()\nC.test(0, 2)\n C.nested_if(0, 2) -- internal call\n C.nested_if(0, 2) -- internal call +// Warning 6838: (299-315): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/return_in_both_branches.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/return_in_both_branches.sol index 07bb637e9..803b01857 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/return_in_both_branches.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/return_in_both_branches.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test() public pure { @@ -17,5 +15,7 @@ contract C { return 1; // dead code } } +// ==== +// SMTEngine: all // ---- -// Warning 5740: (265-273): Unreachable code. +// Warning 5740: (232-240): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if.sol index b77bc2b2b..c4def2562 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a, uint256 b) public pure returns (uint256) { if (a == 0) { @@ -8,3 +6,5 @@ contract C { return b / a; // This division is safe because of the early return in if-block. } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if2.sol index 1156b3fdf..ea4459597 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a) public pure { @@ -13,5 +11,7 @@ contract C { return 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (89-114): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\nTransaction trace:\nC.constructor()\nC.test(0)\n C.simple_if(0) -- internal call +// Warning 6328: (56-81): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\nTransaction trace:\nC.constructor()\nC.test(0)\n C.simple_if(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_array.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_array.sol index 4f50c49b7..bf48eb32e 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_array.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -24,5 +22,7 @@ contract C { a[1] = 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (205-222): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\n\nTransaction trace:\nC.constructor()\nState: a = [0, 0]\nC.check()\n C.conditional_store() -- internal call +// Warning 6328: (172-189): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\n\nTransaction trace:\nC.constructor()\nState: a = [0, 0]\nC.check()\n C.conditional_store() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_state_var.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_state_var.sol index e01ef1bcd..d3e74c01a 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_state_var.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_state_var.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -18,5 +16,7 @@ contract C { x = 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (132-146): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.conditional_increment() -- internal call +// Warning 6328: (99-113): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.conditional_increment() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct.sol index e7385eb05..e04cd91d7 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -21,5 +19,7 @@ contract C { s.x = 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (156-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()\n C.conditional_increment() -- internal call +// Warning 6328: (123-139): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()\n C.conditional_increment() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct_2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct_2.sol index e07f9a731..d9fcb93bd 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -21,5 +19,7 @@ contract C { s = S(1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (156-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()\n C.conditional_increment() -- internal call +// Warning 6328: (123-139): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()\n C.conditional_increment() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_tuple.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_tuple.sol index f88a90bfb..a9008ae25 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_tuple.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_tuple.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -22,6 +20,8 @@ contract C { (x,y) = (1,1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (160-174): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()\n C.conditional_increment() -- internal call -// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()\n C.conditional_increment() -- internal call +// Warning 6328: (127-141): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()\n C.conditional_increment() -- internal call +// Warning 6328: (161-175): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()\n C.conditional_increment() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/triple_nested_if.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/triple_nested_if.sol index 06caf8a2a..883469681 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/triple_nested_if.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/triple_nested_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint a; @@ -17,3 +15,5 @@ contract C { assert(a != 0 || b != 0 || c != 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch.sol index c32bdd983..e71daa8a5 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -14,4 +12,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_2.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_2.sol index 1bff12f86..da8239492 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -19,4 +17,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_3.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_3.sol index d14a2e6bc..f526c958e 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_3.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -19,4 +17,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_4.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_4.sol index bdb7b9fd8..db3550a52 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_4.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -24,4 +22,6 @@ contract C } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_else_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_else_branch.sol index 8c3099bf1..b13e976a2 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_else_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_else_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -15,4 +13,6 @@ contract C return x; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_modifier_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_modifier_branch.sol index f79be2298..0eff935e0 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_modifier_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_modifier_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(address a) { @@ -18,4 +16,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_placeholder_inside_modifier_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_placeholder_inside_modifier_branch.sol index 5366b22d4..d1a67b475 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_placeholder_inside_modifier_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_placeholder_inside_modifier_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m { @@ -19,4 +17,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/require.sol b/test/libsolidity/smtCheckerTests/control_flow/require.sol index ecbbdb283..c59777d7c 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/require.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/require.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() pure public { require(false); @@ -29,6 +27,8 @@ contract C { require(false, m()); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (429-442): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (448-465): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()\n C.m() -- internal call +// Warning 6321: (396-409): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (415-432): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()\n C.m() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/return_1.sol b/test/libsolidity/smtCheckerTests/control_flow/return_1.sol index 3dabd2fef..95f9b2e56 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/return_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/return_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function add(uint x, uint y) internal pure returns (uint) { if (y == 0) @@ -18,4 +16,6 @@ contract C { assert(add(100, 100) == 200); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol index d7e00e2f9..59de4bc0f 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function add(uint x, uint y) internal pure returns (uint) { if (y == 0) @@ -19,9 +17,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (244-270): CHC: Assertion violation happens here. -// Warning 6328: (274-300): CHC: Assertion violation happens here. -// Warning 6328: (304-330): CHC: Assertion violation happens here. -// Warning 6328: (334-362): CHC: Assertion violation happens here. +// Warning 6328: (211-237): CHC: Assertion violation happens here. +// Warning 6328: (241-267): CHC: Assertion violation happens here. +// Warning 6328: (271-297): CHC: Assertion violation happens here. +// Warning 6328: (301-329): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/control_flow/return_2.sol b/test/libsolidity/smtCheckerTests/control_flow/return_2.sol index c6005bb08..54f265eee 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/return_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/return_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint c; function add(uint x, uint y) internal returns (uint) { @@ -27,4 +25,6 @@ contract C { assert(c == 0xffffffff); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol index 34c798a2a..7fcce53a1 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint c; function add(uint x, uint y) internal returns (uint) { @@ -28,13 +26,14 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (303-329): CHC: Assertion violation happens here. -// Warning 6328: (333-350): CHC: Assertion violation happens here. -// Warning 6328: (354-380): CHC: Assertion violation happens here. -// Warning 6328: (384-403): CHC: Assertion violation happens here. -// Warning 6328: (407-433): CHC: Assertion violation happens here. -// Warning 6328: (437-458): CHC: Assertion violation happens here. -// Warning 6328: (462-490): CHC: Assertion violation happens here. -// Warning 6328: (494-517): CHC: Assertion violation happens here. +// Warning 6328: (270-296): CHC: Assertion violation happens here. +// Warning 6328: (300-317): CHC: Assertion violation happens here. +// Warning 6328: (321-347): CHC: Assertion violation happens here. +// Warning 6328: (351-370): CHC: Assertion violation happens here. +// Warning 6328: (374-400): CHC: Assertion violation happens here. +// Warning 6328: (404-425): CHC: Assertion violation happens here. +// Warning 6328: (429-457): CHC: Assertion violation happens here. +// Warning 6328: (461-484): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/control_flow/revert.sol b/test/libsolidity/smtCheckerTests/control_flow/revert.sol index f47259025..14f6e988d 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/revert.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/revert.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() pure public { revert(); @@ -29,8 +27,10 @@ contract C { revert(m()); } } +// ==== +// SMTEngine: all // ---- -// Warning 5740: (116-129): Unreachable code. -// Warning 5740: (221-234): Unreachable code. -// Warning 6321: (408-421): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (427-444): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()\n C.m() -- internal call +// Warning 5740: (83-96): Unreachable code. +// Warning 5740: (188-201): Unreachable code. +// Warning 6321: (375-388): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (394-411): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()\n C.m() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol b/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol index 0d619fed4..5af670bda 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b, uint a) pure public { require(a <= 256); @@ -13,6 +11,8 @@ contract C { assert(c == a); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (183-197): CHC: Assertion violation happens here.\nCounterexample:\n\nb = false\na = 0\nc = 2\n\nTransaction trace:\nC.constructor()\nC.f(false, 0) -// Warning 6838: (155-156): BMC: Condition is always false. +// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\n\nb = false\na = 0\nc = 2\n\nTransaction trace:\nC.constructor()\nC.f(false, 0) +// Warning 6838: (122-123): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and.sol index 66f262787..6c4cfdc42 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,4 +12,6 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_fail.sol index cbb43330f..198d4dc3e 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,5 +12,7 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (227-236): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\nb = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call +// Warning 6328: (194-203): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\nb = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_inside_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_inside_branch.sol index 17339f4df..25ab73a19 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_inside_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_inside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -16,6 +14,8 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (202-218): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call -// Warning 6328: (242-252): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call +// Warning 6328: (169-185): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call +// Warning 6328: (209-219): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both.sol index 905964ed5..74f1ebb4e 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,4 +12,6 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both_fail.sol index d15467246..29bb06147 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,5 +12,7 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call +// Warning 6328: (192-202): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched.sol index d4b50a29e..9ded64131 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bool b; @@ -11,9 +9,11 @@ contract C if ((b = true) && b) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (84-110): BMC: Condition is always false. -// Warning 6838: (121-147): BMC: Condition is always true. -// Warning 6838: (158-183): BMC: Condition is always false. -// Warning 6838: (194-221): BMC: Condition is always false. -// Warning 6838: (232-247): BMC: Condition is always true. +// Warning 6838: (51-77): BMC: Condition is always false. +// Warning 6838: (88-114): BMC: Condition is always true. +// Warning 6838: (125-150): BMC: Condition is always false. +// Warning 6838: (161-188): BMC: Condition is always false. +// Warning 6838: (199-214): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched_function.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched_function.sol index cf4424d5a..548ac4775 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched_function.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bool b; @@ -15,9 +13,11 @@ contract C if (g(true) && b) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (156-179): BMC: Condition is always false. -// Warning 6838: (190-213): BMC: Condition is always true. -// Warning 6838: (224-243): BMC: Condition is always false. -// Warning 6838: (254-277): BMC: Condition is always false. -// Warning 6838: (288-300): BMC: Condition is always true. +// Warning 6838: (123-146): BMC: Condition is always false. +// Warning 6838: (157-180): BMC: Condition is always true. +// Warning 6838: (191-210): BMC: Condition is always false. +// Warning 6838: (221-244): BMC: Condition is always false. +// Warning 6838: (255-267): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or.sol index 1a6cb909a..c8926fbaa 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,4 +12,6 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_fail.sol index 149b1ae21..8b0766e0a 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,5 +12,7 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call +// Warning 6328: (192-202): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_inside_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_inside_branch.sol index 5d3fc7d4a..9bec38227 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_inside_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_inside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -23,5 +21,7 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (360-370): CHC: Assertion violation happens here.\nCounterexample:\nx = 102\na = false\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g(false)\n c.f() -- internal call\n c.f() -- internal call +// Warning 6328: (327-337): CHC: Assertion violation happens here.\nCounterexample:\nx = 102\na = false\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g(false)\n c.f() -- internal call\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both.sol index c4a823dbc..4581a29fa 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,4 +12,6 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both_fail.sol index 7a5c8f2bf..8b623c9aa 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,5 +12,7 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call +// Warning 6328: (192-202): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched.sol index c5d9bb08d..50c6aeabb 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bool b; @@ -11,9 +9,11 @@ contract C if ((b = false) || b) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (84-110): BMC: Condition is always true. -// Warning 6838: (121-147): BMC: Condition is always true. -// Warning 6838: (158-183): BMC: Condition is always true. -// Warning 6838: (194-221): BMC: Condition is always true. -// Warning 6838: (232-248): BMC: Condition is always false. +// Warning 6838: (51-77): BMC: Condition is always true. +// Warning 6838: (88-114): BMC: Condition is always true. +// Warning 6838: (125-150): BMC: Condition is always true. +// Warning 6838: (161-188): BMC: Condition is always true. +// Warning 6838: (199-215): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched_function.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched_function.sol index c97365981..b541b284d 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched_function.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bool b; @@ -15,9 +13,11 @@ contract C if (g(false) || b) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (156-179): BMC: Condition is always true. -// Warning 6838: (190-213): BMC: Condition is always true. -// Warning 6838: (224-243): BMC: Condition is always true. -// Warning 6838: (254-277): BMC: Condition is always true. -// Warning 6838: (288-301): BMC: Condition is always false. +// Warning 6838: (123-146): BMC: Condition is always true. +// Warning 6838: (157-180): BMC: Condition is always true. +// Warning 6838: (191-210): BMC: Condition is always true. +// Warning 6838: (221-244): BMC: Condition is always true. +// Warning 6838: (255-268): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/control_flow/try_catch_1.sol b/test/libsolidity/smtCheckerTests/control_flow/try_catch_1.sol index 9f15677dc..72f52d6d4 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/try_catch_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/try_catch_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public returns (uint) { try this.g() returns (uint x) { x; } @@ -7,5 +6,6 @@ contract C { } // ==== // EVMVersion: >=byzantium +// SMTEngine: all // ---- -// Warning 6321: (75-79): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (43-47): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/control_flow/try_catch_2.sol b/test/libsolidity/smtCheckerTests/control_flow/try_catch_2.sol index b0b9706fd..669a25d11 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/try_catch_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/try_catch_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public { try this.f() {} @@ -8,5 +7,6 @@ contract C { } } // ==== +// SMTEngine: all // EVMVersion: >=byzantium // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_1.sol b/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_1.sol index 1732f1b13..34c155c7e 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Context {} contract ERC20 is Context { @@ -14,3 +12,5 @@ contract __unstable__ERC20Owned is ERC20 { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_2.sol b/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_2.sol index c11521a15..219980be6 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { function f() internal virtual { v(); @@ -19,5 +18,7 @@ contract C is B { f(); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (303-307): BMC: Condition is always false. +// Warning 6838: (271-275): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_1.sol b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_1.sol index ec3dadeb0..5166afabb 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { uint a = 3; @@ -8,5 +7,7 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (159-173): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 4\n\nTransaction trace:\nC.constructor()\nC.f(11) +// Warning 6328: (127-141): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 4\n\nTransaction trace:\nC.constructor()\nC.f(11) diff --git a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_2.sol b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_2.sol index d1ba5b7f2..92be3c3ee 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { uint a = 3; @@ -8,5 +7,7 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (159-173): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 4\n\nTransaction trace:\nC.constructor()\nC.f(11) +// Warning 6328: (127-141): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 4\n\nTransaction trace:\nC.constructor()\nC.f(11) diff --git a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_3.sol b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_3.sol index 660181057..93d926769 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_3.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { uint a = 3; @@ -8,5 +7,7 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (161-175): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 5\n\nTransaction trace:\nC.constructor()\nC.f(11) +// Warning 6328: (129-143): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 5\n\nTransaction trace:\nC.constructor()\nC.f(11) diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol index 86570e811..a49aeac09 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory data) public pure { bytes32 k = keccak256(data); @@ -11,8 +9,9 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (183-197): CHC: Assertion violation happens here. -// Warning 6328: (201-215): CHC: Assertion violation happens here. -// Warning 6328: (219-233): CHC: Assertion violation happens here. +// Warning 6328: (150-164): CHC: Assertion violation happens here. +// Warning 6328: (168-182): CHC: Assertion violation happens here. +// Warning 6328: (186-200): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol index 17e5d297c..76868fa2b 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function k(bytes memory b0, bytes memory b1) public pure { bytes32 k0 = keccak256(b0); @@ -24,12 +22,15 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (589-599): Unused local variable. -// Warning 2072: (631-641): Unused local variable. -// Warning 1218: (168-184): CHC: Error trying to invoke SMT solver. -// Warning 6328: (168-184): CHC: Assertion violation might happen here. -// Warning 6328: (305-321): CHC: Assertion violation happens here. -// Warning 6328: (448-464): CHC: Assertion violation happens here. -// Warning 4661: (168-184): BMC: Assertion violation happens here. +// Warning 2072: (556-566): Unused local variable. +// Warning 2072: (598-608): Unused local variable. +// Warning 1218: (135-151): CHC: Error trying to invoke SMT solver. +// Warning 6328: (135-151): CHC: Assertion violation might happen here. +// Warning 6328: (272-288): CHC: Assertion violation happens here. +// Warning 1218: (415-431): CHC: Error trying to invoke SMT solver. +// Warning 6328: (415-431): CHC: Assertion violation might happen here. +// Warning 4661: (135-151): BMC: Assertion violation happens here. +// Warning 4661: (415-431): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_not_same.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_not_same.sol index edbbce3c4..a8c6199d0 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_not_same.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_not_same.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory data) public pure { bytes32 k = keccak256(data); @@ -11,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (229-243): CHC: Assertion violation happens here. +// Warning 6328: (196-210): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_over_blocks.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_over_blocks.sol index b277d88c9..45ac6319a 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_over_blocks.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_over_blocks.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory data) public pure { bytes32 k = keccak256(data); @@ -10,3 +8,5 @@ contract C { assert(h == k); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output.sol index ea2fd162b..fc03b3242 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes data; bytes32 h; @@ -36,3 +34,5 @@ contract C { assert(_erc == erc); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output_fail.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output_fail.sol index f11fb295d..865ec694b 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output_fail.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes data; bytes32 h; @@ -44,16 +42,18 @@ contract C { assert(_erc == erc); } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (726-745): CHC: Error trying to invoke SMT solver. -// Warning 6328: (726-745): CHC: Assertion violation might happen here. -// Warning 1218: (749-768): CHC: Error trying to invoke SMT solver. -// Warning 6328: (749-768): CHC: Assertion violation might happen here. -// Warning 1218: (772-791): CHC: Error trying to invoke SMT solver. -// Warning 6328: (772-791): CHC: Assertion violation might happen here. -// Warning 1218: (795-814): CHC: Error trying to invoke SMT solver. -// Warning 6328: (795-814): CHC: Assertion violation might happen here. -// Warning 4661: (726-745): BMC: Assertion violation happens here. -// Warning 4661: (749-768): BMC: Assertion violation happens here. -// Warning 4661: (772-791): BMC: Assertion violation happens here. -// Warning 4661: (795-814): BMC: Assertion violation happens here. +// Warning 1218: (693-712): CHC: Error trying to invoke SMT solver. +// Warning 6328: (693-712): CHC: Assertion violation might happen here. +// Warning 1218: (716-735): CHC: Error trying to invoke SMT solver. +// Warning 6328: (716-735): CHC: Assertion violation might happen here. +// Warning 1218: (739-758): CHC: Error trying to invoke SMT solver. +// Warning 6328: (739-758): CHC: Assertion violation might happen here. +// Warning 1218: (762-781): CHC: Error trying to invoke SMT solver. +// Warning 6328: (762-781): CHC: Assertion violation might happen here. +// Warning 4661: (693-712): BMC: Assertion violation happens here. +// Warning 4661: (716-735): BMC: Assertion violation happens here. +// Warning 4661: (739-758): BMC: Assertion violation happens here. +// Warning 4661: (762-781): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_same_output.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_same_output.sol index f9e17f259..3ba3506e5 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_same_output.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_same_output.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function k(bytes memory b0) public pure { bytes memory b1 = b0; @@ -26,3 +24,5 @@ contract C { assert(a0 == a1); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/external_calls/external.sol b/test/libsolidity/smtCheckerTests/external_calls/external.sol index b34eeae96..8dd0f404a 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -16,5 +14,7 @@ contract C { assert(x < 10); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (200-214): CHC: Assertion violation happens here. +// Warning 6328: (167-181): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol index be0a13abc..3464874c8 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract Crypto { function hash(bytes32) external pure virtual returns (bytes32); } @@ -26,6 +24,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (423-445): CHC: Assertion violation happens here. +// Warning 6328: (390-412): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_pure.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_pure.sol index 0f488aa99..e1273a299 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_pure.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_pure.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Crypto { function hash(bytes32) external pure returns (bytes32) { return bytes32(0); @@ -28,6 +26,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (431-453): CHC: Assertion violation happens here. +// Warning 6328: (398-420): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state.sol index 0ca7102cc..ecf7ff5ad 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; function f() public returns (uint) { @@ -34,6 +32,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (528-565): CHC: Assertion violation happens here. +// Warning 6328: (495-532): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy.sol index 62afe07bf..f546bc921 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; C c; @@ -29,6 +27,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (299-313): CHC: Assertion violation happens here. +// Warning 6328: (266-280): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_2.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_2.sol index cab2a0801..d20257692 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_2.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; C c; @@ -38,6 +36,8 @@ contract C { return y; } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (66-121): Function state mutability can be restricted to view -// Warning 6328: (400-414): CHC: Assertion violation happens here.\nCounterexample:\nowner = 0, y = 0, z = 3, s = 0, insidef = true\nprevOwner = 0\n\nTransaction trace:\nC.constructor()\nState: owner = 0, y = 0, z = 0, s = 0, insidef = false\nC.f()\n s.f() -- untrusted external call, synthesized as:\n C.zz() -- reentrant call +// Warning 2018: (33-88): Function state mutability can be restricted to view +// Warning 6328: (367-381): CHC: Assertion violation happens here.\nCounterexample:\nowner = 0, y = 0, z = 3, s = 0, insidef = true\nprevOwner = 0\n\nTransaction trace:\nC.constructor()\nState: owner = 0, y = 0, z = 0, s = 0, insidef = false\nC.f()\n s.f() -- untrusted external call, synthesized as:\n C.zz() -- reentrant call diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_3.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_3.sol index 70e276ce1..54b9efc44 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_3.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; C c; @@ -40,3 +38,5 @@ contract C { return y; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_indirect.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_indirect.sol index f07a45302..4ab3f21e6 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_indirect.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_indirect.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Other { C c; function h() public { @@ -42,7 +40,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (452-466): CHC: Assertion violation happens here. -// Warning 6328: (470-496): CHC: Assertion violation happens here. +// Warning 6328: (419-433): CHC: Assertion violation happens here. +// Warning 6328: (437-463): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_unsafe.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_unsafe.sol index ea70f99c5..d871d6e13 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; C c; @@ -34,7 +32,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (381-395): CHC: Assertion violation happens here. -// Warning 6328: (399-425): CHC: Assertion violation happens here. +// Warning 6328: (348-362): CHC: Assertion violation happens here. +// Warning 6328: (366-392): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_unsafe.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_unsafe.sol index b75510a58..68990bebc 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; function f() public returns (uint) { @@ -38,7 +36,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (435-461): CHC: Assertion violation happens here. -// Warning 6328: (594-631): CHC: Assertion violation happens here. +// Warning 6328: (402-428): CHC: Assertion violation happens here. +// Warning 6328: (561-598): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol b/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol index 2e8592329..3c1777d85 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -18,9 +16,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (146-149): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 4984: (146-149): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6328: (189-203): CHC: Assertion violation happens here. -// Warning 2661: (146-149): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (113-116): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 4984: (113-116): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 6328: (156-170): CHC: Assertion violation happens here. +// Warning 2661: (113-116): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_inc1_inc2.sol b/test/libsolidity/smtCheckerTests/external_calls/external_inc1_inc2.sol index 30c61b2cf..25a93b233 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_inc1_inc2.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_inc1_inc2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -25,5 +23,7 @@ contract C { assert(oldX == x); } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (236-355): Function state mutability can be restricted to view +// Warning 2018: (203-322): Function state mutability can be restricted to view diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_1.sol b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_1.sol index 3023632b6..d92de6f04 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_1.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - interface D { function e() external; } contract C { @@ -15,5 +13,7 @@ contract C { assert(locked); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (239-253): CHC: Assertion violation happens here.\nCounterexample:\nlocked = false\ntarget = 0\n\nTransaction trace:\nC.constructor()\nState: locked = true\nC.call(0)\n D(target).e() -- untrusted external call, synthesized as:\n C.broken() -- reentrant call +// Warning 6328: (206-220): CHC: Assertion violation happens here.\nCounterexample:\nlocked = false\ntarget = 0\n\nTransaction trace:\nC.constructor()\nState: locked = true\nC.call(0)\n D(target).e() -- untrusted external call, synthesized as:\n C.broken() -- reentrant call diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_2.sol b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_2.sol index a67f15ce0..92c53a5e8 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_2.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - interface D { function e() external; } contract C { @@ -12,5 +10,7 @@ contract C { locked = true; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\nlocked = false\ntarget = 0\n\nTransaction trace:\nC.constructor()\nState: locked = true\nC.call(0)\n D(target).e() -- untrusted external call, synthesized as:\n C.call(0) -- reentrant call +// Warning 6328: (117-131): CHC: Assertion violation happens here.\nCounterexample:\nlocked = false\ntarget = 0\n\nTransaction trace:\nC.constructor()\nState: locked = true\nC.call(0)\n D(target).e() -- untrusted external call, synthesized as:\n C.call(0) -- reentrant call diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_3.sol b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_3.sol index dd570f854..bfb88988f 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_3.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() virtual public {} } @@ -26,6 +24,8 @@ contract C is A { assert(x == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (187-201): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() -// Warning 6328: (385-399): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nd = 0\n\nTransaction trace:\nC.constructor()\nState: x = 1\nC.call(0)\n d.d() -- untrusted external call, synthesized as:\n C.f() -- reentrant call +// Warning 6328: (154-168): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() +// Warning 6328: (352-366): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nd = 0\n\nTransaction trace:\nC.constructor()\nState: x = 1\nC.call(0)\n d.d() -- untrusted external call, synthesized as:\n C.f() -- reentrant call diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_crypto.sol b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_crypto.sol index 71c31b02b..7c9ba2d5c 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_crypto.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_crypto.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() virtual public; } @@ -25,9 +23,11 @@ contract C { d.d(); } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (335-366): CHC: Error trying to invoke SMT solver. -// Warning 6328: (335-366): CHC: Assertion violation might happen here. -// Warning 1218: (335-366): CHC: Error trying to invoke SMT solver. -// Warning 6328: (335-366): CHC: Assertion violation might happen here. -// Warning 4661: (335-366): BMC: Assertion violation happens here. +// Warning 1218: (302-333): CHC: Error trying to invoke SMT solver. +// Warning 6328: (302-333): CHC: Assertion violation might happen here. +// Warning 1218: (302-333): CHC: Error trying to invoke SMT solver. +// Warning 6328: (302-333): CHC: Assertion violation might happen here. +// Warning 4661: (302-333): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_safe.sol b/test/libsolidity/smtCheckerTests/external_calls/external_safe.sol index c424b75de..a2b0f1363 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_safe.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -16,4 +14,6 @@ contract C { assert(x < 11); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_single_inc.sol b/test/libsolidity/smtCheckerTests/external_calls/external_single_inc.sol index e4473c567..0b944acb2 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_single_inc.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_single_inc.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -22,5 +20,7 @@ contract C { assert(oldX == x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (256-273): CHC: Assertion violation happens here. +// Warning 6328: (223-240): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/mutex.sol b/test/libsolidity/smtCheckerTests/external_calls/mutex.sol index 1173da3f8..bf95027bb 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/mutex.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/mutex.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -26,3 +24,5 @@ contract C { assert(y == x); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/external_calls/mutex_f_no_guard.sol b/test/libsolidity/smtCheckerTests/external_calls/mutex_f_no_guard.sol index 0aef6b3c9..f3b99f540 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/mutex_f_no_guard.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/mutex_f_no_guard.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -27,6 +25,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (307-321): CHC: Assertion violation happens here. +// Warning 6328: (274-288): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol b/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol index afb79abaa..243d112da 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; uint constant A = 42; contract C { function f(uint x) public pure returns (uint) { return x + A; } } +// ==== +// SMTEngine: all // ---- -// Warning 8195: (32-52): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (32-52): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (0-20): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (0-20): Model checker analysis was not possible because file level constants are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol b/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol index 8a628541b..9f60fb374 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; uint256 constant x = 56; enum ActionChoices {GoLeft, GoRight, GoStraight, Sit} ActionChoices constant choices = ActionChoices.GoRight; @@ -8,11 +7,13 @@ contract C { return (x, choices, st); } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (220-310): Function state mutability can be restricted to pure -// Warning 8195: (32-55): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (111-165): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (167-204): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (32-55): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (111-165): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (167-204): Model checker analysis was not possible because file level constants are not supported. +// Warning 2018: (188-278): Function state mutability can be restricted to pure +// Warning 8195: (0-23): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (79-133): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (135-172): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (0-23): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (79-133): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (135-172): Model checker analysis was not possible because file level constants are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol index 0295f070a..ab214484b 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint[] data; function f(uint x, uint[] calldata input) public view returns (uint, uint) { @@ -9,6 +8,8 @@ contract C { function fun(uint[] calldata _x, uint[] storage _y) view returns (uint, uint[] calldata) { return (_y[0], _x); } +// ==== +// SMTEngine: all // ---- -// Warning 6660: (220-334): Model checker analysis was not possible because file level functions are not supported. -// Warning 6660: (220-334): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (188-302): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (188-302): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol index e480f1219..b07c32fc6 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; contract C { function g() external { f(); } } function f() {} +// ==== +// SMTEngine: all // ---- -// Warning 6660: (82-97): Model checker analysis was not possible because file level functions are not supported. -// Warning 6660: (82-97): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (50-65): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (50-65): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol index 6b04e3550..7fd7d8419 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol @@ -1,5 +1,6 @@ -pragma experimental SMTChecker; function f() view {} +// ==== +// SMTEngine: all // ---- -// Warning 6660: (32-52): Model checker analysis was not possible because file level functions are not supported. -// Warning 6660: (32-52): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (0-20): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (0-20): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol index c2f284fda..0033da96d 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; function f()pure { ufixed a = uint64(1) + ufixed(2); } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (52-60): Unused local variable. -// Warning 6660: (32-87): Model checker analysis was not possible because file level functions are not supported. -// Warning 6660: (32-87): Model checker analysis was not possible because file level functions are not supported. +// Warning 2072: (20-28): Unused local variable. +// Warning 6660: (0-55): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (0-55): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol index 28e10360f..093167676 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract K {} function f() pure { (abi.encode, ""); } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (67-83): Statement has no effect. -// Warning 6660: (46-86): Model checker analysis was not possible because file level functions are not supported. -// Warning 6660: (46-86): Model checker analysis was not possible because file level functions are not supported. +// Warning 6133: (35-51): Statement has no effect. +// Warning 6660: (14-54): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (14-54): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_and_constant_1.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_and_constant_1.sol index c19514c22..db4d38008 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_and_constant_1.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_and_constant_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; uint constant A = 42; contract C { uint[] data; @@ -10,8 +9,10 @@ contract C { function fun(uint[] calldata _x, uint[] storage _y) view returns (uint, uint[] calldata) { return (_y[0], _x); } +// ==== +// SMTEngine: all // ---- -// Warning 8195: (32-52): Model checker analysis was not possible because file level constants are not supported. -// Warning 6660: (246-360): Model checker analysis was not possible because file level functions are not supported. -// Warning 8195: (32-52): Model checker analysis was not possible because file level constants are not supported. -// Warning 6660: (246-360): Model checker analysis was not possible because file level functions are not supported. +// Warning 8195: (0-20): Model checker analysis was not possible because file level constants are not supported. +// Warning 6660: (214-328): Model checker analysis was not possible because file level functions are not supported. +// Warning 8195: (0-20): Model checker analysis was not possible because file level constants are not supported. +// Warning 6660: (214-328): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/function_selector/function_selector_via_contract_name.sol b/test/libsolidity/smtCheckerTests/function_selector/function_selector_via_contract_name.sol index a1690519d..e76403441 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/function_selector_via_contract_name.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/function_selector_via_contract_name.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { function f() external {} function g(uint256) external {} @@ -18,3 +16,4 @@ contract C { } } // ==== +// SMTEngine: all diff --git a/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol b/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol index 3eb56bf72..41bd77361 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256 public x; @@ -23,9 +21,11 @@ contract C { assert(i() == 0x26121ff0); } } +// ==== +// SMTEngine: all // ---- -// Warning 7650: (284-296): Assertion checker does not yet support this expression. -// Warning 6328: (470-495): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.f() -- internal call\n C.g() -- internal call -// Warning 6328: (540-565): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.f() -- internal call\n C.g() -- internal call\n C.i() -- internal call\n C.i() -- internal call -// Warning 7650: (284-296): Assertion checker does not yet support this expression. -// Warning 7650: (284-296): Assertion checker does not yet support this expression. +// Warning 7650: (251-263): Assertion checker does not yet support this expression. +// Warning 6328: (437-462): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.f() -- internal call\n C.g() -- internal call +// Warning 6328: (507-532): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.f() -- internal call\n C.g() -- internal call\n C.i() -- internal call\n C.i() -- internal call +// Warning 7650: (251-263): Assertion checker does not yet support this expression. +// Warning 7650: (251-263): Assertion checker does not yet support this expression. diff --git a/test/libsolidity/smtCheckerTests/function_selector/homer.sol b/test/libsolidity/smtCheckerTests/function_selector/homer.sol index 1ad2ebd53..4fec30995 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/homer.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/homer.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - interface ERC165 { /// @notice Query if a contract implements an interface /// @param interfaceID The interface identifier, as specified in ERC-165 @@ -42,5 +40,7 @@ contract Homer is ERC165, Simpson { } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (1373-1428): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nHomer.constructor()\nHomer.check()\n Homer.supportsInterface(1941353618) -- internal call\n Homer.supportsInterface(33540519) -- internal call\n Homer.supportsInterface(2342435274) -- internal call +// Warning 6328: (1340-1395): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nHomer.constructor()\nHomer.check()\n Homer.supportsInterface(1941353618) -- internal call\n Homer.supportsInterface(33540519) -- internal call\n Homer.supportsInterface(2342435274) -- internal call diff --git a/test/libsolidity/smtCheckerTests/function_selector/selector.sol b/test/libsolidity/smtCheckerTests/function_selector/selector.sol index b1339ed54..fdcd3f85e 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/selector.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/selector.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(msg.sig == this.f.selector); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol b/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol index 7d87cdd3b..7cabb7ade 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() external pure { } @@ -8,5 +6,7 @@ contract C { assert(msg.sig == this.g.selector); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (125-159): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (92-126): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol b/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol index 204b4b48f..7d2da3c57 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { int public x; @@ -10,5 +8,7 @@ contract C { assert(this.x.selector == this.y.selector); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (175-217): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() +// Warning 6328: (142-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/abi_encode_functions.sol b/test/libsolidity/smtCheckerTests/functions/abi_encode_functions.sol index 1f4eb6d6f..903b330d8 100644 --- a/test/libsolidity/smtCheckerTests/functions/abi_encode_functions.sol +++ b/test/libsolidity/smtCheckerTests/functions/abi_encode_functions.sol @@ -1,7 +1,9 @@ -pragma experimental SMTChecker;pragma abicoder v2; +pragma abicoder v2; contract C { function f() public pure returns (bytes memory, bytes memory) { return (abi.encode(""), abi.encodePacked( "7?8r")); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_base_basic.sol b/test/libsolidity/smtCheckerTests/functions/constructor_base_basic.sol index 155290dcc..3f858a6c3 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_base_basic.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_base_basic.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; constructor() { @@ -12,4 +10,6 @@ contract B is A { x = 3; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol index 7c07804aa..5e1917761 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -12,5 +11,7 @@ contract A is C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (152-166): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() +// Warning 6328: (120-134): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol index f1726e20d..c10ec05bf 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { a = x; } } contract A is C { constructor() C(2) { assert(a == 2); } } contract B is C { constructor() C(3) { assert(a == 3); } } contract J is C { constructor() C(3) { assert(a == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (243-257): CHC: Assertion violation happens here.\nCounterexample:\na = 3\n\nTransaction trace:\nJ.constructor() +// Warning 6328: (211-225): CHC: Assertion violation happens here.\nCounterexample:\na = 3\n\nTransaction trace:\nJ.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol index 904667c52..067ac0218 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -19,7 +18,8 @@ contract A is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (232-250): CHC: Assertion violation happens here. -// Warning 4984: (203-208): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (200-218): CHC: Assertion violation happens here. +// Warning 4984: (171-176): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol index 5202353c5..165740218 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -17,6 +16,8 @@ contract A is B { assert(a == x + 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (207-212): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nA.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) -// Warning 4984: (198-203): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639934\n\nTransaction trace:\nA.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639934) +// Warning 4984: (175-180): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nA.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) +// Warning 4984: (166-171): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639934\n\nTransaction trace:\nA.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639934) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol index 32994a6f0..55b17509e 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -25,7 +24,8 @@ contract A is B2, B1 { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (200-205): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (302-320): CHC: Assertion violation happens here. +// Warning 4984: (168-173): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (270-288): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_2.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_2.sol index 76c83faa7..878612d04 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -25,7 +24,8 @@ contract A is B2, B1 { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (200-205): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (302-320): CHC: Assertion violation happens here. +// Warning 4984: (168-173): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (270-288): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol index 6a9999272..98da0a2a6 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -27,8 +26,9 @@ contract A is B2, B1 { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (241-246): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (225-230): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (334-350): CHC: Assertion violation happens here. +// Warning 4984: (209-214): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (193-198): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (302-318): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle.sol index be87705e1..ef24859ee 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor() { @@ -18,6 +17,8 @@ contract A is B, B2 { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (164-170): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (132-138): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (162-176): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle_empty_base.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle_empty_base.sol index 2a196b23f..5c55b262d 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle_empty_base.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle_empty_base.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor() { @@ -17,3 +16,5 @@ contract B2 is C { contract A is B, B2 { } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol index 43c5fbb20..cd5308ded 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor() { @@ -17,6 +16,8 @@ contract A is B { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (194-200): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (224-238): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (162-168): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (192-206): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol index 3a2b97b80..00a74d505 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor() { @@ -15,6 +14,8 @@ contract A is B { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (138-144): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (172-186): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (106-112): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (140-154): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle_no_invocation.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle_no_invocation.sol index f415631c9..f2f6297b2 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle_no_invocation.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle_no_invocation.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor() { @@ -14,6 +13,8 @@ contract A is B { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (138-144): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (106-112): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (118-132): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol index 025599239..c2b6c1a27 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor() { @@ -25,6 +24,8 @@ contract A is B { assert(a == 5); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (254-260): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (284-298): CHC: Assertion violation happens here.\nCounterexample:\na = 4\nx = 0\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (222-228): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (252-266): CHC: Assertion violation happens here.\nCounterexample:\na = 4\nx = 0\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_empty_base.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_empty_base.sol index 534c0eecb..da98452fe 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_empty_base.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_empty_base.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor() { @@ -22,3 +21,5 @@ contract B is C { contract A is B { } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_local_vars.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_local_vars.sol index 8365757b7..50a91a7e0 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_local_vars.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_local_vars.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor() { @@ -30,6 +29,8 @@ contract A is B { assert(a == a2); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (296-302): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (357-372): CHC: Assertion violation happens here.\nCounterexample:\na = 4\nx = 0\na1 = 4\na2 = 5\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (264-270): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (325-340): CHC: Assertion violation happens here.\nCounterexample:\na = 4\nx = 0\na1 = 4\na2 = 5\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params.sol index 61a77682a..15cc66a0d 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor(uint x) { @@ -25,7 +24,8 @@ contract A is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (247-252): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (328-342): CHC: Assertion violation happens here. +// Warning 4984: (215-220): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (296-310): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params_2.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params_2.sol index 6efddb691..933762ac8 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor(uint x) { @@ -22,5 +21,7 @@ contract B is C { contract A is B { } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (266-280): CHC: Assertion violation happens here.\nCounterexample:\na = 3\n\nTransaction trace:\nB.constructor() +// Warning 6328: (234-248): CHC: Assertion violation happens here.\nCounterexample:\na = 3\n\nTransaction trace:\nB.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol index 3104fda1f..951d006ec 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; modifier n { _; a = 7; } @@ -13,5 +12,7 @@ contract A is C { assert(a == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (188-202): CHC: Assertion violation happens here.\nCounterexample:\na = 7\n\nTransaction trace:\nA.constructor() +// Warning 6328: (156-170): CHC: Assertion violation happens here.\nCounterexample:\na = 7\n\nTransaction trace:\nA.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol index bc265e120..051b89252 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -12,6 +11,8 @@ contract A is C { assert(C.a == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (134-148): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() -// Warning 6328: (152-168): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() +// Warning 6328: (102-116): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() +// Warning 6328: (120-136): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol b/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol index 0870ba496..2db9622ea 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -13,6 +11,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (141-155): CHC: Assertion violation happens here. +// Warning 6328: (108-122): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_state_value.sol b/test/libsolidity/smtCheckerTests/functions/constructor_state_value.sol index 3849d4ba2..5add9bf68 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_state_value.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_state_value.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = 5; @@ -12,5 +10,7 @@ contract C { assert(y == x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (145-159): CHC: Assertion violation happens here.\nCounterexample:\nx = 10\ny = 11\n\nTransaction trace:\nC.constructor()\nState: x = 10\nC.f(11) +// Warning 6328: (112-126): CHC: Assertion violation happens here.\nCounterexample:\nx = 10\ny = 11\n\nTransaction trace:\nC.constructor()\nState: x = 10\nC.f(11) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol index 905685b06..165dc6ae6 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract B { uint x = 5; } @@ -15,6 +13,7 @@ contract C is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (165-179): CHC: Assertion violation happens here. +// Warning 6328: (132-146): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol index fe831f5de..414809209 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = 5; @@ -13,7 +11,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (162-176): CHC: Assertion violation happens here. -// Warning 4984: (115-120): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (129-143): CHC: Assertion violation happens here. +// Warning 4984: (82-87): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_this.sol b/test/libsolidity/smtCheckerTests/functions/constructor_this.sol index a72dc095b..28a343b0d 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_this.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_this.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure {} constructor() { @@ -8,6 +7,8 @@ contract C { (this).f(); } } +// ==== +// SMTEngine: all // ---- -// Warning 5805: (197-201): "this" used in constructor. Note that external functions of a contract cannot be called while it is being constructed. -// Warning 5805: (216-220): "this" used in constructor. Note that external functions of a contract cannot be called while it is being constructed. +// Warning 5805: (165-169): "this" used in constructor. Note that external functions of a contract cannot be called while it is being constructed. +// Warning 5805: (184-188): "this" used in constructor. Note that external functions of a contract cannot be called while it is being constructed. diff --git a/test/libsolidity/smtCheckerTests/functions/function_call_does_not_clear_local_vars.sol b/test/libsolidity/smtCheckerTests/functions/function_call_does_not_clear_local_vars.sol index 1f002796f..8d21f58fa 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_call_does_not_clear_local_vars.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_call_does_not_clear_local_vars.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public { uint a = 3; @@ -8,4 +7,6 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/function_call_state_var_init.sol b/test/libsolidity/smtCheckerTests/functions/function_call_state_var_init.sol index f2527d1b0..6ca122aef 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_call_state_var_init.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_call_state_var_init.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = f(2); @@ -8,5 +6,7 @@ contract C { return y; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (116-132): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() +// Warning 6328: (83-99): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_1.sol b/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_1.sol index 2bacad7e2..4bb98c7a3 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract State { C c; function f() public returns (uint) { @@ -12,5 +11,7 @@ contract C { owner = address(0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (85-89): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (53-57): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_2.sol b/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_2.sol index 897367d48..937f9b2a6 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract Other { C c; function h(bool b) public { @@ -12,4 +11,6 @@ contract C { owner = _owner; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/function_inline_chain.sol b/test/libsolidity/smtCheckerTests/functions/function_inline_chain.sol index dd3924e29..252ac146e 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_inline_chain.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_inline_chain.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint y; @@ -20,4 +18,6 @@ contract C assert(y == 1); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var.sol b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var.sol index 915259b3d..55d908467 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -15,5 +13,7 @@ contract C assert(x == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)\n C.f() -- internal call +// Warning 6328: (176-190): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_2.sol b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_2.sol index 63e4c6d06..295cc0c21 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -16,3 +14,5 @@ contract C assert(x == 1); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_3.sol b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_3.sol index d1ada0fd0..7b7118b93 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -23,6 +21,8 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)\n C.f() -- internal call -// Warning 6328: (321-335): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(false)\n C.f() -- internal call +// Warning 6328: (176-190): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)\n C.f() -- internal call +// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(false)\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_bound_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_bound_1.sol index 5e9722de7..c76e7d85d 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_bound_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_bound_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { function add(uint x, uint y) internal pure returns (uint) { @@ -17,3 +15,5 @@ contract C assert(y < 10000); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol index 474b04f00..8b6bb58f0 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { function add(uint x, uint y) internal pure returns (uint) { @@ -17,5 +15,7 @@ contract C assert(y < 1000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (261-277): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 1000\n\nTransaction trace:\nC.constructor()\nC.f(1)\n L.add(1, 999) -- internal call +// Warning 6328: (228-244): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 1000\n\nTransaction trace:\nC.constructor()\nC.f(1)\n L.add(1, 999) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol index beb95617f..6887c00db 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function g(uint x) public virtual; @@ -16,4 +14,6 @@ contract C assert(x == y); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_external_2.sol b/test/libsolidity/smtCheckerTests/functions/functions_external_2.sol index 22d8e93d6..bc2fa2dc3 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_external_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_external_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function g(uint x) public virtual; @@ -22,6 +20,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (267-286): CHC: Assertion violation happens here. +// Warning 6328: (234-253): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_external_3.sol b/test/libsolidity/smtCheckerTests/functions/functions_external_3.sol index 589d17165..93273800e 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_external_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_external_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function g(uint x) public virtual; @@ -17,4 +15,6 @@ contract C assert(map[0] == map[1]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol b/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol index 3f998b6f1..f5fd59c2f 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint _x) public pure returns (uint) { @@ -16,6 +14,7 @@ contract D } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (191-206): CHC: Assertion violation happens here. +// Warning 6328: (158-173): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_1.sol index a329120cc..ac7fd8845 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; function f() public { @@ -13,3 +11,5 @@ contract C { return ++x; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_2.sol b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_2.sol index 5ea45e963..898dcecee 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { struct S { uint256[] data; @@ -18,4 +16,6 @@ contract C { assert(y == 42); // should hold } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_3.sol b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_3.sol index 3ebf8804d..20f0ddcfe 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[]data; @@ -6,5 +5,7 @@ contract C { (data.pop)(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (95-107): CHC: Empty array "pop" happens here.\nCounterexample:\ndata = []\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.f() +// Warning 2529: (63-75): CHC: Empty array "pop" happens here.\nCounterexample:\ndata = []\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_1.sol index 25a42db60..c223a6007 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -11,3 +10,5 @@ contract C } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol index a3ee609e6..c77359fd4 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -11,5 +10,7 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (161-174): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call +// Warning 6328: (129-142): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_2.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_2.sol index aff24b032..71e6abcd0 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -15,3 +14,5 @@ contract C } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol index 248ef85eb..33f37ffcc 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -15,5 +14,7 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (229-242): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call\n C.k(0) -- internal call +// Warning 6328: (197-210): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call\n C.k(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple.sol index 3793f4116..c139a2a66 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -11,4 +10,6 @@ contract C } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple_fail.sol index 6e20f8be9..9da6fd551 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -11,5 +10,7 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (163-176): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call +// Warning 6328: (131-144): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_library_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_library_1.sol index ff33b2877..b35ec1d71 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_library_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_library_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { function add(uint x, uint y) internal pure returns (uint) { @@ -16,4 +14,6 @@ contract C assert(y < 10000); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol index 4efa80ca3..f69d47baf 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { function add(uint x, uint y) internal pure returns (uint) { @@ -16,5 +14,7 @@ contract C assert(y < 1000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (245-261): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 1000\n\nTransaction trace:\nC.constructor()\nC.f(1)\n L.add(1, 999) -- internal call +// Warning 6328: (212-228): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 1000\n\nTransaction trace:\nC.constructor()\nC.f(1)\n L.add(1, 999) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_recursive.sol b/test/libsolidity/smtCheckerTests/functions/functions_recursive.sol index ee24f0ae5..e6cb394b5 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_recursive.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_recursive.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -13,4 +12,6 @@ contract C } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_recursive_indirect.sol b/test/libsolidity/smtCheckerTests/functions/functions_recursive_indirect.sol index 7cb7b22b1..8b4218b45 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_recursive_indirect.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_recursive_indirect.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -21,4 +20,6 @@ contract C assert(a == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1.sol index 2f7563ddd..7f166c93d 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -12,3 +11,5 @@ contract C } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1_fail.sol index 5d46fef23..a7f0c879f 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -12,5 +11,7 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (144-157): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()\n C.f(0) -- internal call +// Warning 6328: (112-125): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()\n C.f(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2.sol b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2.sol index 2f95d8af5..b57fee8ad 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -13,3 +12,5 @@ contract C } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2_fail.sol index 84acebabb..29fd5aefb 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -13,5 +12,7 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (152-165): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()\n C.f(1) -- internal call\n C.f(0) -- internal call +// Warning 6328: (120-133): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()\n C.f(1) -- internal call\n C.f(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for.sol index 23b6cf8b4..681d42aef 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { require(x); for (;x;) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (98-99): BMC: Condition is always true. +// Warning 6838: (65-66): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for_only_call.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for_only_call.sol index ed1ad73a3..549d500a8 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for_only_call.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for_only_call.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { for (;x;) {} } function g() public pure { f(true); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_if.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_if.sol index ea2093fa4..da5240aad 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_if.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_if.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { require(x); if (x) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (95-96): BMC: Condition is always true. +// Warning 6838: (63-64): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require.sol index 460b7da79..84fd5c62b 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { x = true; require(x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (98-99): BMC: Condition is always true. +// Warning 6838: (65-66): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require_only_call.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require_only_call.sol index 5cae940b5..83967cf1b 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require_only_call.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require_only_call.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { require(x); } function g() public pure { f(true); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while.sol index 3899d35d7..91bfd981c 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { require(x); while (x) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (99-100): BMC: Condition is always true. +// Warning 6838: (66-67): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while_only_call.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while_only_call.sol index 5000eeb6b..0c5f7c094 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while_only_call.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while_only_call.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { while (x) {} } function g() public pure { f(true); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/getters/address.sol b/test/libsolidity/smtCheckerTests/functions/getters/address.sol index c65e49943..ff4032a65 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/address.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/address.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address public x; address payable public y; @@ -13,6 +11,8 @@ contract C { assert(y == address(this)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (204-230): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() -// Warning 6328: (282-308): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() +// Warning 6328: (171-197): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() +// Warning 6328: (249-275): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol index 552640367..b3f6cad02 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] public a; constructor() { @@ -14,5 +12,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (220-234): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0, 0, 0]\ny = 0\n\nTransaction trace:\nC.constructor()\nState: a = [0, 0, 0, 0]\nC.f() +// Warning 6328: (187-201): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0, 0, 0]\ny = 0\n\nTransaction trace:\nC.constructor()\nState: a = [0, 0, 0, 0]\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol index 070acb2cc..d4e1dc147 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] public a; constructor() { @@ -18,6 +16,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (275-289): CHC: Assertion violation happens here. +// Warning 6328: (242-256): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol index 688cf0783..17cee5ce6 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol @@ -1,6 +1,4 @@ pragma abicoder v1; -pragma experimental SMTChecker; - struct Item { uint x; uint y; @@ -14,3 +12,5 @@ contract D { return a + b; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol index b17afda3a..6c7b0a1b3 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol @@ -1,6 +1,4 @@ pragma abicoder v1; -pragma experimental SMTChecker; - struct Item { uint x; uint y; @@ -18,5 +16,7 @@ contract D { assert(b == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (300-314): CHC: Assertion violation happens here.\nCounterexample:\nitems = [{x: 42, y: 43}]\na = 42\nb = 43\n\nTransaction trace:\nD.constructor()\nState: items = []\nD.test() +// Warning 6328: (267-281): CHC: Assertion violation happens here.\nCounterexample:\nitems = [{x: 42, y: 43}]\na = 42\nb = 43\n\nTransaction trace:\nD.constructor()\nState: items = []\nD.test() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol index f2be2c4a6..d089d2eda 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol @@ -1,6 +1,4 @@ pragma abicoder v1; -pragma experimental SMTChecker; - struct Item { uint x; uint y; @@ -20,5 +18,7 @@ contract D { assert(b == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (355-369): CHC: Assertion violation happens here.\nCounterexample:\nitems = [{x: 42, y: 43, arr: [0]}]\ntmp = [0]\na = 42\nb = 43\n\nTransaction trace:\nD.constructor()\nState: items = []\nD.test() +// Warning 6328: (322-336): CHC: Assertion violation happens here.\nCounterexample:\nitems = [{x: 42, y: 43, arr: [0]}]\ntmp = [0]\na = 42\nb = 43\n\nTransaction trace:\nD.constructor()\nState: items = []\nD.test() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/bytes.sol b/test/libsolidity/smtCheckerTests/functions/getters/bytes.sol index 3ffca6223..01dec8bc1 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/bytes.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes public str2 = 'c'; @@ -9,7 +7,9 @@ contract C { assert(keccak256(a2) == keccak256('a')); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (195-234): CHC: Error trying to invoke SMT solver. -// Warning 6328: (195-234): CHC: Assertion violation might happen here. -// Warning 4661: (195-234): BMC: Assertion violation happens here. +// Warning 1218: (162-201): CHC: Error trying to invoke SMT solver. +// Warning 6328: (162-201): CHC: Assertion violation might happen here. +// Warning 4661: (162-201): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/contract.sol b/test/libsolidity/smtCheckerTests/functions/getters/contract.sol index d050dfb1c..a9d6982ef 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/contract.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/contract.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract D {} contract C { @@ -11,5 +9,7 @@ contract C { assert(address(e) == address(this)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (156-191): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f() +// Warning 6328: (123-158): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol b/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol index 4e7963cb5..e90cc2cfd 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint u; @@ -15,5 +13,7 @@ contract C { assert(u == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (226-240): CHC: Assertion violation happens here.\nCounterexample:\ns = {u: 0}\nu = 0\nv = 0\n\nTransaction trace:\nC.constructor()\nState: s = {u: 0}\nC.f() +// Warning 6328: (193-207): CHC: Assertion violation happens here.\nCounterexample:\ns = {u: 0}\nu = 0\nv = 0\n\nTransaction trace:\nC.constructor()\nState: s = {u: 0}\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/enum.sol b/test/libsolidity/smtCheckerTests/functions/getters/enum.sol index ab9896862..66df04474 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/enum.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/enum.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum ActionChoices { GoLeft, GoRight, GoStraight, SitStill } @@ -11,5 +9,7 @@ contract C { assert(e == ActionChoices.SitStill); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (243-278): CHC: Assertion violation happens here.\nCounterexample:\nchoice = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: choice = 0\nC.f() +// Warning 6328: (210-245): CHC: Assertion violation happens here.\nCounterexample:\nchoice = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: choice = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol b/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol index df4c866d4..fa56e15c8 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes1 public x; bytes3 public y; @@ -13,6 +11,8 @@ contract C { assert(y == "abc"); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (192-208): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() -// Warning 6328: (260-278): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() +// Warning 6328: (159-175): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() +// Warning 6328: (227-245): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/function.sol b/test/libsolidity/smtCheckerTests/functions/getters/function.sol index d6253ab69..44120b189 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/function.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function () external returns (uint) public g; @@ -14,6 +12,8 @@ contract C { return 42; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (185-203): CHC: Assertion violation happens here.\nCounterexample:\ng = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: g = 0\nC.f() -// Warning 6328: (295-311): CHC: Assertion violation happens here.\nCounterexample:\ng = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: g = 0\nC.f() +// Warning 6328: (152-170): CHC: Assertion violation happens here.\nCounterexample:\ng = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: g = 0\nC.f() +// Warning 6328: (262-278): CHC: Assertion violation happens here.\nCounterexample:\ng = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: g = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_1.sol index 08fa25348..44aac8a3b 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { string a; @@ -10,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // EVMVersion: <=spuriousDragon // ---- -// Warning 6321: (133-140): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (101-108): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_2.sol index e40107c2d..81a2fc6b4 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_2.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; contract C { function f() public returns(bool[]memory) { this.f(); } } // ==== +// SMTEngine: all // EVMVersion: <=spuriousDragon // ---- -// Warning 6321: (74-86): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (42-54): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_3.sol b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_3.sol index e6afaf3c1..ca790a614 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { string a; @@ -9,6 +8,7 @@ contract C { } } // ==== +// SMTEngine: all // EVMVersion: <=spuriousDragon // ---- -// Warning 6321: (120-127): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (88-95): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_4.sol b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_4.sol index 03d553798..3e5ba016e 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { string public s; function g() public view returns (uint256) { @@ -6,6 +5,7 @@ contract C { } } // ==== +// SMTEngine: all // EVMVersion: <=spuriousDragon // ---- -// Warning 6321: (98-105): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (66-73): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol index 1d372d2cf..6e133feda 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) public map; @@ -9,5 +7,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (175-189): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (142-156): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol index 95b82181a..814a0a2ad 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint)) public map; @@ -9,5 +7,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (199-213): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (166-180): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol b/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol index 11d6ee611..a64a52c34 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (bytes16 => uint) public m; @@ -9,5 +7,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (180-194): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_1.sol index a28db46af..b90bc412a 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[]) public m; @@ -15,5 +13,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (243-257): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (210-224): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_10.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_10.sol index ea6b2e16d..7fa0381b6 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_10.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_10.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[])[] public m; @@ -18,6 +16,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (289-303): CHC: Assertion violation happens here. +// Warning 6328: (256-270): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_2.sol index 5a05e9cee..f1afc6e80 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[][]) public m; @@ -19,6 +17,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (307-321): CHC: Assertion violation happens here. +// Warning 6328: (274-288): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_3.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_3.sol index 404c1ee9b..97cc03919 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[][][]) public m; @@ -23,4 +21,6 @@ contract C { //assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_4.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_4.sol index 0cec4785a..4aca89ef7 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint[])) public m; @@ -17,6 +15,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (293-307): CHC: Assertion violation happens here. +// Warning 6328: (260-274): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_5.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_5.sol index 5ff431452..ce22da600 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_5.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint[][])) public m; @@ -21,6 +19,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (387-401): CHC: Assertion violation happens here. +// Warning 6328: (354-368): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_6.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_6.sol index 336fad8d5..3ad4d94ae 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_6.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => mapping (uint => uint[]))) public m; @@ -18,4 +16,6 @@ contract C { //assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_7.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_7.sol index 4ca1894d1..5c5af070e 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_7.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint)[] public m; @@ -14,5 +12,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (225-239): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (192-206): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_8.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_8.sol index 7185956b0..1a0f9a799 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_8.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint)[][] public m; @@ -16,5 +14,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (265-279): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (232-246): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_9.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_9.sol index 8002639e0..8df8edad4 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_9.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_9.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint))[] public m; @@ -14,5 +12,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (251-265): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (218-232): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol b/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol index 596b7e350..d77ab04e3 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { @@ -11,5 +9,7 @@ contract C { assert(this.x(0) == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (195-217): CHC: Assertion violation happens here.\nCounterexample:\nx = [42, 1]\n\nTransaction trace:\nC.constructor()\nState: x = [42, 1]\nC.f() +// Warning 6328: (162-184): CHC: Assertion violation happens here.\nCounterexample:\nx = [42, 1]\n\nTransaction trace:\nC.constructor()\nState: x = [42, 1]\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/string.sol b/test/libsolidity/smtCheckerTests/functions/getters/string.sol index 42b0f1db4..2f2319a16 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/string.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/string.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { string public str1 = 'b'; @@ -9,7 +7,9 @@ contract C { assert(keccak256(bytes(a1)) == keccak256('a')); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (211-257): CHC: Error trying to invoke SMT solver. -// Warning 6328: (211-257): CHC: Assertion violation might happen here. -// Warning 4661: (211-257): BMC: Assertion violation happens here. +// Warning 1218: (178-224): CHC: Error trying to invoke SMT solver. +// Warning 6328: (178-224): CHC: Assertion violation might happen here. +// Warning 4661: (178-224): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol index 910870cf0..73e6f3316 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -25,5 +24,7 @@ contract C { assert(c == true); // this should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (370-387): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0, t: {t: 0}, b: false, a: []}\ny = 0\nc = false\nt = {t: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0, t: {t: 0}, b: false, a: []}\nC.f() +// Warning 6328: (338-355): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0, t: {t: 0}, b: false, a: []}\ny = 0\nc = false\nt = {t: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0, t: {t: 0}, b: false, a: []}\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol index 239aa206f..4fa8b0e3f 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; //pragma abicoder v2; contract C { @@ -15,5 +14,7 @@ contract C { assert(u == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (207-221): CHC: Assertion violation happens here.\nCounterexample:\ns = {a: [0, 0], u: 0}\nu = 0\n\nTransaction trace:\nC.constructor()\nState: s = {a: [0, 0], u: 0}\nC.f() +// Warning 6328: (175-189): CHC: Assertion violation happens here.\nCounterexample:\ns = {a: [0, 0], u: 0}\nu = 0\n\nTransaction trace:\nC.constructor()\nState: s = {a: [0, 0], u: 0}\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_3.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_3.sol index d2f78d333..ddeaa655b 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { string s; @@ -20,5 +18,7 @@ contract C { assert(b[0] == "t"); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (340-359): CHC: Assertion violation happens here. +// Warning 6328: (307-326): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol index ac79475b4..73c2fcc57 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract D { } @@ -17,6 +15,8 @@ contract C { assert(address(d) == address(this)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (179-216): Unused local variable. -// Warning 6328: (267-302): CHC: Assertion violation happens here.\nCounterexample:\ns = {d: 0, f: 0}\nd = 0\nf = 0\n\nTransaction trace:\nC.constructor()\nState: s = {d: 0, f: 0}\nC.test() +// Warning 2072: (146-183): Unused local variable. +// Warning 6328: (234-269): CHC: Assertion violation happens here.\nCounterexample:\ns = {d: 0, f: 0}\nd = 0\nf = 0\n\nTransaction trace:\nC.constructor()\nState: s = {d: 0, f: 0}\nC.test() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol index b14ec0212..c2d0d4426 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -27,6 +25,8 @@ contract C { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (288-305): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 1, b: false}\nx = 1\nb = false\ny = 0\nc = false\n\nTransaction trace:\nC.constructor()\nState: s = {x: 1, b: false}\nC.f() -// Warning 6328: (410-424): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 42, b: false}\nx = 1\nb = false\ny = 42\nc = false\n\nTransaction trace:\nC.constructor()\nState: s = {x: 1, b: false}\nC.f() +// Warning 6328: (255-272): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 1, b: false}\nx = 1\nb = false\ny = 0\nc = false\n\nTransaction trace:\nC.constructor()\nState: s = {x: 1, b: false}\nC.f() +// Warning 6328: (377-391): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 42, b: false}\nx = 1\nb = false\ny = 42\nc = false\n\nTransaction trace:\nC.constructor()\nState: s = {x: 1, b: false}\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/uint.sol b/test/libsolidity/smtCheckerTests/functions/getters/uint.sol index 1643ab44d..b85d47284 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/uint.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint public x; @@ -9,5 +7,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol index 96d7ecfbf..2907a7e22 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function c() public pure returns (uint) { return 42; } } @@ -16,5 +14,7 @@ contract A is B { assert(x < 40); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (254-268): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.a()\n B.b() -- internal call\n C.c() -- internal call +// Warning 6328: (221-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.a()\n B.b() -- internal call\n C.c() -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init.sol index 8f6276e0e..71aacc37f 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init.sol @@ -1,5 +1,6 @@ -pragma experimental SMTChecker; contract c { bool b = (f() == 0) && (f() == 0); function f() internal returns (uint) {} } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init_2.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init_2.sol index 5c94cd9ed..8094870be 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract c { uint x; function f() internal returns (uint) { @@ -6,5 +5,7 @@ contract c { } bool b = (f() > 0) || (f() > 0); } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (86-90): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (54-58): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1.sol index 52dcfb1ff..308332700 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C{ uint x; constructor(uint y) { @@ -19,5 +17,7 @@ contract C{ assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (37-43): Unused function parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1_fail.sol index e5ac5b180..cf31fa9e5 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C{ uint x; constructor(uint y) { @@ -19,10 +17,12 @@ contract C{ assert(x == 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call -// Warning 6328: (220-234): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call -// Warning 6328: (245-259): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call -// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 5667: (37-43): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (105-119): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call +// Warning 6328: (187-201): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call +// Warning 6328: (212-226): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call +// Warning 6328: (49-63): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1.sol index 80f6d6304..7bceab1ad 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal { @@ -16,4 +14,6 @@ contract C is A { assert(x == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1_fail.sol index 02dd7b891..6b997ada3 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal { @@ -16,7 +14,9 @@ contract C is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() -// Warning 6328: (148-162): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() -// Warning 6328: (180-194): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() +// Warning 6328: (49-63): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (115-129): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() +// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1.sol b/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1.sol index f23217cde..3f17744fb 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C{ uint x; constructor(uint y) { @@ -19,5 +17,7 @@ contract C{ --x; } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (37-43): Unused function parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1_fail.sol index 400f68cc2..2e934a0f2 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C{ uint x; constructor(uint y) { @@ -19,8 +17,10 @@ contract C{ --x; } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f() -// Warning 6328: (184-198): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call\n C.g() -- internal call -// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 5667: (37-43): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (105-119): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f() +// Warning 6328: (151-165): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call\n C.g() -- internal call +// Warning 6328: (49-63): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/library_after_contract.sol b/test/libsolidity/smtCheckerTests/functions/library_after_contract.sol index 0d3efa6f6..3801cf24a 100644 --- a/test/libsolidity/smtCheckerTests/functions/library_after_contract.sol +++ b/test/libsolidity/smtCheckerTests/functions/library_after_contract.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g(uint y) public { uint z = L.f(y); @@ -13,5 +11,7 @@ library L { } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (131-190): Function state mutability can be restricted to pure +// Warning 2018: (98-157): Function state mutability can be restricted to pure diff --git a/test/libsolidity/smtCheckerTests/functions/library_constant.sol b/test/libsolidity/smtCheckerTests/functions/library_constant.sol index ecf6939ec..ddb900851 100644 --- a/test/libsolidity/smtCheckerTests/functions/library_constant.sol +++ b/test/libsolidity/smtCheckerTests/functions/library_constant.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library l1 { uint private constant TON = 1000; @@ -18,6 +16,8 @@ contract C { assert(z == x + 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (136-155): CHC: Assertion violation happens here.\nCounterexample:\nTON = 1000\n\nTransaction trace:\nl1.constructor()\nState: TON = 1000\nl1.f1() -// Warning 4984: (229-234): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.f(115792089237316195423570985008687907853269984665640564039457584007913129639935)\n l1.f2(115792089237316195423570985008687907853269984665640564039457584007913129639935, 1) -- internal call +// Warning 6328: (103-122): CHC: Assertion violation happens here.\nCounterexample:\nTON = 1000\n\nTransaction trace:\nl1.constructor()\nState: TON = 1000\nl1.f1() +// Warning 4984: (196-201): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.f(115792089237316195423570985008687907853269984665640564039457584007913129639935)\n l1.f2(115792089237316195423570985008687907853269984665640564039457584007913129639935, 1) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/library_constant_2.sol b/test/libsolidity/smtCheckerTests/functions/library_constant_2.sol index 9c04e6f9a..a6873e515 100644 --- a/test/libsolidity/smtCheckerTests/functions/library_constant_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/library_constant_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library l1 { uint private constant TON = 1000; @@ -7,3 +5,5 @@ library l1 { assert(TON == 1000); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/recursive_multi_return.sol b/test/libsolidity/smtCheckerTests/functions/recursive_multi_return.sol index d0d52c937..2b8b51800 100644 --- a/test/libsolidity/smtCheckerTests/functions/recursive_multi_return.sol +++ b/test/libsolidity/smtCheckerTests/functions/recursive_multi_return.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() public pure returns (uint, uint) { uint a; @@ -8,6 +6,8 @@ contract C { } } // +// ==== +// SMTEngine: all // ---- -// Warning 6321: (81-85): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (87-91): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-52): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (54-58): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/recursive_multi_return_2.sol b/test/libsolidity/smtCheckerTests/functions/recursive_multi_return_2.sol index b01d8cb05..e16e05d7f 100644 --- a/test/libsolidity/smtCheckerTests/functions/recursive_multi_return_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/recursive_multi_return_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { function f() public pure {22237625-86535-0+1; 555565-3*51; } @@ -22,19 +20,21 @@ a; (,,,,,,,a,b,,,,) = g(); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (163-167): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (171-175): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (179-183): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (187-191): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (195-199): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (203-207): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (211-215): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (219-223): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (227-231): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (235-239): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (241-244): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (246-250): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (252-259): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6133: (72-90): Statement has no effect. -// Warning 6133: (96-107): Statement has no effect. +// Warning 6321: (130-134): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (138-142): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (146-150): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (154-158): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (162-166): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (170-174): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (178-182): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (186-190): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (194-198): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (202-206): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (208-211): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (213-217): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (219-226): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6133: (39-57): Statement has no effect. +// Warning 6133: (63-74): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/functions/super_function_assert.sol b/test/libsolidity/smtCheckerTests/functions/super_function_assert.sol index f33106deb..58d541a8a 100644 --- a/test/libsolidity/smtCheckerTests/functions/super_function_assert.sol +++ b/test/libsolidity/smtCheckerTests/functions/super_function_assert.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int x = 0; @@ -27,6 +26,8 @@ contract D is C { assert(x == 3); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (237-251): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()\n C.f() -- internal call\n A.f() -- internal call -// Warning 6328: (360-374): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.proxy()\n D.f() -- internal call\n C.f() -- internal call\n A.f() -- internal call +// Warning 6328: (205-219): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()\n C.f() -- internal call\n A.f() -- internal call +// Warning 6328: (328-342): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.proxy()\n D.f() -- internal call\n C.f() -- internal call\n A.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call.sol index de69baf53..10ace8999 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -12,4 +10,6 @@ contract C assert(x < 1000); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol index 34d56c66e..ed7110d53 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint a; function f(uint x) public { @@ -12,5 +10,7 @@ contract C { a = x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (141-156): CHC: Assertion violation happens here.\nCounterexample:\na = 42\nx = 42\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.f(42)\n C.g(42) -- trusted external call +// Warning 6328: (108-123): CHC: Assertion violation happens here.\nCounterexample:\na = 42\nx = 42\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.f(42)\n C.g(42) -- trusted external call diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call_return.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call_return.sol index cb94af867..9e2d5d8c1 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call_return.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call_return.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -13,4 +11,6 @@ contract C assert(z < 1000); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol index e8bfe663b..5a425ca78 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address lastCaller; @@ -24,7 +22,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (347-379): CHC: Assertion violation happens here. -// Warning 6328: (389-421): CHC: Assertion violation happens here. +// Warning 6328: (314-346): CHC: Assertion violation happens here. +// Warning 6328: (356-388): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call_tx_origin.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call_tx_origin.sol index 04dd5599d..9b2699421 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call_tx_origin.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call_tx_origin.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test() view public { @@ -11,4 +9,6 @@ contract C { return msg.sender == tx.origin; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/this_state.sol b/test/libsolidity/smtCheckerTests/functions/this_state.sol index 9f417380e..4d69e4815 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_state.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_state.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint public x; @@ -12,4 +10,6 @@ contract C x = 2; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/virtual_function_assert.sol b/test/libsolidity/smtCheckerTests/functions/virtual_function_assert.sol index 14ea90cc2..4c4a8b246 100644 --- a/test/libsolidity/smtCheckerTests/functions/virtual_function_assert.sol +++ b/test/libsolidity/smtCheckerTests/functions/virtual_function_assert.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int x = 0; @@ -17,5 +16,7 @@ contract C is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (259-273): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()\n C.f() -- internal call +// Warning 6328: (227-241): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/virtual_function_called_by_constructor.sol b/test/libsolidity/smtCheckerTests/functions/virtual_function_called_by_constructor.sol index 71abeedb3..17f3daa79 100644 --- a/test/libsolidity/smtCheckerTests/functions/virtual_function_called_by_constructor.sol +++ b/test/libsolidity/smtCheckerTests/functions/virtual_function_called_by_constructor.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { uint public x; function v() internal virtual { @@ -22,6 +21,8 @@ contract C is A { assert(x == 2); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (231-246): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nA.constructor()\nState: x = 2\nA.i() -// Warning 6328: (419-433): CHC: Assertion violation happens here.\nCounterexample:\nx = 10\n\nTransaction trace:\nC.constructor()\nState: x = 10\nC.i() +// Warning 6328: (199-214): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nA.constructor()\nState: x = 2\nA.i() +// Warning 6328: (387-401): CHC: Assertion violation happens here.\nCounterexample:\nx = 10\n\nTransaction trace:\nC.constructor()\nState: x = 10\nC.i() diff --git a/test/libsolidity/smtCheckerTests/imports/import_base.sol b/test/libsolidity/smtCheckerTests/imports/import_base.sol index 6868c078a..f0ca042be 100644 --- a/test/libsolidity/smtCheckerTests/imports/import_base.sol +++ b/test/libsolidity/smtCheckerTests/imports/import_base.sol @@ -9,7 +9,6 @@ contract Base { } } ==== Source: der ==== -pragma experimental SMTChecker; import "base"; contract Der is Base { function g(uint y) public { @@ -18,5 +17,7 @@ contract Der is Base { assert(y > x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (der:205-218): CHC: Assertion violation happens here.\nCounterexample:\nx = 3, a = 0\ny = 0\n\nTransaction trace:\nDer.constructor()\nState: x = 0, a = 0\nDer.g(0)\n Base.f() -- internal call +// Warning 6328: (der:173-186): CHC: Assertion violation happens here.\nCounterexample:\nx = 3, a = 0\ny = 0\n\nTransaction trace:\nDer.constructor()\nState: x = 0, a = 0\nDer.g(0)\n Base.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/imports/import_library.sol b/test/libsolidity/smtCheckerTests/imports/import_library.sol index 0649c02e1..7c3a32e10 100644 --- a/test/libsolidity/smtCheckerTests/imports/import_library.sol +++ b/test/libsolidity/smtCheckerTests/imports/import_library.sol @@ -1,5 +1,4 @@ ==== Source: c ==== -pragma experimental SMTChecker; import "lib"; contract C { function g(uint x) public pure { @@ -14,5 +13,7 @@ library L { return one; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (c:113-126): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nC.g(0)\n L.f() -- internal call +// Warning 6328: (c:81-94): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nC.g(0)\n L.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol b/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol index aa5dc2c84..5688ddec0 100644 --- a/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol +++ b/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol @@ -14,12 +14,14 @@ contract B is A { } ==== Source: C.sol ==== import "B.sol"; -pragma experimental SMTChecker; contract C is B { function h(uint _x) public view { assert(_x < x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nB.g(0) -// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) +// Warning 6328: (C.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) diff --git a/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol b/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol index df9110111..5688ddec0 100644 --- a/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol +++ b/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol @@ -7,7 +7,6 @@ contract A { } ==== Source: B.sol ==== import "A.sol"; -pragma experimental SMTChecker; contract B is A { function g(uint _x) public view { assert(_x > x); @@ -15,13 +14,14 @@ contract B is A { } ==== Source: C.sol ==== import "B.sol"; -pragma experimental SMTChecker; contract C is B { function h(uint _x) public view { assert(_x < x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) -// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) -// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) +// Warning 6328: (C.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) diff --git a/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol b/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol index b823904d3..afe8b1bb3 100644 --- a/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol +++ b/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol @@ -7,7 +7,6 @@ contract A { } ==== Source: B.sol ==== import "A.sol"; -pragma experimental SMTChecker; contract B is A { function g(uint _x) public view { assert(_x > x); @@ -15,12 +14,13 @@ contract B is A { } ==== Source: C.sol ==== import "A.sol"; -pragma experimental SMTChecker; contract C is A { function h(uint _x) public view { assert(_x < x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) -// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) +// Warning 6328: (C.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) diff --git a/test/libsolidity/smtCheckerTests/imports/private_vars.sol b/test/libsolidity/smtCheckerTests/imports/private_vars.sol index c17cdb46f..2d2bb6ca4 100644 --- a/test/libsolidity/smtCheckerTests/imports/private_vars.sol +++ b/test/libsolidity/smtCheckerTests/imports/private_vars.sol @@ -1,5 +1,4 @@ ==== Source: ERC20.sol ==== -pragma experimental SMTChecker; contract ERC20 { uint256 private a; function f() internal virtual { @@ -7,10 +6,11 @@ contract ERC20 { } } ==== Source: Token.sol ==== -pragma experimental SMTChecker; import "ERC20.sol"; contract Token is ERC20 { constructor() { f(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/imports/simple.sol b/test/libsolidity/smtCheckerTests/imports/simple.sol index eeaafdadf..3c08969b5 100644 --- a/test/libsolidity/smtCheckerTests/imports/simple.sol +++ b/test/libsolidity/smtCheckerTests/imports/simple.sol @@ -2,5 +2,6 @@ contract A { function f() public {} } ==== Source: B.sol ==== import "A.sol"; -pragma experimental SMTChecker; contract C is A {} +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol b/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol deleted file mode 100644 index 6efbd2c9f..000000000 --- a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol +++ /dev/null @@ -1,12 +0,0 @@ -==== Source: A.sol ==== -contract A { - function f(uint x) public pure { - assert(x > 0); - } -} -==== Source: B.sol ==== -import "A.sol"; -pragma experimental SMTChecker; -contract C is A {} -// ---- -// Warning 6328: (A.sol:49-62): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nA.f(0) diff --git a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_two_pragmas.sol b/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_two_pragmas.sol deleted file mode 100644 index 698cc6283..000000000 --- a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_two_pragmas.sol +++ /dev/null @@ -1,14 +0,0 @@ -==== Source: A.sol ==== -pragma experimental SMTChecker; -contract A { - function f(uint x) public pure { - assert(x > 0); - } -} -==== Source: B.sol ==== -import "A.sol"; -pragma experimental SMTChecker; -contract C is A {} -// ---- -// Warning 6328: (A.sol:81-94): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nA.constructor()\nA.f(0) -// Warning 6328: (A.sol:81-94): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nA.constructor()\nA.f(0) diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_1.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_1.sol index b68857c73..2f8c4a976 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract B { uint x; function f() public view { @@ -14,5 +12,7 @@ contract C is B { f(); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (85-99): CHC: Assertion violation happens here. +// Warning 6328: (52-66): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_2.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_2.sol index 3d509cc70..039388704 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal view { @@ -21,5 +19,7 @@ contract C is B { f(); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (87-101): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, z = 0, w = 0, a = 0, b = 0, x = 1\n\nTransaction trace:\nC.constructor()\nState: y = 0, z = 0, w = 0, a = 0, b = 0, x = 0\nC.g()\n A.f() -- internal call +// Warning 6328: (54-68): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, z = 0, w = 0, a = 0, b = 0, x = 1\n\nTransaction trace:\nC.constructor()\nState: y = 0, z = 0, w = 0, a = 0, b = 0, x = 0\nC.g()\n A.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_3.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_3.sol index ed7806ba0..4d9067e07 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal virtual { @@ -27,5 +25,7 @@ contract C is B { x = 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (97-111): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call +// Warning 6328: (64-78): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_4.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_4.sol index 0e8721b94..4bf6520fb 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_4.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal virtual { @@ -34,5 +32,7 @@ contract C is B, A1 { x = 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (97-111): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call\n A1.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call +// Warning 6328: (64-78): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call\n A1.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_5.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_5.sol index af08912a2..507b10824 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_5.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal virtual { @@ -28,5 +26,7 @@ contract C is B { super.v(); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (130-144): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call\n A.v() -- internal call +// Warning 6328: (97-111): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call\n A.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_6.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_6.sol index bcdda3f3b..21d8a3dcc 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_6.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal virtual { @@ -30,5 +28,7 @@ contract C is B { x = 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (216-230): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g()\n A.v() -- internal call +// Warning 6328: (183-197): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g()\n A.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_7.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_7.sol index 6c92f7b5a..db63f27c7 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_7.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal { @@ -21,5 +19,7 @@ contract C is A { x = 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (89-103): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n A.f() -- internal call\n C.v() -- internal call +// Warning 6328: (56-70): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n A.f() -- internal call\n C.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_8.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_8.sol index 426b97bba..a326ccf3b 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_8.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract A { uint x; function f() public view { @@ -14,5 +12,7 @@ contract C is A { x = 0; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (94-108): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.f() +// Warning 6328: (61-75): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.f() diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_9.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_9.sol index 8be63b88d..83f8e609c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_9.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_9.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() public virtual { @@ -27,6 +25,8 @@ contract C is B { x = 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (164-178): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f()\n A.v() -- internal call -// Warning 6328: (95-109): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nB.f()\n A.f() -- internal call\n C.v() -- internal call +// Warning 6328: (131-145): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f()\n A.v() -- internal call +// Warning 6328: (62-76): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nB.f()\n A.f() -- internal call\n C.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_1.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_1.sol index 213b36ad3..a67223b5a 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -31,6 +29,8 @@ contract C is Z(5) { assert(x > 9); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (325-332): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 1\nz = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nZ.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) -// Warning 6328: (400-413): CHC: Assertion violation happens here.\nCounterexample:\nx = 6\n\nTransaction trace:\nC.constructor() +// Warning 4984: (292-299): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 1\nz = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nZ.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) +// Warning 6328: (367-380): CHC: Assertion violation happens here.\nCounterexample:\nx = 6\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_2.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_2.sol index 6471eaa1b..497fa6076 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -33,8 +31,9 @@ contract C is Z(5) { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (143-149): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (333-340): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (409-423): CHC: Assertion violation happens here. +// Warning 4984: (110-116): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (300-307): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (376-390): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_1.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_1.sol index 29e1d68b6..6ca597ed1 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -30,7 +28,8 @@ contract C is Z, B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (384-398): CHC: Assertion violation happens here. +// Warning 4984: (105-112): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (351-365): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_2.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_2.sol index 6118b8dd0..130da425e 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -29,5 +27,7 @@ contract C is Z, B { assert(x == k); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (382-396): CHC: Assertion violation happens here.\nCounterexample:\nk = 2, x = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (349-363): CHC: Assertion violation happens here.\nCounterexample:\nk = 2, x = 1\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_3.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_3.sol index b14354948..a1a9b9b6e 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -30,7 +28,8 @@ contract C is Z, B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (394-408): CHC: Assertion violation happens here. +// Warning 4984: (105-112): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (361-375): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_4.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_4.sol index 1a5127e85..c670aff15 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_4.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -30,7 +28,8 @@ contract C is Z, B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (394-408): CHC: Assertion violation happens here. +// Warning 4984: (105-112): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (361-375): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_5.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_5.sol index df19a2b17..e97b990ee 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_5.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -35,7 +33,8 @@ contract C is Z, B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (456-470): CHC: Assertion violation happens here. +// Warning 4984: (105-112): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (423-437): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_6.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_6.sol index 5393033c6..3d92a3626 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_6.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -34,5 +32,7 @@ contract C is Z, B { assert(x == k); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (449-463): CHC: Assertion violation happens here.\nCounterexample:\nk = 42, x = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (416-430): CHC: Assertion violation happens here.\nCounterexample:\nk = 42, x = 1\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_7.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_7.sol index 2df6cf267..b63c3c79d 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_7.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -31,5 +29,7 @@ contract C is Z { assert(x > 2); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (387-400): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (354-367): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_8.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_8.sol index e6275366a..0164cf437 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_8.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint) {} @@ -17,6 +15,8 @@ contract C is A { assert(x > 2000); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (218-232): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() -// Warning 6328: (251-267): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (185-199): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (218-234): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_9.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_9.sol index 3d17d0e4c..fed5ebf34 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_9.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_9.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x = 42; constructor(uint) {} @@ -18,7 +16,9 @@ contract C is A { assert(x > 2000); // should fail } } +// ==== +// SMTEngine: all // ---- +// Warning 6328: (191-205): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nC.constructor() // Warning 6328: (224-238): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nC.constructor() -// Warning 6328: (257-271): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nC.constructor() -// Warning 6328: (290-306): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nC.constructor() +// Warning 6328: (257-273): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_mixed_chain_with_params.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_mixed_chain_with_params.sol index 61a77682a..15cc66a0d 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_mixed_chain_with_params.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_mixed_chain_with_params.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor(uint x) { @@ -25,7 +24,8 @@ contract A is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (247-252): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (328-342): CHC: Assertion violation happens here. +// Warning 4984: (215-220): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (296-310): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol index 88caf233f..be9545837 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = 2; constructor () { @@ -7,5 +5,7 @@ contract C { assert(x == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (97-111): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor() +// Warning 6328: (64-78): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_asserts.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_asserts.sol index 8329b6718..e9bf3f65c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_asserts.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_asserts.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; constructor (int a) { x = a;} @@ -32,8 +30,10 @@ contract C is B { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (280-294): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (372-395): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (472-496): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) -// Warning 6328: (516-529): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (247-261): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) +// Warning 6328: (339-362): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) +// Warning 6328: (439-463): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (483-496): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_base.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_base.sol index 82383eac7..7435a54f5 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_base.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_base.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = 2; } @@ -10,5 +8,7 @@ contract D is C { assert(x == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (117-131): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() +// Warning 6328: (84-98): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain.sol index e512b9f92..bba7b3e13 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 1; } @@ -18,5 +16,7 @@ contract D is C { assert(x == 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (211-225): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor() +// Warning 6328: (178-192): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_alternate.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_alternate.sol index 99c52beba..c9a9f970f 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_alternate.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_alternate.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 1; } @@ -17,5 +15,7 @@ contract D is C { assert(x == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (185-199): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() +// Warning 6328: (152-166): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all.sol index d497e33da..f3a6393fa 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -21,8 +20,9 @@ contract A is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (275-293): CHC: Assertion violation happens here. -// Warning 4984: (157-162): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (216-221): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (243-261): CHC: Assertion violation happens here. +// Warning 4984: (125-130): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (184-189): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all_2.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all_2.sol index 50a751e39..d20358525 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -21,8 +20,9 @@ contract A is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (273-291): CHC: Assertion violation happens here. -// Warning 4984: (157-163): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (217-222): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (241-259): CHC: Assertion violation happens here. +// Warning 4984: (125-131): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (185-190): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_tree.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_tree.sol index 7bf06b22f..71e9071f1 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_tree.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_tree.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; constructor (int a) { x = a; } @@ -38,6 +36,8 @@ contract C is B { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (436-450): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, x = 1\nc = (- 1)\n\nTransaction trace:\nC.constructor((- 1)) -// Warning 6328: (483-496): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, x = 0\nc = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (403-417): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, x = 1\nc = (- 1)\n\nTransaction trace:\nC.constructor((- 1)) +// Warning 6328: (450-463): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, x = 0\nc = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond.sol index c5892b0f4..a31d5894c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 2; } @@ -16,5 +14,7 @@ contract D is B, C { assert(x == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (162-176): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() +// Warning 6328: (129-143): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond_middle.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond_middle.sol index ee521fd58..940ff64b3 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond_middle.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond_middle.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 1; } @@ -24,6 +22,8 @@ contract D is B, C { assert(x == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (256-270): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor() -// Warning 6328: (167-181): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() +// Warning 6328: (223-237): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor() +// Warning 6328: (134-148): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_function_call.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_function_call.sol index 451ef0c96..ca2f0b770 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_function_call.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_function_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = f(2); constructor () { @@ -12,4 +10,6 @@ contract C { return y; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_uses_function_base.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_uses_function_base.sol index af505cc52..cae4221bb 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_uses_function_base.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_uses_function_base.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; constructor() { @@ -17,3 +15,5 @@ contract C is B { assert(y == 42); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_1.sol b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_1.sol index 3f4a2d470..580597f4f 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { function f() public virtual returns (uint256 r) { return 1; @@ -27,5 +26,7 @@ contract D is B, C { assert(r == 13); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (469-484): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 15\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call +// Warning 6328: (437-452): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 15\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_2.sol b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_2.sol index b10b78069..c8d3c9c0e 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { function f() public virtual returns (uint256 r) { return 1; @@ -28,6 +27,8 @@ contract D is B, C { assert(r == 18); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (475-490): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 22\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call -// Warning 6328: (509-524): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 22\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call +// Warning 6328: (443-458): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 22\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call +// Warning 6328: (477-492): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 22\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_3.sol b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_3.sol index 0b66e8bfc..959e53d45 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int public x; function f() public virtual { @@ -31,5 +29,7 @@ contract E is C,D { assert(x == 13); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (412-427): CHC: Assertion violation happens here.\nCounterexample:\nx = 111\n\nTransaction trace:\nE.constructor()\nState: x = 0\nE.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call +// Warning 6328: (379-394): CHC: Assertion violation happens here.\nCounterexample:\nx = 111\n\nTransaction trace:\nE.constructor()\nState: x = 0\nE.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/fallback.sol b/test/libsolidity/smtCheckerTests/inheritance/fallback.sol index fc190d6f7..e1ae216c4 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/fallback.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/fallback.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, fallback and A.g contract A { uint x; @@ -20,7 +18,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (122-136): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.fallback() -// Warning 6328: (171-185): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.fallback() +// Warning 6328: (89-103): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.fallback() +// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (255-269): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.fallback() diff --git a/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol b/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol index 8daf3ad69..81b3d9a48 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, fallback and A.g contract A { uint x; @@ -20,7 +18,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.fallback() -// Warning 6328: (163-177): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (289-303): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.receive(){ value: 10450 } +// Warning 6328: (81-95): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.fallback() +// Warning 6328: (130-144): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (256-270): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.receive(){ value: 10450 } diff --git a/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol b/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol index b7075f2b9..bcdcc389a 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, A.f and A.g contract A { uint x; @@ -18,7 +16,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (276-290): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.f() +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (243-257): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.f() diff --git a/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol b/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol index a88141dc5..ca1a874b8 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, A.f and A.g contract A { uint x; @@ -20,7 +18,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (286-300): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.f() +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (253-267): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.f() diff --git a/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol b/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol index 7ead9b104..d262b2abc 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, A.f and A.g contract A { uint x; @@ -35,10 +33,12 @@ contract C is B { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (296-310): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.f() -// Warning 6328: (345-359): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.h() -// Warning 6328: (468-482): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, y = 0, x = 0\n\nTransaction trace:\nC.constructor()\nState: z = 0, y = 0, x = 0\nC.f() -// Warning 6328: (517-531): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, y = 0, x = 0\n\nTransaction trace:\nC.constructor()\nState: z = 0, y = 0, x = 0\nC.i() +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (263-277): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.f() +// Warning 6328: (312-326): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.h() +// Warning 6328: (435-449): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, y = 0, x = 0\n\nTransaction trace:\nC.constructor()\nState: z = 0, y = 0, x = 0\nC.f() +// Warning 6328: (484-498): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, y = 0, x = 0\n\nTransaction trace:\nC.constructor()\nState: z = 0, y = 0, x = 0\nC.i() diff --git a/test/libsolidity/smtCheckerTests/inheritance/implicit_constructor_hierarchy.sol b/test/libsolidity/smtCheckerTests/inheritance/implicit_constructor_hierarchy.sol index 4c8835950..12d197ee0 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/implicit_constructor_hierarchy.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/implicit_constructor_hierarchy.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; constructor (uint y) { assert(x == 0); x = y; } @@ -15,4 +13,5 @@ contract C is B { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/inheritance/implicit_only_constructor_hierarchy.sol b/test/libsolidity/smtCheckerTests/inheritance/implicit_only_constructor_hierarchy.sol index 1ff4219d0..25f1102ef 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/implicit_only_constructor_hierarchy.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/implicit_only_constructor_hierarchy.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function h() public view { @@ -19,4 +17,5 @@ contract C is B { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/inheritance/overriden_function_static_call_parent.sol b/test/libsolidity/smtCheckerTests/inheritance/overriden_function_static_call_parent.sol index b2f129351..89a48f17c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/overriden_function_static_call_parent.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/overriden_function_static_call_parent.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract BaseBase { uint x; function init(uint a, uint b) public virtual { @@ -17,7 +16,8 @@ contract Child is Base { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 5667: (84-90): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (314-328): CHC: Assertion violation happens here. +// Warning 5667: (52-58): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (282-296): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/receive.sol b/test/libsolidity/smtCheckerTests/inheritance/receive.sol index e503e3bd0..a88ff75f8 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/receive.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/receive.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, receive and A.g contract A { uint x; @@ -20,7 +18,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (128-142): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.receive() -// Warning 6328: (177-191): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (300-314): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.receive() +// Warning 6328: (95-109): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.receive() +// Warning 6328: (144-158): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (267-281): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.receive() diff --git a/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol b/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol index c09b5d1ea..93f332c57 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, receive and A.g contract A { uint x; @@ -20,7 +18,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (120-134): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.receive() -// Warning 6328: (169-183): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.fallback() +// Warning 6328: (87-101): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.receive() +// Warning 6328: (136-150): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (255-269): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.fallback() diff --git a/test/libsolidity/smtCheckerTests/inheritance/state_variables.sol b/test/libsolidity/smtCheckerTests/inheritance/state_variables.sol index e0c54d8b9..680926355 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/state_variables.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/state_variables.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Base { uint x; uint z; @@ -14,4 +12,6 @@ contract C is Base { assert(z < 150); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/inheritance/state_variables_2.sol b/test/libsolidity/smtCheckerTests/inheritance/state_variables_2.sol index 9e8a67eb8..2264e460c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/state_variables_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/state_variables_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Base1 { uint x; } @@ -16,4 +14,6 @@ contract C is Base2 { assert(z < 150); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/inheritance/state_variables_3.sol b/test/libsolidity/smtCheckerTests/inheritance/state_variables_3.sol index fda7a1b0d..636bd0367 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/state_variables_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/state_variables_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Base { uint x; uint private t; @@ -15,4 +13,6 @@ contract C is Base { assert(z < 150); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_1.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_1.sol index f8473ff40..335171ff7 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_1.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (bool) { bool b; @@ -13,12 +11,14 @@ contract C { require(!f()); // BMC constant value not ddetected at the moment } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (272-283): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call -// Warning 6328: (315-327): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call\n C.f() -- internal call -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (239-250): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (282-294): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call\n C.f() -- internal call +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_2.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_2.sol index 850331a52..5e5443078 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_2.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (bool) { bool b; @@ -10,7 +8,9 @@ contract C { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (115-134): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (171-180): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nb = false\nx = 42\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 7737: (115-134): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (82-101): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (138-147): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nb = false\nx = 42\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 7737: (82-101): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_3.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_3.sol index 528ac99e1..643dfe155 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_3.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (bool) { bool b; @@ -10,7 +8,9 @@ contract C { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (139-158): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (236-245): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nb = false\nc = true\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 7737: (139-158): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (106-125): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (203-212): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nb = false\nc = true\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 7737: (106-125): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_4.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_4.sol index 81bc9c27e..d024e1283 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_4.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (bool) { bool b; @@ -11,6 +9,8 @@ contract C { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (115-134): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (115-134): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (82-101): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (82-101): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_5.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_5.sol index e3fec75db..225d2672d 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_5.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -21,6 +19,8 @@ contract C { assert(i == 7); // should hold, not changed by the assembly } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (189-220): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (189-220): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (156-187): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (156-187): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_6.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_6.sol index 9222f6e22..60f7390ec 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_6.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -20,6 +18,8 @@ contract C { assert(i == 7); // should hold, not changed by the assembly } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (190-226): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (190-226): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (157-193): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (157-193): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_access_inside_function.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_access_inside_function.sol index 2b166adf3..a95bb8731 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_access_inside_function.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_access_inside_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256 public z; @@ -17,8 +15,10 @@ contract C { assert(i == 32); // should hold, not changed by the assembly } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (116-182): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (185-200): CHC: Assertion violation happens here.\nCounterexample:\nz = 0\ni = 32\n\nTransaction trace:\nC.constructor()\nState: z = 0\nC.f() -// Warning 6328: (219-233): CHC: Assertion violation happens here.\nCounterexample:\nz = 43\ni = 32\n\nTransaction trace:\nC.constructor()\nState: z = 0\nC.f() -// Warning 7737: (116-182): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (83-149): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (152-167): CHC: Assertion violation happens here.\nCounterexample:\nz = 0\ni = 32\n\nTransaction trace:\nC.constructor()\nState: z = 0\nC.f() +// Warning 6328: (186-200): CHC: Assertion violation happens here.\nCounterexample:\nz = 0\ni = 32\n\nTransaction trace:\nC.constructor()\nState: z = 0\nC.f() +// Warning 7737: (83-149): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_pointer.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_pointer.sol index dc340c451..8956d55c5 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_pointer.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_pointer.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256[] public a; @@ -17,9 +15,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 7737: (203-238): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (241-262): CHC: Assertion violation happens here. -// Warning 6328: (281-302): CHC: Assertion violation happens here. -// Warning 7737: (203-238): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (170-205): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (208-229): CHC: Assertion violation happens here. +// Warning 6328: (248-269): CHC: Assertion violation happens here. +// Warning 7737: (170-205): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_memory_write.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_memory_write.sol index cb900efa0..04b368e9d 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_memory_write.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_memory_write.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -22,9 +20,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 7737: (189-220): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (223-241): CHC: Assertion violation happens here. -// Warning 6328: (260-277): CHC: Assertion violation happens here. -// Warning 7737: (189-220): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (156-187): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (190-208): CHC: Assertion violation happens here. +// Warning 6328: (227-244): CHC: Assertion violation happens here. +// Warning 7737: (156-187): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/empty.sol b/test/libsolidity/smtCheckerTests/inline_assembly/empty.sol index 0377e326c..c977fc034 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/empty.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/empty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -7,6 +5,8 @@ contract C } } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (76-90): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (76-90): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (43-57): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (43-57): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/local_var.sol b/test/libsolidity/smtCheckerTests/inline_assembly/local_var.sol index 297031d4a..fb15f6db5 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/local_var.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/local_var.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure returns (uint) { @@ -9,6 +7,8 @@ contract C return x; } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (97-121): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (97-121): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (64-88): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (64-88): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/invariants/aon_blog_post.sol b/test/libsolidity/smtCheckerTests/invariants/aon_blog_post.sol index 98674eece..c7ed0a148 100644 --- a/test/libsolidity/smtCheckerTests/invariants/aon_blog_post.sol +++ b/test/libsolidity/smtCheckerTests/invariants/aon_blog_post.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { bool a; bool b; @@ -43,5 +42,7 @@ contract C { f = false; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (689-699): CHC: Assertion violation happens here. +// Warning 6328: (657-667): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/invariants/loop_basic.sol b/test/libsolidity/smtCheckerTests/invariants/loop_basic.sol index 5da422435..6bac672eb 100644 --- a/test/libsolidity/smtCheckerTests/invariants/loop_basic.sol +++ b/test/libsolidity/smtCheckerTests/invariants/loop_basic.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Simple { function f(uint x) public pure { uint y; @@ -10,5 +8,6 @@ contract Simple { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- diff --git a/test/libsolidity/smtCheckerTests/invariants/loop_basic_for.sol b/test/libsolidity/smtCheckerTests/invariants/loop_basic_for.sol index 7e523f506..10ff0d593 100644 --- a/test/libsolidity/smtCheckerTests/invariants/loop_basic_for.sol +++ b/test/libsolidity/smtCheckerTests/invariants/loop_basic_for.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Simple { function f(uint x) public pure { uint y; @@ -8,5 +6,6 @@ contract Simple { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- diff --git a/test/libsolidity/smtCheckerTests/invariants/loop_nested.sol b/test/libsolidity/smtCheckerTests/invariants/loop_nested.sol index c95099a2c..aea9c95ab 100644 --- a/test/libsolidity/smtCheckerTests/invariants/loop_nested.sol +++ b/test/libsolidity/smtCheckerTests/invariants/loop_nested.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Simple { function f() public pure { uint x = 10; @@ -16,4 +14,6 @@ contract Simple { //assert(y == x); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/invariants/loop_nested_for.sol b/test/libsolidity/smtCheckerTests/invariants/loop_nested_for.sol index 80584b751..3513c15d3 100644 --- a/test/libsolidity/smtCheckerTests/invariants/loop_nested_for.sol +++ b/test/libsolidity/smtCheckerTests/invariants/loop_nested_for.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Simple { function f() public pure { uint x; @@ -13,4 +11,6 @@ contract Simple { //assert(y == x); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/invariants/state_machine_1.sol b/test/libsolidity/smtCheckerTests/invariants/state_machine_1.sol index c181e6f51..43f505c8f 100644 --- a/test/libsolidity/smtCheckerTests/invariants/state_machine_1.sol +++ b/test/libsolidity/smtCheckerTests/invariants/state_machine_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -31,4 +29,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/invariants/state_machine_1_fail.sol b/test/libsolidity/smtCheckerTests/invariants/state_machine_1_fail.sol index b6f8e80fd..b8727aab4 100644 --- a/test/libsolidity/smtCheckerTests/invariants/state_machine_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/invariants/state_machine_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -30,5 +28,6 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol b/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol index eead1e551..96fbf7557 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -11,6 +9,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (143-157): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(13) +// Warning 6328: (110-124): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(13) diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_1_false_positives.sol b/test/libsolidity/smtCheckerTests/loops/do_while_1_false_positives.sol index 2345cc4f3..95360ca27 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_1_false_positives.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_1_false_positives.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -11,4 +9,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_break.sol b/test/libsolidity/smtCheckerTests/loops/do_while_break.sol index c4b1ee8c4..6e1b7eafe 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_break.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_break.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint x; @@ -11,7 +9,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (104-109): Unreachable code. -// Warning 5740: (122-128): Unreachable code. +// Warning 5740: (71-76): Unreachable code. +// Warning 5740: (89-95): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_break_2.sol b/test/libsolidity/smtCheckerTests/loops/do_while_break_2.sol index 2e471d001..3f1d6af00 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_break_2.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_break_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint a = 0; @@ -15,7 +13,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (128-133): Unreachable code. -// Warning 5740: (147-151): Unreachable code. +// Warning 5740: (95-100): Unreachable code. +// Warning 5740: (114-118): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_break_2_fail.sol b/test/libsolidity/smtCheckerTests/loops/do_while_break_2_fail.sol index 37763c0a7..3544e04d4 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_break_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_break_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint a = 0; @@ -15,8 +13,9 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (128-133): Unreachable code. -// Warning 5740: (147-151): Unreachable code. -// Warning 6328: (180-194): CHC: Assertion violation happens here.\nCounterexample:\n\na = 1\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 5740: (95-100): Unreachable code. +// Warning 5740: (114-118): Unreachable code. +// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\n\na = 1\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol index 3f91ea19f..cea834c69 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint x; @@ -11,8 +9,9 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (104-109): Unreachable code. -// Warning 5740: (122-128): Unreachable code. -// Warning 6328: (133-147): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 5740: (71-76): Unreachable code. +// Warning 5740: (89-95): Unreachable code. +// Warning 6328: (100-114): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_continue.sol b/test/libsolidity/smtCheckerTests/loops/do_while_continue.sol index f6e712680..ce989722e 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_continue.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_continue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint x; @@ -11,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (107-112): Unreachable code. +// Warning 5740: (74-79): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_break.sol b/test/libsolidity/smtCheckerTests/loops/for_1_break.sol index c6b8eedb4..207ada2f8 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_break.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_break.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -16,4 +14,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol index 0c44a20d7..fa7a489e4 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -15,6 +13,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (201-216): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(0, false) +// Warning 6328: (168-183): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(0, false) diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_continue.sol b/test/libsolidity/smtCheckerTests/loops/for_1_continue.sol index fba0909d3..92a2df4a5 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_continue.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_continue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -14,4 +12,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol b/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol index 5774854ba..2e4d5a0f7 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -11,7 +9,8 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5667: (66-72): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (142-156): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(9, false) +// Warning 5667: (33-39): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (109-123): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(9, false) diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol b/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol index 65515336d..84d36aa66 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -12,8 +10,9 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 4984: (176-181): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6328: (189-203): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(4) -// Warning 2661: (176-181): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (143-148): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 6328: (156-170): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(4) +// Warning 2661: (143-148): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_false_positive.sol b/test/libsolidity/smtCheckerTests/loops/for_1_false_positive.sol index 341ea4cac..3b6842b41 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_false_positive.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_false_positive.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -11,4 +9,8 @@ contract C //assert(x > 0); } } +// ==== +// SMTEngine: all // ---- +// Warning 4984: (106-111): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 2661: (106-111): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/for_break_direct.sol b/test/libsolidity/smtCheckerTests/loops/for_break_direct.sol index 42bb84e51..baedb4a97 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_break_direct.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_break_direct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -9,6 +7,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (102-105): Unreachable code. +// Warning 5740: (69-72): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_1.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_1.sol index c3e66e5e3..73af790f3 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -7,4 +6,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_2.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_2.sol index b409ae987..4720a90ff 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_2.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { for (; x == 2; ) { @@ -7,4 +6,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_3.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_3.sol index 578c7f5a8..ae739df37 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_3.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { for (uint y = 2; x < 10; ) { @@ -7,4 +6,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol index a7aaa5b33..0c7941b0d 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { for (uint y = 2; x < 10; y = 3) { @@ -7,6 +6,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (136-150): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 3\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (104-118): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 3\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol index ac8e1064b..6c496e7af 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { uint y; @@ -9,6 +8,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (167-181): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\ny = 2\n\nTransaction trace:\nC.constructor()\nC.f(10) +// Warning 6328: (135-149): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\ny = 2\n\nTransaction trace:\nC.constructor()\nC.f(10) diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_6.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_6.sol index 06895a9e3..8d8b787c2 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_6.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_6.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { uint y; @@ -10,4 +9,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_memory.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_memory.sol index e5ea6a961..88fe7f51f 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_memory.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_memory.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { function testUnboundedForLoop(uint n, uint[] memory b, uint[] memory c) public pure { require(n < b.length); @@ -21,9 +19,10 @@ contract LoopFor2 { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (235-250): Unused local variable. -// Warning 6368: (387-391): CHC: Out of bounds access happens here. -// Warning 6368: (411-415): CHC: Out of bounds access happens here. -// Warning 6368: (404-408): CHC: Out of bounds access happens here. +// Warning 2072: (202-217): Unused local variable. +// Warning 6368: (354-358): CHC: Out of bounds access happens here. +// Warning 6368: (378-382): CHC: Out of bounds access happens here. +// Warning 6368: (371-375): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_storage.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_storage.sol index 985d9ddc1..359f82838 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_storage.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { uint[] a; function p() public { @@ -15,7 +13,8 @@ contract LoopFor2 { for (uint i = 0; i < n; i += 1) { // Accesses are safe but oob is reported due to potential aliasing after c's assignment. b[i] = i + 1; - c[i] = b[i]; + // Disabled because of Spacer's nondeterminism. + //c[i] = b[i]; } // Removed because current Spacer seg faults in cex generation. //assert(b[0] == c[0]); @@ -24,8 +23,6 @@ contract LoopFor2 { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6368: (442-446): CHC: Out of bounds access happens here. -// Warning 6368: (466-470): CHC: Out of bounds access happens here. -// Warning 6368: (459-463): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_memory.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_memory.sol index e94355d4f..dbcf88a80 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_memory.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_memory.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // Most of the code has been commented out because of nondeterminism in Spacer in Z3 4.8.9 contract LoopFor2 { uint[] b; @@ -22,4 +20,6 @@ contract LoopFor2 { //assert(b[0] == 900); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_storage.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_storage.sol index 88ce49dee..c8e536933 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_storage.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { uint[] b; uint[] c; @@ -23,5 +21,6 @@ contract LoopFor2 { */ } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_1.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_1.sol index c8457bc85..781463d5a 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -7,6 +6,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6838: (122-128): BMC: Condition is always true. +// Warning 6838: (90-96): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_2.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_2.sol index 087e40a84..ede2e4335 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_2.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -10,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6838: (138-144): BMC: Condition is always true. +// Warning 6838: (106-112): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_3.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_3.sol index 57993a00f..0beae52d7 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_3.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -14,6 +13,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 2072: (115-121): Unused local variable. +// Warning 2072: (83-89): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_unreachable_1.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_unreachable_1.sol index 3c3f29ab1..c040ecb98 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_unreachable_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_unreachable_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -7,6 +6,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6838: (122-127): BMC: Condition is always false. +// Warning 6838: (90-95): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/loops/while_1.sol b/test/libsolidity/smtCheckerTests/loops/while_1.sol index a2a251c5b..4ce223d12 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -14,5 +12,6 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_break.sol b/test/libsolidity/smtCheckerTests/loops/while_1_break.sol index d2c2eda68..5f0ea4212 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_break.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_break.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -16,4 +14,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol index 6eab03a41..ac4071e7f 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -16,6 +14,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (218-233): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(0, false) +// Warning 6328: (185-200): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(0, false) diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_continue.sol b/test/libsolidity/smtCheckerTests/loops/while_1_continue.sol index 9c86b8824..0ee7d50a7 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_continue.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_continue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -15,4 +13,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol index 3bc17dbb7..39ee24ac5 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -18,7 +16,8 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (169-176): Unreachable code. -// Warning 6328: (227-242): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(10, false) +// Warning 5740: (136-143): Unreachable code. +// Warning 6328: (194-209): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(10, false) diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol index c0f499c6b..f679e3e59 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -11,6 +9,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (139-153): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(14) +// Warning 6328: (106-120): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(14) diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_infinite.sol b/test/libsolidity/smtCheckerTests/loops/while_1_infinite.sol index 99cc76afb..258d34e37 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_infinite.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_infinite.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -19,4 +17,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_2.sol b/test/libsolidity/smtCheckerTests/loops/while_2.sol index f01c51efe..d68bd6d70 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_2.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { x = 2; @@ -12,4 +11,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_2_break.sol b/test/libsolidity/smtCheckerTests/loops/while_2_break.sol index 98de2d868..d844ba676 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_2_break.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_2_break.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -13,6 +11,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (128-131): Unreachable code. +// Warning 5740: (95-98): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol index e1a83a62a..49b82c0e9 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -12,8 +10,9 @@ contract C } } // ==== -// SMTSolvers: z3 +// SMTEngine: all // SMTIgnoreCex: yes +// SMTSolvers: z3 // ---- -// Warning 5740: (120-123): Unreachable code. -// Warning 6328: (131-145): CHC: Assertion violation happens here. +// Warning 5740: (87-90): Unreachable code. +// Warning 6328: (98-112): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/while_2_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_2_fail.sol index 74d36522d..9a1cbe695 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_2_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { x = 2; @@ -12,5 +11,6 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- diff --git a/test/libsolidity/smtCheckerTests/loops/while_break_direct.sol b/test/libsolidity/smtCheckerTests/loops/while_break_direct.sol index ab94d5414..47515ecad 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_break_direct.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_break_direct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -10,6 +8,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6838: (98-104): BMC: Condition is always true. +// Warning 6838: (65-71): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_memory.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_memory.sol index 6316a87d3..6ee19dfa4 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_memory.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_memory.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { function testUnboundedForLoop(uint n, uint[] memory b, uint[] memory c) public pure { require(n < b.length); @@ -26,8 +24,9 @@ contract LoopFor2 { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // SMTSolvers: z3 // ---- -// Warning 2072: (235-250): Unused local variable. -// Warning 2072: (258-264): Unused local variable. +// Warning 2072: (202-217): Unused local variable. +// Warning 2072: (225-231): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_storage.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_storage.sol index 4bef8bdb7..788c36e37 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_storage.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { uint[] a; function p() public { @@ -32,6 +30,7 @@ contract LoopFor2 { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 2072: (313-319): Unused local variable. +// Warning 2072: (280-286): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_storage_storage.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_storage_storage.sol index 5fa667a86..3e5d910db 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_storage_storage.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_storage_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { uint[] b; uint[] c; @@ -24,10 +22,12 @@ contract LoopFor2 { assert(b[0] == 900); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (321-325): CHC: Out of bounds access might happen here. -// Warning 6368: (345-349): CHC: Out of bounds access might happen here. -// Warning 6368: (338-342): CHC: Out of bounds access might happen here. -// Warning 6368: (444-448): CHC: Out of bounds access happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\na = []\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) -// Warning 6328: (437-456): CHC: Assertion violation happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) -// Warning 6328: (460-479): CHC: Assertion violation happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) +// Warning 6368: (288-292): CHC: Out of bounds access might happen here. +// Warning 6368: (312-316): CHC: Out of bounds access might happen here. +// Warning 6368: (305-309): CHC: Out of bounds access might happen here. +// Warning 6368: (411-415): CHC: Out of bounds access happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\na = []\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) +// Warning 6328: (404-423): CHC: Assertion violation happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) +// Warning 6328: (427-446): CHC: Assertion violation happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol index 3b61e1df9..59edfb55b 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Check that variables are cleared contract C { function f(uint x) public pure { @@ -10,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (162-176): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_2.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_2.sol index 67d26068b..b68a5d586 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_2.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Check that condition is assumed. contract C { function f(uint x) public pure { @@ -8,4 +7,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol index 03f7464f5..684adaadb 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Check that condition is not assumed after the body anymore contract C { function f(uint x) public pure { @@ -8,7 +7,8 @@ contract C { } } // ==== -// SMTSolvers: z3 +// SMTEngine: all // SMTIgnoreCex: yes +// SMTSolvers: z3 // ---- -// Warning 6328: (187-201): CHC: Assertion violation happens here. +// Warning 6328: (155-169): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_4.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_4.sol index c7c2a9a9b..31a06a4a0 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_4.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Check that negation of condition is not assumed after the body anymore contract C { function f(uint x) public pure { @@ -8,4 +7,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol index d546c6fd9..bbcd6cd31 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Check that side-effects of condition are taken into account contract C { function f(uint x, uint y) public pure { @@ -10,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (224-238): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 6328: (192-206): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/loops/while_nested_break.sol b/test/libsolidity/smtCheckerTests/loops/while_nested_break.sol index 41e01585e..0a19c3b8e 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_nested_break.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_nested_break.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y, bool b, bool c) public pure { @@ -29,4 +27,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol index 52a14a18d..ecd34cf3a 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y, bool b, bool c) public pure { @@ -28,6 +26,8 @@ contract C assert(x >= 20); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (329-344): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 10\nb = false\nc = true\n\nTransaction trace:\nC.constructor()\nC.f(0, 9, false, true) -// Warning 6328: (380-395): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\ny = 20\nb = false\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, false, false) +// Warning 6328: (296-311): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 10\nb = false\nc = true\n\nTransaction trace:\nC.constructor()\nC.f(0, 9, false, true) +// Warning 6328: (347-362): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\ny = 20\nb = false\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, false, false) diff --git a/test/libsolidity/smtCheckerTests/loops/while_nested_continue.sol b/test/libsolidity/smtCheckerTests/loops/while_nested_continue.sol index 72b0c4d24..da7e9dbf5 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_nested_continue.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_nested_continue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y, bool b, bool c) public pure { @@ -27,4 +25,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol index ecf051c37..180d85adc 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y, bool b, bool c) public pure { @@ -26,6 +24,8 @@ contract C assert(x >= 20); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (323-338): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 15\nb = false\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, false, false) -// Warning 6328: (362-377): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\ny = 0\nb = true\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, true, false) +// Warning 6328: (290-305): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 15\nb = false\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, false, false) +// Warning 6328: (329-344): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\ny = 0\nb = true\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, true, false) diff --git a/test/libsolidity/smtCheckerTests/math/addmod_1.sol b/test/libsolidity/smtCheckerTests/math/addmod_1.sol index 5f4eb14b4..62272c595 100644 --- a/test/libsolidity/smtCheckerTests/math/addmod_1.sol +++ b/test/libsolidity/smtCheckerTests/math/addmod_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(addmod(2**256 - 1, 10, 9) == 7); @@ -11,7 +9,9 @@ contract C { return addmod(x, y, k); } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (141-166): CHC: Division by zero happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 4281: (263-278): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\nk = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.g(0, 0, 0) +// Warning 4281: (108-133): CHC: Division by zero happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 4281: (230-245): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\nk = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.g(0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/math/addmod_mulmod.sol b/test/libsolidity/smtCheckerTests/math/addmod_mulmod.sol index 233f5e293..39d1c8110 100644 --- a/test/libsolidity/smtCheckerTests/math/addmod_mulmod.sol +++ b/test/libsolidity/smtCheckerTests/math/addmod_mulmod.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test() public pure { uint x; @@ -8,6 +6,8 @@ contract C { assert(x == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (93-143): BMC: Condition is always false. -// Warning 6838: (158-208): BMC: Condition is always false. +// Warning 6838: (60-110): BMC: Condition is always false. +// Warning 6838: (125-175): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol b/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol index fb3df8b80..4d36da6b5 100644 --- a/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol +++ b/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint256 d) public pure { uint x = addmod(1, 2, d); @@ -20,9 +18,11 @@ contract C { assert(z == t); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (253-260): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 4281: (94-109): CHC: Division by zero happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) -// Warning 6328: (113-126): CHC: Assertion violation happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) -// Warning 4281: (180-195): CHC: Division by zero happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g(0) -// Warning 6328: (199-212): CHC: Assertion violation happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g(0) +// Warning 6321: (220-227): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 4281: (61-76): CHC: Division by zero happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (80-93): CHC: Assertion violation happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 4281: (147-162): CHC: Division by zero happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g(0) +// Warning 6328: (166-179): CHC: Assertion violation happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g(0) diff --git a/test/libsolidity/smtCheckerTests/math/addmulmod.sol b/test/libsolidity/smtCheckerTests/math/addmulmod.sol index 6ff977831..1979e4e56 100644 --- a/test/libsolidity/smtCheckerTests/math/addmulmod.sol +++ b/test/libsolidity/smtCheckerTests/math/addmulmod.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test_addmod(uint x, uint y) public pure { require(x % 13 == 0); @@ -16,4 +14,6 @@ contract C { assert(z == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/math/mulmod_1.sol b/test/libsolidity/smtCheckerTests/math/mulmod_1.sol index a42919a8d..2a3648f3f 100644 --- a/test/libsolidity/smtCheckerTests/math/mulmod_1.sol +++ b/test/libsolidity/smtCheckerTests/math/mulmod_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(mulmod(2**256 - 1, 2, 14) == 2); @@ -11,7 +9,9 @@ contract C { return mulmod(x, y, k); } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (141-166): CHC: Division by zero happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 4281: (263-278): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\nk = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.g(0, 0, 0) +// Warning 4281: (108-133): CHC: Division by zero happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 4281: (230-245): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\nk = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.g(0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol index c02aa5c66..9e94386f6 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol @@ -1,6 +1,6 @@ -pragma experimental SMTChecker; - abstract contract A { function f() public mod {} modifier mod virtual; } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_assignment_outside_branch.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_assignment_outside_branch.sol index b3c9ab0d6..76a12044f 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_assignment_outside_branch.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_assignment_outside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -17,3 +15,5 @@ contract C if (y > x) f(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol index 85009890a..3634cecb6 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -20,5 +18,7 @@ contract C x = _x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (136-149): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(115792089237316195423570985008687907853269984665640564039457584007913129639935)\nState: x = 115792089237316195423570985008687907853269984665640564039457584007913129639935\nC.f() +// Warning 6328: (103-116): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(115792089237316195423570985008687907853269984665640564039457584007913129639935)\nState: x = 115792089237316195423570985008687907853269984665640564039457584007913129639935\nC.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol index 594f11e41..1d466b537 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -14,5 +12,7 @@ contract C assert(x > 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (144-157): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (111-124): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inline_function_inside_branch.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inline_function_inside_branch.sol index 11df23d93..dd329c65a 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inline_function_inside_branch.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inline_function_inside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address owner; @@ -16,4 +14,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch.sol index 45202db3c..3278075cb 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address owner; modifier onlyOwner { @@ -11,3 +9,5 @@ contract C { if (x > 0) g(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol index 3eab6a343..8268d8520 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; address owner; @@ -19,5 +17,7 @@ contract C { assert(x > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (287-300): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, owner = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0, owner = 0\nC.g(1)\n C.f() -- internal call +// Warning 6328: (254-267): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, owner = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0, owner = 0\nC.g(1)\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_branch.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_branch.sol index 6c9489482..08a0c9f4c 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_branch.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; address owner; @@ -23,5 +21,7 @@ contract C { assert(x > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (266-271): BMC: Condition is always true. +// Warning 6838: (233-238): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_multi_branches.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_multi_branches.sol index 98ed5f169..df6c12cba 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_multi_branches.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_multi_branches.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; address owner; @@ -33,5 +31,7 @@ contract C { assert(x == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (573-587): CHC: Assertion violation happens here.\nCounterexample:\nx = 1, owner = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0, owner = 0\nC.g(1) +// Warning 6328: (540-554): CHC: Assertion violation happens here.\nCounterexample:\nx = 1, owner = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0, owner = 0\nC.g(1) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol index 37aa63b1a..d3a4bd92f 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -25,5 +23,7 @@ contract C x = _x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (170-183): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(1)\nState: x = 1\nC.f() +// Warning 6328: (137-150): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(1)\nState: x = 1\nC.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol index c998261bb..f1804abe8 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(uint a, uint b) { @@ -21,5 +19,7 @@ contract C assert(x > 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (311-324): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\na = 1\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f(1)\n C.g(1, 0) -- internal call +// Warning 6328: (278-291): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\na = 1\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f(1)\n C.g(1, 0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions_recursive.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions_recursive.sol index 16d071fdb..93405d24b 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions_recursive.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions_recursive.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(uint a, uint b) { @@ -16,4 +14,6 @@ contract C assert(x > 1); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol index 8149a9ec9..2f6a820a5 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(uint a, uint b) { @@ -12,5 +10,7 @@ contract C assert(x > 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (164-177): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\na = 1\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f(1) +// Warning 6328: (131-144): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\na = 1\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f(1) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overflow.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overflow.sol index 52dd6ee5f..13a83ee55 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overflow.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overflow.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -14,4 +12,6 @@ contract C x = x + 1; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol index ff9286c0a..bed6b448e 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract A { uint s; @@ -19,5 +17,7 @@ contract B is A { s = x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (242-256): CHC: Assertion violation happens here.\nCounterexample:\ns = 42\nx = 42\n\nTransaction trace:\nB.constructor()\nState: s = 0\nB.set(42)\nState: s = 42\nA.f() +// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\ns = 42\nx = 42\n\nTransaction trace:\nB.constructor()\nState: s = 0\nB.set(42)\nState: s = 42\nA.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol index dc67c1905..508f726d1 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract A { bool s; @@ -22,6 +20,8 @@ contract C is B { _; } } +// ==== +// SMTEngine: all // ---- -// Warning 5740: (95-144): Unreachable code. -// Warning 6328: (99-108): CHC: Assertion violation happens here.\nCounterexample:\ns = false\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f() +// 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() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol index 4398f0ae3..655e4b7f5 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract A { bool s; @@ -17,6 +15,8 @@ contract B is A { _; } } +// ==== +// SMTEngine: all // ---- -// Warning 5740: (95-156): Unreachable code. -// Warning 6328: (127-137): CHC: Assertion violation happens here.\nCounterexample:\ns = true\nx = true\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f() +// Warning 5740: (62-123): Unreachable code. +// Warning 6328: (94-104): CHC: Assertion violation happens here.\nCounterexample:\ns = true\nx = true\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol index a02ea10f5..7da8d0f6a 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract A { int x = 0; @@ -35,7 +33,9 @@ contract D is B,C { _; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (193-207): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nB.constructor()\nState: x = 0\nA.f() -// Warning 6328: (226-240): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.f() -// Warning 6328: (259-273): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.f() +// Warning 6328: (160-174): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nB.constructor()\nState: x = 0\nA.f() +// Warning 6328: (193-207): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.f() +// Warning 6328: (226-240): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol index 7502273a9..1612cb8e7 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(uint x) { @@ -11,5 +9,7 @@ contract C assert(x == 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (128-142): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (95-109): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_parameters.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_parameters.sol index 35a0f399e..7c360c454 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_parameters.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_parameters.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint s; @@ -14,4 +12,6 @@ contract C assert(s > 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_return.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_return.sol index 78fcdc9d3..2b9c95a3f 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_return.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_return.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(uint x) { @@ -17,4 +15,6 @@ contract C assert(x == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol index 7142acba3..1d86c0fea 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m { @@ -11,5 +9,7 @@ contract C assert(x == 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\nx = 2\n\nTransaction trace:\nC.constructor()\nC.f(3) +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nx = 2\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_simple.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_simple.sol index 47df69872..39e94536a 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_simple.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_simple.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -13,3 +11,5 @@ contract C assert(x > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations.sol index 8d79f6a89..82014aa6b 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -16,4 +14,6 @@ contract C x = x + 1; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol index 2a66e0c40..0a63ed321 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -15,5 +13,7 @@ contract C x = x + 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (109-123): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (76-90): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol index c59709451..940445d63 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -22,5 +20,7 @@ contract C x = _x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (156-170): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(1)\nState: x = 1\nC.f() +// Warning 6328: (123-137): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(1)\nState: x = 1\nC.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol index 07c353ee9..ce3eee333 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { modifier m virtual { _; @@ -8,3 +7,5 @@ contract C is A { function f() public A.m returns (uint) { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol index dd071d291..4bd8f328f 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int x = 0; @@ -18,5 +17,7 @@ contract C is A { function f() public A.m returns (uint) { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (115-130): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (83-98): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol index b0b16783b..3331b57de 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int x; int y; @@ -26,6 +25,7 @@ contract A { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (424-440): CHC: Assertion violation happens here. +// Warning 6328: (392-408): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol index 9ceb71fcc..3df77d2fb 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { uint[] a; function f() public { @@ -10,5 +9,7 @@ contract A { assert(A.a.length == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (156-178): CHC: Assertion violation happens here.\nCounterexample:\na = []\n\nTransaction trace:\nA.constructor()\nState: a = []\nA.f() +// Warning 6328: (124-146): CHC: Assertion violation happens here.\nCounterexample:\na = []\n\nTransaction trace:\nA.constructor()\nState: a = []\nA.f() diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_2.sol b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_2.sol index 15024914f..87a88beae 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int[] a; function f() public { @@ -7,3 +6,5 @@ contract A { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_3.sol b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_3.sol index 61fba7c7b..fac19a6ff 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int[] a; constructor() { @@ -24,8 +23,10 @@ contract A { a.push(x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (350-354): CHC: Out of bounds access happens here.\nCounterexample:\na = [0, 0]\nu = []\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() -// Warning 6328: (343-360): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() -// Warning 6368: (454-458): CHC: Out of bounds access happens here.\nCounterexample:\na = [0, 0]\nu = []\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() -// Warning 6328: (447-464): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() +// Warning 6368: (318-322): CHC: Out of bounds access happens here.\nCounterexample:\na = [0, 0]\nu = []\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() +// Warning 6328: (311-328): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() +// Warning 6368: (422-426): CHC: Out of bounds access happens here.\nCounterexample:\na = [0, 0]\nu = []\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() +// Warning 6328: (415-432): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_module_contract_member_variable.sol b/test/libsolidity/smtCheckerTests/operators/assignment_module_contract_member_variable.sol index 9f8239fa4..d1387ee8e 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_module_contract_member_variable.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_module_contract_member_variable.sol @@ -1,5 +1,4 @@ ==== Source: AASource ==== -pragma experimental SMTChecker; import "AASource" as AA; contract A { int x; @@ -26,6 +25,8 @@ contract A { assert(AA.A.y == A.x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (AASource:191-210): CHC: Assertion violation happens here.\nCounterexample:\nx = (- 1), y = (- 2)\n\nTransaction trace:\nA.constructor()\nState: x = 0, y = 0\nA.a()\nState: x = (- 2), y = (- 2)\nA.a() -// Warning 6328: (AASource:402-418): CHC: Assertion violation happens here.\nCounterexample:\nx = 8, y = (- 2)\n\nTransaction trace:\nA.constructor()\nState: x = 0, y = 0\nA.a() +// Warning 6328: (AASource:159-178): CHC: Assertion violation happens here.\nCounterexample:\nx = (- 1), y = (- 2)\n\nTransaction trace:\nA.constructor()\nState: x = 0, y = 0\nA.a()\nState: x = (- 2), y = (- 2)\nA.a() +// Warning 6328: (AASource:370-386): CHC: Assertion violation happens here.\nCounterexample:\nx = 8, y = (- 2)\n\nTransaction trace:\nA.constructor()\nState: x = 0, y = 0\nA.a() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol index 59a29ee26..64d31bff0 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure { assert(bytes1("") & ("") == bytes1(0)); // should hold @@ -7,5 +6,7 @@ contract C { assert(bytes1(0xFF) & bytes1(0xAA) == bytes1(0)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (269-317): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (237-285): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol index ca870a1ec..611fd9598 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int8 x = 1; @@ -14,5 +12,7 @@ contract C { assert(x & y == 127); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (104-122): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (71-89): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol index 68162830a..1f4c6c3d1 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(1 & 0 != 0); @@ -8,5 +6,7 @@ contract C { assert(-1 & 127 == 127); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (76-94): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (43-61): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol index 86ab29a16..47f0dcba2 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint8 x = 1; @@ -12,7 +10,9 @@ contract C { assert(x & y == 0x0000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (107-125): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (180-203): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (207-230): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (74-92): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (147-170): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (174-197): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_combo.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_combo.sol index dc1d8f206..19fdaf947 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_combo.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_combo.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint8 x = 0xff; @@ -9,4 +7,6 @@ contract C { assert(x ^ y == 0xff); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol index dcb64d999..e9e1dea53 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { // ffff0000 in bytes4 @@ -8,5 +6,7 @@ contract C { assert(x == 0x0000ffff); // should hold } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (133-156): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 65535\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (100-123): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 65535\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol index e95eee8e6..e254d5b40 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int16 x = 1; @@ -14,8 +12,10 @@ contract C { assert(~x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (91-106): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (122-137): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (153-171): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (185-200): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (58-73): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (89-104): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (120-138): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (152-167): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol index a27b26f9b..8cf205e9c 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint8 x = 0xff; @@ -10,6 +8,8 @@ contract C { assert(~y == 0x0000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (159-179): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (183-203): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (126-146): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (150-170): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol index 1ca17f25f..125e54db5 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns (bytes1) { bytes1 b = (bytes1(0x0F) | (bytes1(0xF0))); @@ -7,5 +6,7 @@ contract C { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (182-207): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nb = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (150-175): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nb = 255\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol index 94eb7c869..cc96e9b1e 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int16 x = 1; @@ -16,6 +14,8 @@ contract C { assert(x | z != -1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (144-162): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (267-286): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 1)\ny = 200\nz = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (111-129): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (234-253): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 1)\ny = 200\nz = 255\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol index ec09770dc..d6ebdf498 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint8 x = 1; @@ -12,6 +10,8 @@ contract C { assert(x | y == 0x0000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (155-176): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (207-230): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (122-143): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (174-197): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_rational_1.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_rational_1.sol index f93670917..14794f6e7 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_rational_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_rational_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint x = type(uint256).max - 1; @@ -7,4 +5,6 @@ contract C { assert(~1 == -2); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol index c289f494f..3d3f373a0 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(~1 | (~0xff & 0) == -2); @@ -11,5 +9,7 @@ contract C { assert(y & (0xffffffffffffffffff & 1) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (181-194): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 2)\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (148-161): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 2)\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol index eb0b0c254..62cf620d6 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract Simp { function f3() public pure returns (bytes1) { bytes memory y = "def"; @@ -8,6 +7,7 @@ contract Simp { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (172-203): CHC: Assertion violation happens here. +// Warning 6328: (140-171): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol index 5adbd7095..1075480cb 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int8 x = 1; @@ -14,6 +12,8 @@ contract C { assert(x ^ y > 5); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (189-206): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\nz = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (247-264): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 7\ny = 3\nz = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (156-173): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\nz = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (214-231): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 7\ny = 3\nz = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol index 25414a97d..6d28cdbcf 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint8 x = 1; @@ -12,6 +10,8 @@ contract C { assert(x ^ y == 0x0000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (155-176): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (207-230): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (122-143): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (174-197): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bytes_new.sol b/test/libsolidity/smtCheckerTests/operators/bytes_new.sol index ccc27a0ac..e41c8740f 100644 --- a/test/libsolidity/smtCheckerTests/operators/bytes_new.sol +++ b/test/libsolidity/smtCheckerTests/operators/bytes_new.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes memory x = new bytes(0); @@ -33,6 +31,8 @@ contract C { assert(x[1] == 0x34); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (501-505): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() -// Warning 6368: (523-527): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6368: (468-472): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6368: (490-494): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add.sol b/test/libsolidity/smtCheckerTests/operators/compound_add.sol index 377849b54..804f7c3cb 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -10,5 +8,7 @@ contract C assert(y < 110); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (151-166): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 200\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (118-133): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 200\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol b/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol index e220eba3a..ab56d9504 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -18,5 +16,7 @@ contract C assert(array[p] < 110); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (295-317): CHC: Assertion violation happens here.\nCounterexample:\narray = [0, 200]\nx = 0\np = 1\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0]\nC.f(0, 1) +// Warning 6328: (262-284): CHC: Assertion violation happens here.\nCounterexample:\narray = [0, 200]\nx = 0\np = 1\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0]\nC.f(0, 1) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add_chain.sol b/test/libsolidity/smtCheckerTests/operators/compound_add_chain.sol index be6c363e1..f3f6821e0 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add_chain.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add_chain.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -14,3 +12,5 @@ contract C assert(a == 112); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol b/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol index 8b239ffef..70d75cf1c 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -11,5 +9,7 @@ contract C assert(map[p] < 110); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (198-218): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\np = 38\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) +// Warning 6328: (165-185): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\np = 38\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol index e91e0b840..6e6a106e2 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -8,5 +7,7 @@ contract C { assert(y == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 2\n\nTransaction trace:\nC.constructor()\nC.f(2) +// Warning 6328: (115-129): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 2\n\nTransaction trace:\nC.constructor()\nC.f(2) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol index b2b5ca8b1..bd81c17a4 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint[] array; constructor() { @@ -16,5 +15,7 @@ contract C { assert(array[p] == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (291-312): CHC: Assertion violation happens here.\nCounterexample:\narray = [2, 0]\nx = 2\np = 0\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0]\nC.f(2, 0) +// Warning 6328: (259-280): CHC: Assertion violation happens here.\nCounterexample:\narray = [2, 0]\nx = 2\np = 0\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0]\nC.f(2, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_3.sol b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_3.sol index a6395c6e6..e762eb4be 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { mapping (uint => uint) map; function f(uint x, uint p) public { @@ -9,5 +8,7 @@ contract C { assert(map[p] == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (194-213): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\np = 0\n\nTransaction trace:\nC.constructor()\nC.f(2, 0) +// Warning 6328: (162-181): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\np = 0\n\nTransaction trace:\nC.constructor()\nC.f(2, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_assignment_right_shift.sol b/test/libsolidity/smtCheckerTests/operators/compound_assignment_right_shift.sol index f49b1ae03..ca035131b 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_right_shift.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_right_shift.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int a, uint b) public view { a >>= tx.gasprice; @@ -8,4 +6,6 @@ contract C { assert(a == 4); // should hold } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_fixed_bytes.sol index 10f0a574b..03e25854e 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns (bytes1) { bytes1 a = 0xff; @@ -10,6 +9,8 @@ contract C { assert(a != 0); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (83-89): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 0\nb = 240\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6321: (51-57): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (177-191): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 0\nb = 240\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol index a2638b806..d634a1922 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int8 x = 1; @@ -17,5 +15,7 @@ contract C { assert(x == 127); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (81-95): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol index 06aab80c0..2e86c4b3a 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint v = 1; @@ -27,7 +25,9 @@ contract C { assert(y == 0xff); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (177-191): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (380-399): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 255\ny = 255\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (506-523): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (144-158): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (347-366): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 255\ny = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (473-490): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_fixed_bytes.sol index eac0b393e..c80c3fb65 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns (bytes1) { bytes1 a = 0xff; @@ -10,6 +9,8 @@ contract C { assert(a == 0); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (83-89): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 255\nb = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6321: (51-57): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (177-191): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 255\nb = 255\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol index 7a8d33575..5d92940b7 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int8 x = 1; @@ -17,5 +15,7 @@ contract C { assert(x == 127); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (81-95): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int_1.sol index 66ab51cce..8f7c69b2c 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[1][20] c; function f(bool b) public { @@ -8,13 +7,15 @@ contract C { assert(c[10][0] == 0 || c[10][0] == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (108-113): CHC: Out of bounds access might happen here. -// Warning 6368: (108-116): CHC: Out of bounds access might happen here. -// Warning 6368: (151-156): CHC: Out of bounds access might happen here. -// Warning 6368: (151-159): CHC: Out of bounds access might happen here. -// Warning 6368: (181-186): CHC: Out of bounds access might happen here. -// Warning 6368: (181-189): CHC: Out of bounds access might happen here. -// Warning 6368: (198-203): CHC: Out of bounds access might happen here. -// Warning 6368: (198-206): CHC: Out of bounds access might happen here. -// Warning 6328: (174-212): CHC: Assertion violation might happen here. +// Warning 6368: (76-81): CHC: Out of bounds access might happen here. +// Warning 6368: (76-84): CHC: Out of bounds access might happen here. +// Warning 6368: (119-124): CHC: Out of bounds access might happen here. +// Warning 6368: (119-127): CHC: Out of bounds access might happen here. +// Warning 6368: (149-154): CHC: Out of bounds access might happen here. +// Warning 6368: (149-157): CHC: Out of bounds access might happen here. +// Warning 6368: (166-171): CHC: Out of bounds access might happen here. +// Warning 6368: (166-174): CHC: Out of bounds access might happen here. +// Warning 6328: (142-180): CHC: Assertion violation might happen here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol index d7d9308ce..e36d166a5 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint v = 7; @@ -23,7 +21,9 @@ contract C { assert(x == 0xff00); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (298-315): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 7\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (424-443): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 7\nx = 65280\ny = 61951\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (265-282): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 7\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (391-410): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 7\nx = 65280\ny = 61951\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_1.sol index 625ffae39..802dd27ff 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint[1] c; function f(bool b) public { @@ -8,8 +7,10 @@ contract C { assert(c[0] <= 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (108-112): CHC: Out of bounds access might happen here. -// Warning 6368: (147-151): CHC: Out of bounds access might happen here. -// Warning 6368: (173-177): CHC: Out of bounds access might happen here. -// Warning 6328: (166-183): CHC: Assertion violation might happen here. +// Warning 6368: (76-80): CHC: Out of bounds access might happen here. +// Warning 6368: (115-119): CHC: Out of bounds access might happen here. +// Warning 6368: (141-145): CHC: Out of bounds access might happen here. +// Warning 6328: (134-151): CHC: Assertion violation might happen here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_2.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_2.sol index c85465e01..ff09f55fa 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { uint[] x; @@ -17,3 +16,5 @@ contract C { //assert(s.x[2] != 1); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_3.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_3.sol index b6e9af8a8..2650b0897 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { uint x; @@ -9,6 +8,8 @@ contract C { assert(s.x > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (157-172): CHC: Assertion violation might happen here. -// Warning 7812: (157-172): BMC: Assertion violation might happen here. +// Warning 6328: (125-140): CHC: Assertion violation might happen here. +// Warning 7812: (125-140): BMC: Assertion violation might happen here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal.sol index 6628a6884..a682f4692 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes memory y = "def"; @@ -15,6 +13,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (156-175): CHC: Assertion violation happens here. +// Warning 6328: (123-142): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_2.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_2.sol index 855fb3952..e142ee930 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes3 y = "def"; @@ -13,5 +11,7 @@ contract C { assert(y == (bytes3("def") | bytes3("dee")) ^ bytes3("fed")); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (180-198): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 6579559\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (147-165): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 6579559\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_3.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_3.sol index 2d0b48412..933f15980 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes32 y = "abcdefghabcdefghabcdefghabcdefgh"; @@ -16,6 +14,8 @@ contract C { assert(y == z ^ "abcdefghabcdefghabcdefghabcdefgh"); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (262-309): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 43595849750559157961410616371195012376776328331498503227444818324475146035296\nz = 43595849750559157961410616371195012376776328331498503227444818324475146035296\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (427-470): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 44959890247538927454655645290332771782915717053340361485195502024921998844258\nz = 44959890247538927454655645290332771782915717053340361485195502024921998844258\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (229-276): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 43595849750559157961410616371195012376776328331498503227444818324475146035296\nz = 43595849750559157961410616371195012376776328331498503227444818324475146035296\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (394-437): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 44959890247538927454655645290332771782915717053340361485195502024921998844258\nz = 44959890247538927454655645290332771782915717053340361485195502024921998844258\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_fixed_bytes.sol index 7b5b6d171..5d53d9132 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns (bytes1) { bytes1 a = 0xff; @@ -10,6 +9,8 @@ contract C { assert(a != 0xff); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (83-89): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (210-227): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 255\nb = 240\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6321: (51-57): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (178-195): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 255\nb = 240\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol index 148d84065..30ee76277 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int8 x = 1; @@ -14,5 +12,7 @@ contract C { assert(y == 5); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (81-95): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol index a665a8e7b..1e88cc52e 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint v = 7; @@ -23,7 +21,9 @@ contract C { assert(x == 0xff00); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (298-315): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 4\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (422-441): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 4\nx = 65280\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (265-282): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 4\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (389-408): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 4\nx = 65280\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_mul.sol b/test/libsolidity/smtCheckerTests/operators/compound_mul.sol index edf7a565b..4262cdd7c 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_mul.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_mul.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -10,5 +8,7 @@ contract C assert(y < 50); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 100\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (117-131): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 100\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol b/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol index 6223d7b19..8fcd46b94 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -13,5 +11,7 @@ contract C assert(array[p] < 50); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (259-280): CHC: Assertion violation happens here.\nCounterexample:\narray = [100]\nx = 0\np = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.q()\nState: array = [0]\nC.f(0, 0) +// Warning 6328: (226-247): CHC: Assertion violation happens here.\nCounterexample:\narray = [100]\nx = 0\np = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.q()\nState: array = [0]\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol b/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol index 9acecf49b..8725f6088 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -11,5 +9,7 @@ contract C assert(map[p] < 50); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (197-216): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\np = 38\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) +// Warning 6328: (164-183): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\np = 38\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_shl_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_shl_1.sol index 8ccc8a800..281543e1c 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_shl_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_shl_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b) public pure { uint v = 1000000; @@ -8,4 +6,6 @@ contract C { assert(v > 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/compound_shr_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_shr_1.sol index a2a7ca5ab..99469dc40 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_shr_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_shr_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b) public pure { uint v = 1; @@ -8,5 +6,7 @@ contract C { assert(v > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (117-130): CHC: Assertion violation happens here. +// Warning 6328: (84-97): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_sub.sol b/test/libsolidity/smtCheckerTests/operators/compound_sub.sol index ac625fce0..0c4394bb7 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_sub.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_sub.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -10,5 +8,7 @@ contract C assert(y < 90); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 90\ny = 90\n\nTransaction trace:\nC.constructor()\nC.f(90) +// Warning 6328: (117-131): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 90\ny = 90\n\nTransaction trace:\nC.constructor()\nC.f(90) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol b/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol index 7be5dfdf5..5c9b1181f 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -14,6 +12,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (259-280): CHC: Assertion violation happens here. +// Warning 6328: (226-247): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol b/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol index 2196afce2..9c8b27359 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -12,6 +10,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (197-216): CHC: Assertion violation happens here. +// Warning 6328: (164-183): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol index c2be2e47c..d0ce284e4 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(bool b) public pure { uint a = b ? 2 : 3; assert(a > 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (104-117): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\na = 2\n\nTransaction trace:\nC.constructor()\nC.f(true) +// Warning 6328: (71-84): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\na = 2\n\nTransaction trace:\nC.constructor()\nC.f(true) diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol index 7a9c56c2d..c33c12c29 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint b) public pure { require(b < 3); @@ -8,6 +6,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (132-146): CHC: Assertion violation happens here. +// Warning 6328: (99-113): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol index bd8f393d4..4dd9e8eff 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint a, uint b) public pure { require(a < 10); @@ -10,6 +8,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (161-174): CHC: Assertion violation happens here. +// Warning 6328: (128-141): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_4.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_4.sol index 87b48e982..7ddf07706 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_4.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() public virtual ; } @@ -21,5 +19,7 @@ contract C { x = 3; } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (273-279): Unused local variable. +// Warning 2072: (240-246): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol index eb3404919..24be3cd8e 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() public virtual ; } @@ -23,7 +21,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (282-288): Unused local variable. -// Warning 6328: (304-328): CHC: Assertion violation happens here. +// Warning 2072: (249-255): Unused local variable. +// Warning 6328: (271-295): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_6.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_6.sol index d1fe62aac..58afa2413 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_6.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() public virtual ; } @@ -22,5 +20,7 @@ contract C { x = 3; } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (288-294): Unused local variable. +// Warning 2072: (255-261): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_false.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_false.sol index 3f3eff797..714a87c1b 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_false.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_false.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint b) public pure returns (uint d) { require(b < 10); @@ -7,5 +5,7 @@ contract C { d = c > 5 ? 3 : 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (148-153): BMC: Condition is always false. +// Warning 6838: (115-120): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol index dfdc200da..a13f5f9f5 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b) public pure { require(b); @@ -7,6 +5,8 @@ contract C { assert(c < 5); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (118-131): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\nc = 5\n\nTransaction trace:\nC.constructor()\nC.f(true) -// Warning 6838: (105-106): BMC: Condition is always true. +// Warning 6328: (85-98): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\nc = 5\n\nTransaction trace:\nC.constructor()\nC.f(true) +// Warning 6838: (72-73): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_1.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_1.sol index 12b915080..dde02e24f 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint a) internal pure returns (bool b) { b = a > 5; @@ -9,5 +7,7 @@ contract C { assert(c > 5); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (203-216): CHC: Assertion violation happens here.\nCounterexample:\n\na = 6\nc = 3\n\nTransaction trace:\nC.constructor()\nC.g(6)\n C.f(6) -- internal call +// Warning 6328: (170-183): CHC: Assertion violation happens here.\nCounterexample:\n\na = 6\nc = 3\n\nTransaction trace:\nC.constructor()\nC.g(6)\n C.f(6) -- internal call diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol index e52f85b35..a448bf1cb 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint a) internal pure returns (uint b) { require(a < 1000); @@ -16,6 +14,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (378-392): CHC: Assertion violation happens here. +// Warning 6328: (345-359): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_always_true.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_always_true.sol index 562631dec..484d175b0 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_always_true.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_always_true.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b1, bool b2) public pure { require(b1 || b2); @@ -7,5 +5,7 @@ contract C { assert(c > 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (147-149): BMC: Condition is always true. +// Warning 6838: (114-116): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol index 00cf0d9af..71eaa8d6c 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(bool b1, bool b2) public pure { uint c = b1 ? 3 : (b2 ? 2 : 1); assert(c > 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (141-154): CHC: Assertion violation happens here.\nCounterexample:\n\nb1 = false\nb2 = false\nc = 1\n\nTransaction trace:\nC.constructor()\nC.f(false, false) +// Warning 6328: (108-121): CHC: Assertion violation happens here.\nCounterexample:\n\nb1 = false\nb2 = false\nc = 1\n\nTransaction trace:\nC.constructor()\nC.f(false, false) diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_statevar_1.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_statevar_1.sol index d44a03d6b..edd42e094 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_statevar_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_statevar_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint a; bool b; @@ -13,8 +11,11 @@ contract C { assert(c >= a); } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (167-173): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 4984: (176-179): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 2661: (167-173): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 2661: (176-179): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 1218: (134-140): CHC: Error trying to invoke SMT solver. +// Warning 4984: (134-140): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 4984: (143-146): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 2661: (134-140): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 2661: (143-146): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/const_exp_1.sol b/test/libsolidity/smtCheckerTests/operators/const_exp_1.sol index b906f0a72..d33defde9 100644 --- a/test/libsolidity/smtCheckerTests/operators/const_exp_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/const_exp_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint constant x = 2; uint constant y = x ** 10; @@ -10,6 +8,8 @@ contract C { assert(y == 14); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (98-206): Function state mutability can be restricted to pure -// Warning 6328: (172-187): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 1024\n\nTransaction trace:\nC.constructor()\nState: x = 2, y = 1024\nC.f() +// Warning 2018: (65-173): Function state mutability can be restricted to pure +// Warning 6328: (139-154): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 1024\n\nTransaction trace:\nC.constructor()\nState: x = 2, y = 1024\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/constant_propagation_1.sol b/test/libsolidity/smtCheckerTests/operators/constant_propagation_1.sol index 03cb70f86..74502ed2a 100644 --- a/test/libsolidity/smtCheckerTests/operators/constant_propagation_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/constant_propagation_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint constant DEPOSIT_CONTRACT_TREE_DEPTH = 32; uint constant MAX_DEPOSIT_COUNT = 2**DEPOSIT_CONTRACT_TREE_DEPTH - 1; @@ -9,5 +7,7 @@ contract C { assert(MAX_DEPOSIT_COUNT == 2); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (284-314): CHC: Assertion violation happens here.\nCounterexample:\nDEPOSIT_CONTRACT_TREE_DEPTH = 32, MAX_DEPOSIT_COUNT = 4294967295\n\nTransaction trace:\nC.constructor()\nState: DEPOSIT_CONTRACT_TREE_DEPTH = 32, MAX_DEPOSIT_COUNT = 4294967295\nC.f() +// Warning 6328: (251-281): CHC: Assertion violation happens here.\nCounterexample:\nDEPOSIT_CONTRACT_TREE_DEPTH = 32, MAX_DEPOSIT_COUNT = 4294967295\n\nTransaction trace:\nC.constructor()\nState: DEPOSIT_CONTRACT_TREE_DEPTH = 32, MAX_DEPOSIT_COUNT = 4294967295\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/constant_propagation_2.sol b/test/libsolidity/smtCheckerTests/operators/constant_propagation_2.sol index 2aadde8e9..9a1d4eae4 100644 --- a/test/libsolidity/smtCheckerTests/operators/constant_propagation_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/constant_propagation_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint constant x = 7; uint constant y = 3; @@ -12,3 +10,5 @@ contract C { assert(z * 3 != 7); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array.sol b/test/libsolidity/smtCheckerTests/operators/delete_array.sol index 059a2bab2..fb71fc03b 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -16,5 +14,7 @@ contract C assert(a.length == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (154-155): BMC: Condition is always true. +// Warning 6838: (121-122): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array_2d.sol b/test/libsolidity/smtCheckerTests/operators/delete_array_2d.sol index d718a7729..989be3a64 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array_2d.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; @@ -16,3 +14,5 @@ contract C assert(a[2][3] == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array_index.sol b/test/libsolidity/smtCheckerTests/operators/delete_array_index.sol index 12ed1ba03..ea9c4f55a 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array_index.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -19,5 +17,7 @@ contract C assert(a[2] == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (187-188): BMC: Condition is always false. +// Warning 6838: (154-155): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol b/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol index ad9540acf..b0ec97d98 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; @@ -9,33 +7,24 @@ contract C function init() internal { a.push(); a.push(); - a.push(); + a[0].push(); a[1].push(); - a[1].push(); - a[2].push(); - a[2].push(); } function f(bool b) public { - a[1][1] = 512; + // Removed due to Spacer's nondeterminism. + //a[1][1] = 512; if (b) delete a; else - delete a[2]; + delete a[1]; init(); - assert(a[2][3] == 0); - assert(a[1][1] == 0); + assert(a[1][0] == 0); + assert(a[0][0] == 0); } } // ==== -// SMTSolvers: z3 +// SMTEngine: all +// SMTIgnoreCex: yes // ---- -// Warning 6368: (247-251): CHC: Out of bounds access might happen here. -// Warning 6368: (247-254): CHC: Out of bounds access might happen here. -// Warning 6368: (301-305): CHC: Out of bounds access might happen here. -// Warning 6368: (326-330): CHC: Out of bounds access might happen here. -// Warning 6368: (326-333): CHC: Out of bounds access might happen here. -// Warning 6328: (319-339): CHC: Assertion violation might happen here. -// Warning 6368: (350-354): CHC: Out of bounds access might happen here. -// Warning 6368: (350-357): CHC: Out of bounds access might happen here. -// Warning 6328: (343-363): CHC: Assertion violation might happen here. -// Warning 4661: (343-363): BMC: Assertion violation happens here. +// Warning 6328: (315-335): CHC: Assertion violation might happen here. +// Warning 4661: (315-335): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol b/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol index ce3813345..9d6576604 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function s() public { @@ -14,6 +13,8 @@ contract C { assert(array2d[length - 1][length2 - 1] != 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (175-222): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[]]\nlength = 0\nlength2 = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.s() -// Warning 6328: (395-440): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [0]]\nlength = 2\nlength2 = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.s() +// Warning 6328: (143-190): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[]]\nlength = 0\nlength2 = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.s() +// Warning 6328: (363-408): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [0]]\nlength = 2\nlength2 = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.s() diff --git a/test/libsolidity/smtCheckerTests/operators/delete_function.sol b/test/libsolidity/smtCheckerTests/operators/delete_function.sol index 697e2e4a0..f40a02c93 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_function.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -27,5 +25,7 @@ contract C assert(a[1] == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (295-296): BMC: Condition is always true. +// Warning 6838: (262-263): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol b/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol index 4f82f9e7d..7849a7858 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; uint[][] b; @@ -56,5 +54,6 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/delete_struct.sol b/test/libsolidity/smtCheckerTests/operators/delete_struct.sol index 01fa7558b..cb68e6d4b 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_struct.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_struct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S @@ -16,4 +14,6 @@ contract C assert(s.x == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/delete_tuple.sol b/test/libsolidity/smtCheckerTests/operators/delete_tuple.sol index cb37864d5..deaa7f06c 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_tuple.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_tuple.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - contract A{ function f() public pure { delete ([""][0]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/div_zero.sol b/test/libsolidity/smtCheckerTests/operators/div_zero.sol index da6ea8b53..d1841abd3 100644 --- a/test/libsolidity/smtCheckerTests/operators/div_zero.sol +++ b/test/libsolidity/smtCheckerTests/operators/div_zero.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { uint z = 0; uint x = 2 / z; } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (69-74): CHC: Division by zero happens here.\nCounterexample:\nz = 0, x = 0\n\nTransaction trace:\nC.constructor() +// Warning 4281: (36-41): CHC: Division by zero happens here.\nCounterexample:\nz = 0, x = 0\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/operators/division_1.sol b/test/libsolidity/smtCheckerTests/operators/division_1.sol index 73529d737..d37420b0f 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_1.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(uint x, uint y) public pure returns (uint) { return x / y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (111-116): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 4281: (79-84): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/division_2.sol b/test/libsolidity/smtCheckerTests/operators/division_2.sol index 9ccf84c47..21d1ff912 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_2.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(uint x, uint y) public pure returns (uint) { require(y != 0); return x / y; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/division_3.sol b/test/libsolidity/smtCheckerTests/operators/division_3.sol index ed9cf203b..67c144063 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_3.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure returns (int) { require(y != 0); return x / y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (127-132): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\ny = (- 1)\n = 0\n\nTransaction trace:\nC.constructor()\nC.f((- 57896044618658097711785492504343953926634992332820282019728792003956564819968), (- 1)) +// Warning 4984: (95-100): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\ny = (- 1)\n = 0\n\nTransaction trace:\nC.constructor()\nC.f((- 57896044618658097711785492504343953926634992332820282019728792003956564819968), (- 1)) diff --git a/test/libsolidity/smtCheckerTests/operators/division_4.sol b/test/libsolidity/smtCheckerTests/operators/division_4.sol index 90143db21..57ca07d84 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_4.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure returns (int) { require(y != 0); @@ -6,4 +5,6 @@ contract C { return x / y; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/division_5.sol b/test/libsolidity/smtCheckerTests/operators/division_5.sol index bf51ebbcd..5b5c368c0 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_5.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_5.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function mul(uint8 a, uint8 b) internal pure returns (uint8) { uint8 c; @@ -9,5 +8,7 @@ contract C { return c; } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (161-171): BMC: Condition is always true. +// Warning 6838: (129-139): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/division_6.sol b/test/libsolidity/smtCheckerTests/operators/division_6.sol index c129a0c60..741bfa0b5 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_6.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_6.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function mul(uint8 a, uint8 b) public pure returns (uint8) { if (a == 0) { @@ -9,6 +8,8 @@ contract C { return c; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (152-157): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\na = 128\nb = 2\n = 0\nc = 0\n\nTransaction trace:\nC.constructor()\nC.mul(128, 2) -// Warning 6838: (169-179): BMC: Condition is always true. +// Warning 4984: (120-125): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\na = 128\nb = 2\n = 0\nc = 0\n\nTransaction trace:\nC.constructor()\nC.mul(128, 2) +// Warning 6838: (137-147): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/division_7.sol b/test/libsolidity/smtCheckerTests/operators/division_7.sol index bcde257eb..714f15c31 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_7.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_7.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0); @@ -6,3 +5,5 @@ contract C { return c; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_1.sol b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_1.sol index ddffc10fd..93765e175 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x, uint y) public pure { x = 7; @@ -6,4 +5,6 @@ contract C { assert(x / y == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_2.sol b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_2.sol index 985e7fdeb..7c0218e35 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { x = 7; @@ -6,4 +5,6 @@ contract C { assert(x / y == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_3.sol b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_3.sol index 58dc80262..715930c5e 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { x = -7; @@ -6,4 +5,6 @@ contract C { assert(x / y == -3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_4.sol b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_4.sol index 44f34fb2a..d0d9d20d7 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_4.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { x = 7; @@ -6,4 +5,6 @@ contract C { assert(x / y == -3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_5.sol b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_5.sol index 87f048482..87a809879 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_5.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_5.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { x = -7; @@ -6,4 +5,6 @@ contract C { assert(x / y == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/exp.sol b/test/libsolidity/smtCheckerTests/operators/exp.sol index 05330643d..12b666970 100644 --- a/test/libsolidity/smtCheckerTests/operators/exp.sol +++ b/test/libsolidity/smtCheckerTests/operators/exp.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; contract D { function f(uint x) public pure { assert(x**2 == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 5188: (88-92): Assertion checker does not yet implement this operator. -// Warning 6328: (81-98): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nD.constructor()\nD.f(0) -// Warning 5188: (88-92): Assertion checker does not yet implement this operator. +// Warning 5188: (56-60): Assertion checker does not yet implement this operator. +// Warning 6328: (49-66): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nD.constructor()\nD.f(0) +// Warning 5188: (56-60): Assertion checker does not yet implement this operator. diff --git a/test/libsolidity/smtCheckerTests/operators/fixed_point_add.sol b/test/libsolidity/smtCheckerTests/operators/fixed_point_add.sol index c767d1f32..96d8c523d 100644 --- a/test/libsolidity/smtCheckerTests/operators/fixed_point_add.sol +++ b/test/libsolidity/smtCheckerTests/operators/fixed_point_add.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract test { function f() internal pure { ufixed a = uint64(1) + ufixed(2); } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (80-88): Unused local variable. +// Warning 2072: (48-56): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/operators/fixed_point_compound_add.sol b/test/libsolidity/smtCheckerTests/operators/fixed_point_compound_add.sol index 8a8af3a5c..ac714c2f5 100644 --- a/test/libsolidity/smtCheckerTests/operators/fixed_point_compound_add.sol +++ b/test/libsolidity/smtCheckerTests/operators/fixed_point_compound_add.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { fixed[] b; function f() internal { b[0] += 1; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol b/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol index f26ef0238..33011472b 100644 --- a/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol +++ b/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; library L { function l(uint x, uint y) internal pure returns (uint) { return x + y; @@ -28,5 +27,7 @@ contract C { assert(b == 6); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (507-521): CHC: Assertion violation happens here.\nCounterexample:\n\na = 2\nb = 2\n\nTransaction trace:\nC.constructor()\nC.call()\n L.l(2, 3) -- internal call\n L.l(3, 3) -- internal call\n C.f(1, 2, true) -- internal call\n C.f(1, 2, false) -- internal call +// Warning 6328: (475-489): CHC: Assertion violation happens here.\nCounterexample:\n\na = 2\nb = 2\n\nTransaction trace:\nC.constructor()\nC.call()\n L.l(2, 3) -- internal call\n L.l(3, 3) -- internal call\n C.f(1, 2, true) -- internal call\n C.f(1, 2, false) -- internal call diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol b/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol index 849da3173..8a27f6f63 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes memory x = hex"00112233"; @@ -8,5 +6,7 @@ contract C { assert(x.length == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (185-206): CHC: Assertion violation happens here.\nCounterexample:\n\nx = [0, 17, 34, 51]\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (152-173): CHC: Assertion violation happens here.\nCounterexample:\n\nx = [0, 17, 34, 51]\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_for_bytesNN.sol b/test/libsolidity/smtCheckerTests/operators/index_access_for_bytesNN.sol index 65ea05950..0bf80482a 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_for_bytesNN.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_for_bytesNN.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { bytes20 x; function f(bytes16 b) public view { b[uint8(x[2])]; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol b/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol index 61fc8bf70..b1c8e3837 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { string memory x = "\x12\x34"; @@ -9,4 +7,6 @@ contract C { assert(y.length == 2); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol b/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol index e43899bea..cadcabdfe 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; constructor() { @@ -20,10 +18,11 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (240-244): CHC: Out of bounds access happens here. -// Warning 6368: (254-258): CHC: Out of bounds access happens here. -// Warning 6368: (304-310): CHC: Out of bounds access happens here. -// Warning 6368: (325-331): CHC: Out of bounds access happens here. -// Warning 6328: (318-337): CHC: Assertion violation happens here. +// Warning 6368: (207-211): CHC: Out of bounds access happens here. +// Warning 6368: (221-225): CHC: Out of bounds access happens here. +// Warning 6368: (271-277): CHC: Out of bounds access happens here. +// Warning 6368: (292-298): CHC: Out of bounds access happens here. +// Warning 6328: (285-304): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/integer_new.sol b/test/libsolidity/smtCheckerTests/operators/integer_new.sol index e68e39dcf..bd52a4eb4 100644 --- a/test/libsolidity/smtCheckerTests/operators/integer_new.sol +++ b/test/libsolidity/smtCheckerTests/operators/integer_new.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint[] memory x = new uint[](0); @@ -33,6 +31,8 @@ contract C { assert(x[1] == 0x34); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (507-511): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() -// Warning 6368: (529-533): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6368: (474-478): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6368: (496-500): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() diff --git a/test/libsolidity/smtCheckerTests/operators/mod.sol b/test/libsolidity/smtCheckerTests/operators/mod.sol index f147d7c0a..5c867b629 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { require(y == -10); @@ -8,4 +7,6 @@ contract C { assert(z1 == z2); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/mod_even.sol b/test/libsolidity/smtCheckerTests/operators/mod_even.sol index b91b06fa8..804b8fb79 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod_even.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod_even.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -8,4 +6,6 @@ contract C assert((y % 2) == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/mod_n.sol b/test/libsolidity/smtCheckerTests/operators/mod_n.sol index 9db8855db..c1bd2d40a 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod_n.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod_n.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure { @@ -8,4 +6,6 @@ contract C assert(z < y); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/mod_n_uint16.sol b/test/libsolidity/smtCheckerTests/operators/mod_n_uint16.sol index eb13ab3a8..27c296812 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod_n_uint16.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod_n_uint16.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint16 x, uint16 y) public pure { @@ -8,4 +6,6 @@ contract C assert(z < 100_000); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/mod_signed.sol b/test/libsolidity/smtCheckerTests/operators/mod_signed.sol index 8588fcf9a..8dc9355ce 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod_signed.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod_signed.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { require(y != 0); @@ -9,5 +8,7 @@ contract C { assert((x >= 0 && z1 >=0) || (x <= 0 && z1 <= 0)); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (163-180): CHC: Assertion violation might happen here. +// Warning 6328: (131-148): CHC: Assertion violation might happen here. diff --git a/test/libsolidity/smtCheckerTests/operators/named_arguments_in_any_order.sol b/test/libsolidity/smtCheckerTests/operators/named_arguments_in_any_order.sol index 805698357..79b7a4860 100644 --- a/test/libsolidity/smtCheckerTests/operators/named_arguments_in_any_order.sol +++ b/test/libsolidity/smtCheckerTests/operators/named_arguments_in_any_order.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint u, string memory s, bool b) internal {} @@ -11,4 +10,6 @@ contract C { f({b: true, u: 1, s: "abc"}); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/named_arguments_overload_in_any_order.sol b/test/libsolidity/smtCheckerTests/operators/named_arguments_overload_in_any_order.sol index 840033a8b..7dd63d010 100644 --- a/test/libsolidity/smtCheckerTests/operators/named_arguments_overload_in_any_order.sol +++ b/test/libsolidity/smtCheckerTests/operators/named_arguments_overload_in_any_order.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint u, string memory s, bool b) internal {} function f(uint u, uint s, uint b) internal {} @@ -12,4 +11,6 @@ contract C { f({b: true, u: 1, s: "abc"}); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_left.sol b/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_left.sol index 442bd3a77..334464c0c 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_left.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_left.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint256 a, uint256 b) internal pure returns (uint256) { a <<= b; @@ -12,4 +10,6 @@ contract C { assert(f(0x4266, 0x4266) == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_right.sol b/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_right.sol index 75dc0fe0d..3722a9976 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_right.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_right.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint256 a, uint256 b) internal pure returns (uint256) { a >>= b; @@ -12,4 +10,6 @@ contract C { assert(f(57896044618658097711785492504343953926634992332820282019728792003956564819968, 5) == 1809251394333065553493296640760748560207343510400633813116524750123642650624); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol index 71459c559..86f4be1bd 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (uint16 x) { unchecked { @@ -14,6 +12,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (215-230): CHC: Assertion violation happens here. +// Warning 6328: (182-197): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left.sol index c489553fe..2dd96ac75 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint256 a, uint256 b) internal pure returns (uint256) { return a << b; @@ -22,8 +20,10 @@ contract C { assert(f(0x4266, 0x4266) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (250-282): CHC: Assertion violation happens here. -// Warning 6328: (363-397): CHC: Assertion violation happens here. -// Warning 6328: (537-630): CHC: Assertion violation happens here. -// Warning 6328: (707-737): CHC: Assertion violation happens here. +// Warning 6328: (217-249): CHC: Assertion violation happens here. +// Warning 6328: (330-364): CHC: Assertion violation happens here. +// Warning 6328: (504-597): CHC: Assertion violation happens here. +// Warning 6328: (674-704): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_larger_type.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_larger_type.sol index 998efd6bf..3b0557c42 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_larger_type.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_larger_type.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (int8) { uint8 x = 254; @@ -10,5 +8,7 @@ contract C { return y << x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (171-191): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nx = 254\ny = 1\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (138-158): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nx = 254\ny = 1\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint32.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint32.sol index 709de607e..c900c66ed 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint32.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint32.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint32 a, uint32 b) internal pure returns (uint256) { return a << b; @@ -22,8 +20,10 @@ contract C { assert(f(0x4266, 0x20) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (246-276): CHC: Assertion violation happens here. -// Warning 6328: (360-398): CHC: Assertion violation happens here. -// Warning 6328: (482-518): CHC: Assertion violation happens here. -// Warning 6328: (593-621): CHC: Assertion violation happens here. +// Warning 6328: (213-243): CHC: Assertion violation happens here. +// Warning 6328: (327-365): CHC: Assertion violation happens here. +// Warning 6328: (449-485): CHC: Assertion violation happens here. +// Warning 6328: (560-588): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint8.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint8.sol index 03658f236..9210c12e6 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint8.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 a, uint8 b) internal pure returns (uint256) { return a << b; @@ -14,6 +12,8 @@ contract C { assert(f(0x66, 0x8) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (242-271): CHC: Assertion violation happens here. -// Warning 6328: (343-368): CHC: Assertion violation happens here. +// Warning 6328: (209-238): CHC: Assertion violation happens here. +// Warning 6328: (310-335): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_overflow.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_overflow.sol index e636b8968..fcf699f22 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_overflow.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_overflow.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function leftU(uint8 x, uint8 y) internal pure returns (uint8) { return x << y; @@ -31,9 +29,11 @@ contract C { assert(leftS(1, 6) == -64); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (340-366): CHC: Assertion violation happens here. -// Warning 6328: (441-469): CHC: Assertion violation happens here. -// Warning 6328: (544-570): CHC: Assertion violation happens here. -// Warning 6328: (644-670): CHC: Assertion violation happens here. -// Warning 6328: (742-768): CHC: Assertion violation happens here. +// Warning 6328: (307-333): CHC: Assertion violation happens here. +// Warning 6328: (408-436): CHC: Assertion violation happens here. +// Warning 6328: (511-537): CHC: Assertion violation happens here. +// Warning 6328: (611-637): CHC: Assertion violation happens here. +// Warning 6328: (709-735): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right.sol index da8c52414..f14f1c927 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint256 a, uint256 b) internal pure returns (uint256) { return a >> b; @@ -22,8 +20,10 @@ contract C { assert(f(57896044618658097711785492504343953926634992332820282019728792003956564819968, 5) == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (248-277): CHC: Assertion violation happens here. -// Warning 6328: (354-385): CHC: Assertion violation happens here. -// Warning 6328: (460-488): CHC: Assertion violation happens here. -// Warning 6328: (706-802): CHC: Assertion violation happens here. +// Warning 6328: (215-244): CHC: Assertion violation happens here. +// Warning 6328: (321-352): CHC: Assertion violation happens here. +// Warning 6328: (427-455): CHC: Assertion violation happens here. +// Warning 6328: (673-769): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_literal.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_literal.sol index 4acb0dffd..5cc26ee78 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_literal.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_literal.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int16 x, uint16 y, int16 z) internal pure returns (bool) { return x >> y == z; @@ -31,10 +29,12 @@ contract C { assert(f(-4266, 17, -0)); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (241-266): CHC: Assertion violation happens here. -// Warning 6328: (339-365): CHC: Assertion violation happens here. -// Warning 6328: (437-463): CHC: Assertion violation happens here. -// Warning 6328: (534-557): CHC: Assertion violation happens here. -// Warning 6328: (628-652): CHC: Assertion violation happens here. -// Warning 6328: (723-747): CHC: Assertion violation happens here. +// Warning 6328: (208-233): CHC: Assertion violation happens here. +// Warning 6328: (306-332): CHC: Assertion violation happens here. +// Warning 6328: (404-430): CHC: Assertion violation happens here. +// Warning 6328: (501-524): CHC: Assertion violation happens here. +// Warning 6328: (595-619): CHC: Assertion violation happens here. +// Warning 6328: (690-714): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue.sol index 79a0eeedf..2e0411f7b 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int256 a, uint256 b) internal pure returns (int256) { return a >> b; @@ -31,10 +29,12 @@ contract C { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (244-271): CHC: Assertion violation happens here. -// Warning 6328: (346-375): CHC: Assertion violation happens here. -// Warning 6328: (449-476): CHC: Assertion violation happens here. -// Warning 6328: (549-574): CHC: Assertion violation happens here. -// Warning 6328: (647-672): CHC: Assertion violation happens here. -// Warning 6328: (745-770): CHC: Assertion violation happens here. +// Warning 6328: (211-238): CHC: Assertion violation happens here. +// Warning 6328: (313-342): CHC: Assertion violation happens here. +// Warning 6328: (416-443): CHC: Assertion violation happens here. +// Warning 6328: (516-541): CHC: Assertion violation happens here. +// Warning 6328: (614-639): CHC: Assertion violation happens here. +// Warning 6328: (712-737): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int16.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int16.sol index 28008e6de..3c145a1ad 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int16.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int16.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int16 a, uint16 b) internal pure returns (int256) { return a >> b; @@ -30,10 +28,12 @@ contract C { assert(f(-4266, 17) == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (242-269): CHC: Assertion violation happens here. -// Warning 6328: (344-373): CHC: Assertion violation happens here. -// Warning 6328: (447-474): CHC: Assertion violation happens here. -// Warning 6328: (547-572): CHC: Assertion violation happens here. -// Warning 6328: (645-670): CHC: Assertion violation happens here. -// Warning 6328: (743-768): CHC: Assertion violation happens here. +// Warning 6328: (209-236): CHC: Assertion violation happens here. +// Warning 6328: (311-340): CHC: Assertion violation happens here. +// Warning 6328: (414-441): CHC: Assertion violation happens here. +// Warning 6328: (514-539): CHC: Assertion violation happens here. +// Warning 6328: (612-637): CHC: Assertion violation happens here. +// Warning 6328: (710-735): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int32.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int32.sol index 62332e446..a64734d7d 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int32.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int32.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int32 a, uint32 b) internal pure returns (int256) { return a >> b; @@ -30,10 +28,12 @@ contract C { assert(f(-4266, 17) == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (242-269): CHC: Assertion violation happens here. -// Warning 6328: (344-373): CHC: Assertion violation happens here. -// Warning 6328: (447-474): CHC: Assertion violation happens here. -// Warning 6328: (547-572): CHC: Assertion violation happens here. -// Warning 6328: (645-670): CHC: Assertion violation happens here. -// Warning 6328: (743-768): CHC: Assertion violation happens here. +// Warning 6328: (209-236): CHC: Assertion violation happens here. +// Warning 6328: (311-340): CHC: Assertion violation happens here. +// Warning 6328: (414-441): CHC: Assertion violation happens here. +// Warning 6328: (514-539): CHC: Assertion violation happens here. +// Warning 6328: (612-637): CHC: Assertion violation happens here. +// Warning 6328: (710-735): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int8.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int8.sol index 103bf22d3..eaab703db 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int8.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int8 a, uint8 b) internal pure returns (int256) { return a >> b; @@ -30,10 +28,12 @@ contract C { assert(f(-66, 17) == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (236-259): CHC: Assertion violation happens here. -// Warning 6328: (330-353): CHC: Assertion violation happens here. -// Warning 6328: (423-446): CHC: Assertion violation happens here. -// Warning 6328: (516-539): CHC: Assertion violation happens here. -// Warning 6328: (610-633): CHC: Assertion violation happens here. -// Warning 6328: (704-727): CHC: Assertion violation happens here. +// Warning 6328: (203-226): CHC: Assertion violation happens here. +// Warning 6328: (297-320): CHC: Assertion violation happens here. +// Warning 6328: (390-413): CHC: Assertion violation happens here. +// Warning 6328: (483-506): CHC: Assertion violation happens here. +// Warning 6328: (577-600): CHC: Assertion violation happens here. +// Warning 6328: (671-694): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint32.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint32.sol index 1d7269f6c..cfe4cc8d0 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint32.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint32.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint32 a, uint32 b) internal pure returns (uint256) { return a >> b; @@ -22,8 +20,10 @@ contract C { assert(f(0x4266, 0x11) == 255); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (246-275): CHC: Assertion violation happens here. -// Warning 6328: (350-379): CHC: Assertion violation happens here. -// Warning 6328: (454-484): CHC: Assertion violation happens here. -// Warning 6328: (559-589): CHC: Assertion violation happens here. +// Warning 6328: (213-242): CHC: Assertion violation happens here. +// Warning 6328: (317-346): CHC: Assertion violation happens here. +// Warning 6328: (421-451): CHC: Assertion violation happens here. +// Warning 6328: (526-556): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint8.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint8.sol index 677f97081..7738e30fe 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint8.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 a, uint8 b) internal pure returns (uint256) { return a >> b; @@ -14,6 +12,8 @@ contract C { assert(f(0x66, 8) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (240-265): CHC: Assertion violation happens here. -// Warning 6328: (335-358): CHC: Assertion violation happens here. +// Warning 6328: (207-232): CHC: Assertion violation happens here. +// Warning 6328: (302-325): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_underflow_negative_rvalue.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_underflow_negative_rvalue.sol index 56591e697..9d8c3e796 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_underflow_negative_rvalue.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_underflow_negative_rvalue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int256 a, uint256 b) internal pure returns (int256) { return a << b; @@ -19,6 +17,8 @@ contract C { assert(g(1, 2**256 - 1) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (345-374): CHC: Assertion violation happens here. -// Warning 6328: (450-479): CHC: Assertion violation happens here. +// Warning 6328: (312-341): CHC: Assertion violation happens here. +// Warning 6328: (417-446): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shr_unused.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shr_unused.sol index d9e78865f..c39cdc7d1 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shr_unused.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shr_unused.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { fixed x; assert(x >>> 6 == 0); } } +// ==== +// SMTEngine: all // ---- // UnimplementedFeatureError: Not yet implemented - FixedPointType. diff --git a/test/libsolidity/smtCheckerTests/operators/slice.sol b/test/libsolidity/smtCheckerTests/operators/slice.sol index 26fcf195d..068122a66 100644 --- a/test/libsolidity/smtCheckerTests/operators/slice.sol +++ b/test/libsolidity/smtCheckerTests/operators/slice.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata b) external pure { require(b.length > 10); @@ -11,4 +9,6 @@ contract C { //assert(bytes(b[10:20])[5] == 0xff); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/slice_bytes.sol b/test/libsolidity/smtCheckerTests/operators/slice_bytes.sol index 299d3ff5b..19490af51 100644 --- a/test/libsolidity/smtCheckerTests/operators/slice_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/slice_bytes.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(bytes calldata b) external pure { require(b.length > 10); ((b[:])[5]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/slice_default_end.sol b/test/libsolidity/smtCheckerTests/operators/slice_default_end.sol index 9bf06e68e..9c0db9007 100644 --- a/test/libsolidity/smtCheckerTests/operators/slice_default_end.sol +++ b/test/libsolidity/smtCheckerTests/operators/slice_default_end.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata b) external pure { require(b.length == 30); @@ -11,6 +9,8 @@ contract C { //assert(bytes(b[10:])[19] == 0xaa); // Removed because of Spacer nondeterminism } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (221-253): CHC: Assertion violation might happen here. -// Warning 4661: (221-253): BMC: Assertion violation happens here. +// Warning 6328: (188-220): CHC: Assertion violation might happen here. +// Warning 4661: (188-220): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/slice_default_start.sol b/test/libsolidity/smtCheckerTests/operators/slice_default_start.sol index 31e236645..a4dba47bc 100644 --- a/test/libsolidity/smtCheckerTests/operators/slice_default_start.sol +++ b/test/libsolidity/smtCheckerTests/operators/slice_default_start.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata b) external pure { require(b.length > 20); @@ -9,7 +7,9 @@ contract C { assert(bytes(b[:20])[5] == 0xff); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (183-215): CHC: Assertion violation might happen here. -// Warning 6328: (219-251): CHC: Assertion violation happens here. -// Warning 4661: (183-215): BMC: Assertion violation happens here. +// Warning 6328: (150-182): CHC: Assertion violation might happen here. +// Warning 6328: (186-218): CHC: Assertion violation happens here. +// Warning 4661: (150-182): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/slices_1.sol b/test/libsolidity/smtCheckerTests/operators/slices_1.sol index 1f5fcf4e1..393c94898 100644 --- a/test/libsolidity/smtCheckerTests/operators/slices_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/slices_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata x) external pure { x[:18726387213]; @@ -7,4 +5,6 @@ contract C { x[18726387213:111111111111111111]; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/slices_2.sol b/test/libsolidity/smtCheckerTests/operators/slices_2.sol index 5858bf4ae..95ca60cc4 100644 --- a/test/libsolidity/smtCheckerTests/operators/slices_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/slices_2.sol @@ -1,5 +1,6 @@ -pragma experimental SMTChecker; contract e { function f(uint[] calldata) internal {} function h(uint[] calldata c) external { f(c[:]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/slices_3.sol b/test/libsolidity/smtCheckerTests/operators/slices_3.sol index 903fdc0c3..fa901ea01 100644 --- a/test/libsolidity/smtCheckerTests/operators/slices_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/slices_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { int[] s; function f(int[] calldata b, uint256 start, uint256 end) public returns (int) { @@ -12,6 +10,8 @@ function f(int[] calldata b, uint256 start, uint256 end) public returns (int) { return s[0]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (259-290): CHC: Assertion violation might happen here. -// Warning 4661: (259-290): BMC: Assertion violation happens here. +// Warning 6328: (226-257): CHC: Assertion violation might happen here. +// Warning 4661: (226-257): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/tuple_rationals_conditional.sol b/test/libsolidity/smtCheckerTests/operators/tuple_rationals_conditional.sol index cdcff3f4f..93403d790 100644 --- a/test/libsolidity/smtCheckerTests/operators/tuple_rationals_conditional.sol +++ b/test/libsolidity/smtCheckerTests/operators/tuple_rationals_conditional.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { (uint a, uint b) = x ? (10000000001, 2) : (3, 4); @@ -9,3 +7,5 @@ contract C { assert(b % 2 == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add.sol b/test/libsolidity/smtCheckerTests/operators/unary_add.sol index 3ea8d5566..1b304dd4b 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -13,5 +11,7 @@ contract C assert(b < 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (194-207): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 4\na = 3\nb = 3\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (161-174): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 4\na = 3\nb = 3\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol index d5c827cef..8c3296e09 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -19,6 +17,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (311-324): CHC: Assertion violation happens here. +// Warning 6328: (278-291): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_1.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_1.sol index b46d163a2..03dedaae9 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint[] x; function f() public { @@ -9,5 +8,7 @@ contract C { assert(x[0] == 42); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (182-200): CHC: Assertion violation happens here.\nCounterexample:\nx = [1]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.f() +// Warning 6328: (150-168): CHC: Assertion violation happens here.\nCounterexample:\nx = [1]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_2.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_2.sol index db21f7956..acc199b6b 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { int[][] d; @@ -17,3 +15,5 @@ contract C { ++data[1].d[3].push(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol index ac136acd2..e52f3f3e3 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -15,6 +13,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (244-257): CHC: Assertion violation happens here. +// Warning 6328: (211-224): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_minus_overflow_detected.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_minus_overflow_detected.sol index cba26cbba..3ab970900 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_minus_overflow_detected.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_minus_overflow_detected.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint8 x; @@ -20,7 +19,9 @@ contract C { } */ } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (87-90): CHC: Overflow (resulting value larger than 255) might happen here. -// Warning 3944: (127-130): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.dec_pre() -// Warning 2661: (87-90): BMC: Overflow (resulting value larger than 255) happens here. +// Warning 4984: (55-58): CHC: Overflow (resulting value larger than 255) might happen here. +// Warning 3944: (95-98): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.dec_pre() +// Warning 2661: (55-58): BMC: Overflow (resulting value larger than 255) happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly.sol index 2e4ebf64f..66b37ec12 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint8 x = 254; @@ -12,5 +10,7 @@ contract C { assert(y < 256); } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (94-97): CHC: Overflow (resulting value larger than 255) happens here. +// Warning 4984: (61-64): CHC: Overflow (resulting value larger than 255) happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly_struct.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly_struct.sol index 7e1791776..55a320edc 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly_struct.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly_struct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint8 x; @@ -20,5 +18,7 @@ contract C { assert(y < 256); } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (145-150): CHC: Overflow (resulting value larger than 255) happens here. +// Warning 4984: (112-117): CHC: Overflow (resulting value larger than 255) happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_1.sol b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_1.sol index 69411e3c2..9a6b83e0e 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool b) public pure { uint x; @@ -9,3 +8,5 @@ contract C { assert(!b); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_2.sol b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_2.sol index c16f01402..261bdbaf7 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool b) public pure { uint x; @@ -9,3 +8,5 @@ contract C { assert(!b); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol index 59fa83a08..90b8a02bd 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool b) public pure { uint x; @@ -8,5 +7,7 @@ contract C { assert(!b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (140-150): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(true) +// Warning 6328: (108-118): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(true) diff --git a/test/libsolidity/smtCheckerTests/operators/unary_sub.sol b/test/libsolidity/smtCheckerTests/operators/unary_sub.sol index 614e7d272..ada46b98f 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_sub.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_sub.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -13,5 +11,7 @@ contract C assert(b > 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (194-207): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\na = 4\nb = 4\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (161-174): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\na = 4\nb = 4\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol b/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol index dd2e376b7..657cece75 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -17,6 +15,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (308-321): CHC: Assertion violation happens here. +// Warning 6328: (275-288): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol b/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol index 0d91d3638..49ece2592 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -15,6 +13,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (244-257): CHC: Assertion violation happens here. +// Warning 6328: (211-224): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_1.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_1.sol index 2f109534e..230a9a117 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_1.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; uint l; @@ -18,9 +16,11 @@ contract C { return a[l]; // oob access } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (145-148): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 3944: (214-217): CHC: Underflow (resulting value less than 0) might happen here. -// Warning 6368: (292-296): CHC: Out of bounds access happens here. -// Warning 2661: (145-148): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4144: (214-217): BMC: Underflow (resulting value less than 0) happens here. +// Warning 4984: (112-115): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 3944: (181-184): CHC: Underflow (resulting value less than 0) might happen here. +// Warning 6368: (259-263): CHC: Out of bounds access happens here. +// Warning 2661: (112-115): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4144: (181-184): BMC: Underflow (resulting value less than 0) happens here. diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2.sol index b63ff6445..6adc6273c 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; uint l; @@ -20,4 +18,6 @@ contract C { return a[l - 1]; // safe access } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_1.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_1.sol index f4160dad8..b689da926 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_1.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function p() public { a.push(); } @@ -13,3 +11,5 @@ contract C { return a[i][j]; // safe access } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_2.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_2.sol index 746cdeb59..0eb84c274 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_2.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function p() public { a.push(); } @@ -12,5 +10,7 @@ contract C { return a[i][j]; // unsafe access } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (257-264): CHC: Out of bounds access happens here.\nCounterexample:\na = [[]]\ni = 0\nj = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.p()\nState: a = [[]]\nC.r(0, 0) +// Warning 6368: (224-231): CHC: Out of bounds access happens here.\nCounterexample:\na = [[]]\ni = 0\nj = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.p()\nState: a = [[]]\nC.r(0, 0) diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_3.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_3.sol index fc413bfc4..7d06b9aa8 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_3.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function p() public { a.push(); } @@ -13,3 +11,5 @@ contract C { a[i][j]; // safe access } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_4.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_4.sol index 6baaaee2e..7bfc6d7a9 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_4.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function p() public { a.push(); } @@ -13,13 +11,13 @@ contract C { a[i][j]; // oob access } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (217-230): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6368: (261-265): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() -// Warning 4984: (261-277): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6368: (288-292): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() -// Warning 6368: (288-295): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() -// Warning 4984: (279-282): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 4984: (232-235): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 2661: (217-230): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 2661: (261-277): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (184-197): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 6368: (228-232): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() +// Warning 4984: (228-244): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 6368: (255-259): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() +// Warning 6368: (255-262): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() +// Warning 2661: (184-197): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 2661: (228-244): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_3.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_3.sol index 53811b83d..bd70673c3 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_3.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_3.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function r(uint i) public view returns (uint) { return a[i]; // oob access } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (115-119): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r(0) +// Warning 6368: (82-86): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r(0) diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_4.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_4.sol index 42b1bee73..3bd96514b 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_4.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function p() public { a.push(); } @@ -8,3 +6,5 @@ contract C { return a[i]; // safe access } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_1.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_1.sol index ae44c5403..1a49c1624 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_1.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_1.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - contract C { function r(bytes4 x) public pure returns (bytes1) { return x[0]; // safe access } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_2.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_2.sol index fb2a680a2..ab1275ab2 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_2.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_2.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function r(bytes4 x, uint y) public pure returns (bytes1) { return x[y]; // oob access } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (116-120): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = 0\ny = 4\n = 0\n\nTransaction trace:\nC.constructor()\nC.r(0, 4) +// Warning 6368: (83-87): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = 0\ny = 4\n = 0\n\nTransaction trace:\nC.constructor()\nC.r(0, 4) diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_3.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_3.sol index cacb5c821..af4abc9d7 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_3.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function r(bytes32 x, uint y) public pure { require(y <= 31); @@ -7,3 +5,5 @@ contract C { x[y]; // safe access } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_4.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_4.sol index c2d346578..61df18bd7 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_4.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_4.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function r(bytes32 x, uint y) public pure { x[0]; // safe access x[y]; // oob access } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (116-120): CHC: Out of bounds access happens here. +// Warning 6368: (83-87): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_constant_bound.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_constant_bound.sol index 4fcc079aa..816f96810 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_constant_bound.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_constant_bound.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract DepositContract { uint constant MAX_DEPOSIT_COUNT = 2**32 - 1; @@ -12,7 +10,8 @@ contract DepositContract { deposit_count_2 += 10; // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (289-310): CHC: Error trying to invoke SMT solver. -// Warning 4984: (289-310): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 2661: (289-310): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (256-277): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 2661: (256-277): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol index 542defb12..efb0135e9 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 x) public pure returns (uint8) { @@ -12,5 +10,7 @@ contract C return y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (120-125): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 100\n = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 4984: (87-92): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 100\n = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_cex_with_array.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_cex_with_array.sol index 5f0e2bb2e..c90c32bee 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_cex_with_array.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_cex_with_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata x, uint y) external pure { require(x.length > 10); @@ -8,7 +6,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (144-147): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6368: (139-148): CHC: Out of bounds access happens here. +// Warning 4984: (111-114): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6368: (106-115): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol index b2df23fff..d0cadffac 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int8 x) public pure returns (int8) { @@ -12,5 +10,7 @@ contract C return y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (169-176): CHC: Overflow (resulting value larger than 127) happens here.\nCounterexample:\n\nx = 100\n = 0\ny = (- 56)\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 4984: (136-143): CHC: Overflow (resulting value larger than 127) happens here.\nCounterexample:\n\nx = 100\n = 0\ny = (- 56)\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol index 787a851b3..6d4275dbf 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 x) public pure returns (uint8) { @@ -14,5 +12,7 @@ contract C return y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (218-225): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 255\n = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 4984: (185-192): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 255\n = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol index 1b07f2876..97ee103b4 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int8 x) public pure { @@ -14,4 +12,6 @@ contract C assert(y == 2); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/overflow/safe_sub_1.sol b/test/libsolidity/smtCheckerTests/overflow/safe_sub_1.sol index d618aa136..cb1920613 100644 --- a/test/libsolidity/smtCheckerTests/overflow/safe_sub_1.sol +++ b/test/libsolidity/smtCheckerTests/overflow/safe_sub_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function sub(uint256 a, uint256 b) internal pure returns (uint256) { @@ -8,3 +6,5 @@ contract C return c; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol index feecd7a9a..e617e274e 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { return x / y; } } +// ==== +// SMTEngine: all +// SMTIgnoreCex: yes // ---- -// Warning 4281: (110-115): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) -// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\ny = (- 1)\n = 0\n\nTransaction trace:\nC.constructor()\nC.f((- 57896044618658097711785492504343953926634992332820282019728792003956564819968), (- 1)) +// Warning 4281: (77-82): CHC: Division by zero happens here. +// Warning 4984: (77-82): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_guard_sub_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_guard_sub_overflow.sol index d30be503c..afaeb5448 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_guard_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_guard_sub_overflow.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { require(x >= y); return x - y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (129-134): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = 0\ny = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)) +// Warning 4984: (96-101): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = 0\ny = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)) diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_guard_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_guard_sum_overflow.sol index 685392026..4635ef966 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_guard_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_guard_sum_overflow.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { require(x + y >= x); @@ -7,7 +5,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 3944: (111-116): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. -// Warning 4984: (111-116): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. +// Warning 3944: (78-83): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. +// Warning 4984: (78-83): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol index 37af268b3..7106bbbb8 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { return x % y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (110-115): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 4281: (77-82): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol index df7dc7e5f..225d00689 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol @@ -1,12 +1,11 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { return x * y; } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 3944: (110-115): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. -// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. +// Warning 3944: (77-82): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. +// Warning 4984: (77-82): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol index 824f81193..81de2d5fe 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol @@ -1,12 +1,11 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { return x - y; } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 3944: (110-115): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. -// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. +// Warning 3944: (77-82): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. +// Warning 4984: (77-82): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol index efc719169..7bb6588e3 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol @@ -1,12 +1,11 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { return x + y; } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 3944: (110-115): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. -// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. +// Warning 3944: (77-82): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. +// Warning 4984: (77-82): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol index e17a4fff2..d872cb669 100644 --- a/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { function f(uint a, uint b) public pure returns (uint) { return a + b; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (112-117): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\na = 1\nb = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(1, 115792089237316195423570985008687907853269984665640564039457584007913129639935) +// Warning 4984: (80-85): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\na = 115792089237316195423570985008687907853269984665640564039457584007913129639935\nb = 1\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(115792089237316195423570985008687907853269984665640564039457584007913129639935, 1) diff --git a/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol b/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol index 4d91b49e3..29dd15975 100644 --- a/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol +++ b/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 x) public pure returns (uint) { @@ -12,4 +10,6 @@ contract C return y; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol b/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol index 27635f4f3..295e32849 100644 --- a/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol +++ b/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int8 x) public pure returns (int8) { @@ -16,4 +14,6 @@ contract C return y; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol index 8aa9ef06b..76ab3402e 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x / y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (113-118): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 4281: (80-85): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sub_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sub_overflow.sol index 879587e06..f85982e2e 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sub_overflow.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { require(x >= y); return x - y; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol index e512f6b56..904cb52c4 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol @@ -1,11 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x + y; } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (113-118): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (80-85): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol index 0d4d9a183..7c42d43a2 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x % y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (113-118): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 4281: (80-85): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol index 9e9b6605a..0a6d85a7e 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x * y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (113-118): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 2\ny = 57896044618658097711785492504343953926634992332820282019728792003956564819968\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(2, 57896044618658097711785492504343953926634992332820282019728792003956564819968) +// Warning 4984: (80-85): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 57896044618658097711785492504343953926634992332820282019728792003956564819968\ny = 2\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(57896044618658097711785492504343953926634992332820282019728792003956564819968, 2) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol index 773e5cd06..1c6df4b2c 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x - y; } } +// ==== +// SMTEngine: all // ---- -// Warning 3944: (113-118): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\nx = 0\ny = 1\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 1) +// Warning 3944: (80-85): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\nx = 0\ny = 1\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 1) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol index e512f6b56..904cb52c4 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol @@ -1,11 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x + y; } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (113-118): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (80-85): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/simple/smoke_test.sol b/test/libsolidity/smtCheckerTests/simple/smoke_test.sol index 8b7b77da6..ec605f31a 100644 --- a/test/libsolidity/smtCheckerTests/simple/smoke_test.sol +++ b/test/libsolidity/smtCheckerTests/simple/smoke_test.sol @@ -1,3 +1,4 @@ -pragma experimental SMTChecker; contract C { } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/simple/static_array.sol b/test/libsolidity/smtCheckerTests/simple/static_array.sol index 4147c0169..c32e2a890 100644 --- a/test/libsolidity/smtCheckerTests/simple/static_array.sol +++ b/test/libsolidity/smtCheckerTests/simple/static_array.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { // Used to crash because Literal had no type @@ -6,4 +5,6 @@ contract C // Used to crash because Literal had no type int[3*1] x; } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2.sol b/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2.sol index 384db2946..17b8a9226 100644 --- a/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2.sol +++ b/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -7,10 +6,12 @@ contract C { return abi.decode("abc", (S, bytes, uint[][2])); } } +// ==== +// SMTEngine: all // ---- -// Warning 8364: (215-221): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (215-224): Assertion checker does not yet implement type type(uint256[] memory[2] memory) -// Warning 8364: (205-206): Assertion checker does not yet implement type type(struct C.S storage pointer) -// Warning 8364: (215-221): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (215-224): Assertion checker does not yet implement type type(uint256[] memory[2] memory) -// Warning 8364: (205-206): Assertion checker does not yet implement type type(struct C.S storage pointer) +// Warning 8364: (183-189): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (183-192): Assertion checker does not yet implement type type(uint256[] memory[2] memory) +// Warning 8364: (173-174): Assertion checker does not yet implement type type(struct C.S storage pointer) +// Warning 8364: (183-189): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (183-192): Assertion checker does not yet implement type type(uint256[] memory[2] memory) +// Warning 8364: (173-174): Assertion checker does not yet implement type type(struct C.S storage pointer) diff --git a/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2_value_types.sol b/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2_value_types.sol index fa409befe..46ff93166 100644 --- a/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2_value_types.sol +++ b/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2_value_types.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -8,6 +7,8 @@ contract C { assert(x1 == x2); } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (123-130): Unused local variable. -// Warning 2072: (178-185): Unused local variable. +// Warning 2072: (91-98): Unused local variable. +// Warning 2072: (146-153): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol b/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol index 7be611742..5a6beef49 100644 --- a/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol +++ b/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bytes memory data) public pure { (uint a1, bytes32 b1, C c1) = abi.decode(data, (uint, bytes32, C)); @@ -7,13 +6,15 @@ contract C { assert(a1 != a2); } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (102-112): Unused local variable. -// Warning 2072: (114-118): Unused local variable. -// Warning 2072: (172-182): Unused local variable. -// Warning 2072: (184-188): Unused local variable. -// Warning 8364: (155-156): Assertion checker does not yet implement type type(contract C) -// Warning 8364: (225-226): Assertion checker does not yet implement type type(contract C) -// Warning 6328: (252-268): CHC: Assertion violation happens here.\nCounterexample:\n\ndata = [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]\na1 = 7719\nb1 = 5\nc1 = 6\na2 = 7719\nb2 = 5\nc2 = 6\n\nTransaction trace:\nC.constructor()\nC.f([10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]) -// Warning 8364: (155-156): Assertion checker does not yet implement type type(contract C) -// Warning 8364: (225-226): Assertion checker does not yet implement type type(contract C) +// Warning 2072: (70-80): Unused local variable. +// Warning 2072: (82-86): Unused local variable. +// Warning 2072: (140-150): Unused local variable. +// Warning 2072: (152-156): Unused local variable. +// Warning 8364: (123-124): Assertion checker does not yet implement type type(contract C) +// Warning 8364: (193-194): Assertion checker does not yet implement type type(contract C) +// Warning 6328: (220-236): CHC: Assertion violation happens here.\nCounterexample:\n\ndata = [13, 13, 13, 13, 13, 13, 13, 13, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13]\na1 = 7719\nb1 = 5\nc1 = 6\na2 = 7719\nb2 = 5\nc2 = 6\n\nTransaction trace:\nC.constructor()\nC.f([13, 13, 13, 13, 13, 13, 13, 13, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13]) +// Warning 8364: (123-124): Assertion checker does not yet implement type type(contract C) +// Warning 8364: (193-194): Assertion checker does not yet implement type type(contract C) diff --git a/test/libsolidity/smtCheckerTests/special/abi_encode_slice.sol b/test/libsolidity/smtCheckerTests/special/abi_encode_slice.sol index 0f6e57222..5295afa69 100644 --- a/test/libsolidity/smtCheckerTests/special/abi_encode_slice.sol +++ b/test/libsolidity/smtCheckerTests/special/abi_encode_slice.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(bytes calldata data) external pure returns (bytes memory) { return abi.encode(bytes(data[:32])); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/special/blockhash.sol b/test/libsolidity/smtCheckerTests/special/blockhash.sol index a8f339687..7c8b23052 100644 --- a/test/libsolidity/smtCheckerTests/special/blockhash.sol +++ b/test/libsolidity/smtCheckerTests/special/blockhash.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public payable { @@ -9,6 +7,8 @@ contract C assert(blockhash(x) == blockhash(y)); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (85-109): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(38){ value: 8365 } -// Warning 6328: (113-137): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(38){ value: 32285 } +// Warning 6328: (52-76): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(38){ value: 8365 } +// Warning 6328: (80-104): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(38){ value: 32285 } diff --git a/test/libsolidity/smtCheckerTests/special/chainid.sol b/test/libsolidity/smtCheckerTests/special/chainid.sol index 7a2f92e77..be6c2b067 100644 --- a/test/libsolidity/smtCheckerTests/special/chainid.sol +++ b/test/libsolidity/smtCheckerTests/special/chainid.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { function f() public view returns (uint) { return block.chainid + 0; // Overflow not possible! } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/difficulty.sol b/test/libsolidity/smtCheckerTests/special/difficulty.sol index f76a8d0c5..faf44ddd7 100644 --- a/test/libsolidity/smtCheckerTests/special/difficulty.sol +++ b/test/libsolidity/smtCheckerTests/special/difficulty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint difficulty) public view { @@ -7,6 +5,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (91-129): CHC: Assertion violation happens here. +// Warning 6328: (58-96): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/special/ether_units.sol b/test/libsolidity/smtCheckerTests/special/ether_units.sol index 1c49f9faf..40242e50d 100644 --- a/test/libsolidity/smtCheckerTests/special/ether_units.sol +++ b/test/libsolidity/smtCheckerTests/special/ether_units.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract D { function f() public pure { assert(1000000000000000000 wei == 1 ether); @@ -9,7 +8,9 @@ contract D { assert(100000000 gwei == 1 ether); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-162): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (202-233): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (275-308): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (89-130): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (170-201): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (243-276): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() diff --git a/test/libsolidity/smtCheckerTests/special/event.sol b/test/libsolidity/smtCheckerTests/special/event.sol index 824baa751..2788eeecd 100644 --- a/test/libsolidity/smtCheckerTests/special/event.sol +++ b/test/libsolidity/smtCheckerTests/special/event.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { event Nudge(); event SomeArgs(uint, uint); @@ -24,7 +22,9 @@ contract C { emit SomeArgs(h_data(), h_data()); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (280-284): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (430-434): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (440-449): CHC: Assertion violation happens here.\nCounterexample:\nx = false\n\nTransaction trace:\nC.constructor()\nState: x = true\nC.h()\n C.h_data() -- internal call\n C.h_data() -- internal call +// Warning 6321: (247-251): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (397-401): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (407-416): CHC: Assertion violation happens here.\nCounterexample:\nx = false\n\nTransaction trace:\nC.constructor()\nState: x = true\nC.h()\n C.h_data() -- internal call\n C.h_data() -- internal call diff --git a/test/libsolidity/smtCheckerTests/special/gasleft.sol b/test/libsolidity/smtCheckerTests/special/gasleft.sol index 65ae240a6..416c2668e 100644 --- a/test/libsolidity/smtCheckerTests/special/gasleft.sol +++ b/test/libsolidity/smtCheckerTests/special/gasleft.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view { @@ -9,6 +7,8 @@ contract C assert(g >= gasleft()); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (76-97): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (123-144): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (43-64): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (90-111): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/special/many.sol b/test/libsolidity/smtCheckerTests/special/many.sol index 867f0cc1a..e9c100014 100644 --- a/test/libsolidity/smtCheckerTests/special/many.sol +++ b/test/libsolidity/smtCheckerTests/special/many.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public payable { @@ -16,13 +14,14 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (79-115): CHC: Assertion violation happens here. -// Warning 6328: (119-161): CHC: Assertion violation happens here. -// Warning 6328: (165-204): CHC: Assertion violation happens here. -// Warning 6328: (208-240): CHC: Assertion violation happens here. -// Warning 6328: (244-275): CHC: Assertion violation happens here. -// Warning 6328: (328-352): CHC: Assertion violation happens here. -// Warning 6328: (356-384): CHC: Assertion violation happens here. -// Warning 6328: (388-411): CHC: Assertion violation happens here. +// Warning 6328: (46-82): CHC: Assertion violation happens here. +// Warning 6328: (86-128): CHC: Assertion violation happens here. +// Warning 6328: (132-171): CHC: Assertion violation happens here. +// Warning 6328: (175-207): CHC: Assertion violation happens here. +// Warning 6328: (211-242): CHC: Assertion violation happens here. +// Warning 6328: (295-319): CHC: Assertion violation happens here. +// Warning 6328: (323-351): CHC: Assertion violation happens here. +// Warning 6328: (355-378): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/special/msg_data.sol b/test/libsolidity/smtCheckerTests/special/msg_data.sol index 51b8199a3..5bdc754c4 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_data.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_data.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public payable { @@ -21,6 +19,8 @@ contract C assert(msg.data[3] == 0x8f); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (153-180): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 30612 } -// Warning 6328: (500-527): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g(){ value: 30612 } +// Warning 6328: (120-147): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 30612 } +// Warning 6328: (467-494): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g(){ value: 30612 } diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_1.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_1.sol index dd2366e2e..b88ba0b09 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_1.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view { @@ -8,3 +6,5 @@ contract C assert(a == b); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_2.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_2.sol index 65a5b2bc7..96075e68a 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_2.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view { @@ -9,4 +7,6 @@ contract C assert(a == b); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_3.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_3.sol index c8e922a86..774998358 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_3.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address owner; @@ -19,3 +17,5 @@ contract D { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol index 0f5f88394..ecfc53e98 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address c) public view { @@ -10,6 +8,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (155-178): CHC: Assertion violation happens here. +// Warning 6328: (122-145): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_range.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_range.sol index e29a2054b..56ab07eac 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_range.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_range.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view { @@ -7,3 +5,5 @@ contract C { assert(msg.sender <= address(2**160-1)); // should hold } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/msg_sig.sol b/test/libsolidity/smtCheckerTests/special/msg_sig.sol index 67ca2eee4..a87dc18b3 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sig.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sig.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -24,7 +22,9 @@ contract C assert(msg.sig == 0xe2179b8e); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (76-105): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (403-432): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()\n C.fi() -- internal call\n C.gi() -- internal call -// Warning 6328: (543-572): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6328: (43-72): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (370-399): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()\n C.fi() -- internal call\n C.gi() -- internal call +// Warning 6328: (510-539): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.h() diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_1.sol b/test/libsolidity/smtCheckerTests/special/msg_value_1.sol index 2259db859..9888d326d 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_1.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_1.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f() public payable { assert ((5 + msg.value + msg.value) - (4 + msg.value) > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (87-100): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 115792089237316195423570985008687907853269984665640564039457584007913129639931 } -// Warning 4984: (87-112): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 57896044618658097711785492504343953926634992332820282019728792003956564819966 } +// Warning 4984: (55-68): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 115792089237316195423570985008687907853269984665640564039457584007913129639931 } +// Warning 4984: (55-80): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 57896044618658097711785492504343953926634992332820282019728792003956564819966 } diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_2.sol b/test/libsolidity/smtCheckerTests/special/msg_value_2.sol index a010d2437..1c37ce029 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_2.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_2.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f() public payable { assert(msg.value > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (78-99): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (46-67): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_3.sol b/test/libsolidity/smtCheckerTests/special/msg_value_3.sol index aa082ff12..66015d770 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_3.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { bool lock = true; function f() public { @@ -11,3 +10,5 @@ contract C { assert(msg.value == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_4.sol b/test/libsolidity/smtCheckerTests/special/msg_value_4.sol index 7af272426..c32c36bb5 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_4.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { uint x = msg.value; constructor() { @@ -11,5 +10,7 @@ contract B { assert(msg.value == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (186-208): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nB.constructor(){ value: 1 } +// Warning 6328: (154-176): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nB.constructor(){ value: 1 } diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_1.sol b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_1.sol index 0d123f0af..00e183832 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_1.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x = msg.value; constructor() payable { @@ -13,5 +11,7 @@ contract C is A { assert(v == 0); // should hold } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (101-115): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nA.constructor(){ value: 1 } +// Warning 6328: (68-82): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nA.constructor(){ value: 1 } diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_2.sol b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_2.sol index 003ccaacf..f1bcf66b6 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_2.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x = msg.value; constructor() { @@ -13,6 +11,8 @@ contract C is A { assert(v == 0); // should fail, C can be constructed with any msg.value } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (273-287): CHC: Assertion violation happens here.\nCounterexample:\nv = 1, x = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } -// Warning 6328: (93-107): CHC: Assertion violation happens here.\nCounterexample:\nv = 0, x = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } +// Warning 6328: (240-254): CHC: Assertion violation happens here.\nCounterexample:\nv = 1, x = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } +// Warning 6328: (60-74): CHC: Assertion violation happens here.\nCounterexample:\nv = 0, x = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_3.sol b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_3.sol index d3b732eb2..08457c0ec 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_3.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x = msg.value; constructor() { @@ -18,5 +16,7 @@ contract C is A, B { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (93-107): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } +// Warning 6328: (60-74): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } diff --git a/test/libsolidity/smtCheckerTests/special/range_check.sol b/test/libsolidity/smtCheckerTests/special/range_check.sol index 7ca296ee0..246ff5a2c 100644 --- a/test/libsolidity/smtCheckerTests/special/range_check.sol +++ b/test/libsolidity/smtCheckerTests/special/range_check.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { constructor() payable { assert(tx.origin >= address(0)); @@ -54,3 +52,5 @@ contract D { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/this.sol b/test/libsolidity/smtCheckerTests/special/this.sol index 178b4e512..efd0f52c1 100644 --- a/test/libsolidity/smtCheckerTests/special/this.sol +++ b/test/libsolidity/smtCheckerTests/special/this.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address a) public view { @@ -7,6 +5,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (85-111): CHC: Assertion violation happens here. +// Warning 6328: (52-78): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/special/this_state.sol b/test/libsolidity/smtCheckerTests/special/this_state.sol index 48e496d7a..281fd4494 100644 --- a/test/libsolidity/smtCheckerTests/special/this_state.sol +++ b/test/libsolidity/smtCheckerTests/special/this_state.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address thisAddr; @@ -9,3 +7,5 @@ contract C assert(thisAddr == address(this)); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/time_units.sol b/test/libsolidity/smtCheckerTests/special/time_units.sol index 880da4daf..2462f9312 100644 --- a/test/libsolidity/smtCheckerTests/special/time_units.sol +++ b/test/libsolidity/smtCheckerTests/special/time_units.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract D { function f() public pure { assert(1 == 1 seconds); @@ -13,9 +12,11 @@ contract D { assert(25 weeks == 14 days); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (101-123): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (163-195): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (233-263): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (297-323): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (357-384): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (69-91): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (131-163): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (201-231): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (265-291): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (325-352): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() diff --git a/test/libsolidity/smtCheckerTests/special/timestamp.sol b/test/libsolidity/smtCheckerTests/special/timestamp.sol index 48e819e50..81a459634 100644 --- a/test/libsolidity/smtCheckerTests/special/timestamp.sol +++ b/test/libsolidity/smtCheckerTests/special/timestamp.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view returns (uint) { uint b = block.timestamp; @@ -7,3 +5,5 @@ contract C { return a; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/timestamp_2.sol b/test/libsolidity/smtCheckerTests/special/timestamp_2.sol index 047f0a451..73af1d4da 100644 --- a/test/libsolidity/smtCheckerTests/special/timestamp_2.sol +++ b/test/libsolidity/smtCheckerTests/special/timestamp_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -8,5 +6,7 @@ contract C { x = block.timestamp + 1; // Overflow should be reported here } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (140-159): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor() +// Warning 4984: (107-126): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol b/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol index 1e8f375fe..3f8c4c162 100644 --- a/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol +++ b/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint gleft; @@ -17,7 +15,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (124-150): CHC: Assertion violation happens here. -// Warning 6328: (219-245): CHC: Assertion violation happens here. +// Warning 6328: (91-117): CHC: Assertion violation happens here. +// Warning 6328: (186-212): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/special/tx_data_immutable.sol b/test/libsolidity/smtCheckerTests/special/tx_data_immutable.sol index 371897b3b..fad3d9fbb 100644 --- a/test/libsolidity/smtCheckerTests/special/tx_data_immutable.sol +++ b/test/libsolidity/smtCheckerTests/special/tx_data_immutable.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes32 bhash; address coin; @@ -59,3 +57,5 @@ contract C { assert(origin == tx.origin); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol b/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol index 5033f6a7b..82d3529e0 100644 --- a/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol +++ b/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes32 bhash; address coin; @@ -60,29 +58,30 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (545-576): CHC: Assertion violation happens here. -// Warning 6328: (580-610): CHC: Assertion violation happens here. -// Warning 6328: (614-645): CHC: Assertion violation happens here. -// Warning 6328: (649-681): CHC: Assertion violation happens here. -// Warning 6328: (685-715): CHC: Assertion violation happens here. -// Warning 6328: (719-752): CHC: Assertion violation happens here. -// Warning 6328: (756-795): CHC: Assertion violation happens here. -// Warning 6328: (799-827): CHC: Assertion violation happens here. -// Warning 6328: (831-853): CHC: Assertion violation happens here. -// Warning 6328: (857-883): CHC: Assertion violation happens here. -// Warning 6328: (887-916): CHC: Assertion violation happens here. -// Warning 6328: (920-947): CHC: Assertion violation happens here. -// Warning 6328: (986-1017): CHC: Assertion violation happens here. -// Warning 6328: (1021-1051): CHC: Assertion violation happens here. -// Warning 6328: (1055-1086): CHC: Assertion violation happens here. -// Warning 6328: (1090-1122): CHC: Assertion violation happens here. -// Warning 6328: (1126-1156): CHC: Assertion violation happens here. -// Warning 6328: (1160-1193): CHC: Assertion violation happens here. -// Warning 6328: (1197-1236): CHC: Assertion violation happens here. -// Warning 6328: (1240-1268): CHC: Assertion violation happens here. -// Warning 6328: (1272-1294): CHC: Assertion violation happens here. -// Warning 6328: (1298-1324): CHC: Assertion violation happens here. -// Warning 6328: (1328-1357): CHC: Assertion violation happens here. -// Warning 6328: (1361-1388): CHC: Assertion violation happens here. +// Warning 6328: (512-543): CHC: Assertion violation happens here. +// Warning 6328: (547-577): CHC: Assertion violation happens here. +// Warning 6328: (581-612): CHC: Assertion violation happens here. +// Warning 6328: (616-648): CHC: Assertion violation happens here. +// Warning 6328: (652-682): CHC: Assertion violation happens here. +// Warning 6328: (686-719): CHC: Assertion violation happens here. +// Warning 6328: (723-762): CHC: Assertion violation happens here. +// Warning 6328: (766-794): CHC: Assertion violation happens here. +// Warning 6328: (798-820): CHC: Assertion violation happens here. +// Warning 6328: (824-850): CHC: Assertion violation happens here. +// Warning 6328: (854-883): CHC: Assertion violation happens here. +// Warning 6328: (887-914): CHC: Assertion violation happens here. +// Warning 6328: (953-984): CHC: Assertion violation happens here. +// Warning 6328: (988-1018): CHC: Assertion violation happens here. +// Warning 6328: (1022-1053): CHC: Assertion violation happens here. +// Warning 6328: (1057-1089): CHC: Assertion violation happens here. +// Warning 6328: (1093-1123): CHC: Assertion violation happens here. +// Warning 6328: (1127-1160): CHC: Assertion violation happens here. +// Warning 6328: (1164-1203): CHC: Assertion violation happens here. +// Warning 6328: (1207-1235): CHC: Assertion violation happens here. +// Warning 6328: (1239-1261): CHC: Assertion violation happens here. +// Warning 6328: (1265-1291): CHC: Assertion violation happens here. +// Warning 6328: (1295-1324): CHC: Assertion violation happens here. +// Warning 6328: (1328-1355): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_1.sol b/test/libsolidity/smtCheckerTests/try_catch/try_1.sol index 903c94346..02a1273e4 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_1.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int x; @@ -17,6 +16,8 @@ contract C { assert(success); // fails for now, since external call is over-approximated (both success and fail are considered possible) for now even for known code } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (195-209): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (253-268): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\nsuccess = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 5667: (163-177): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (221-236): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\nsuccess = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_2.sol b/test/libsolidity/smtCheckerTests/try_catch/try_2.sol index 8f80601e4..f2ea2e555 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_2.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int x; @@ -15,5 +14,7 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (187-201): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (155-169): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_3.sol b/test/libsolidity/smtCheckerTests/try_catch/try_3.sol index d5318f0e4..4244f5096 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_3.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int x; @@ -20,6 +19,8 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (291-305): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (312-326): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\ns = []\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()\n C.postinc() -- internal call +// 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 diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_4.sol b/test/libsolidity/smtCheckerTests/try_catch/try_4.sol index f3ee44dfb..9c9d0aa27 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_4.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -24,7 +22,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (211-225): CHC: Assertion violation happens here. -// Warning 6328: (351-365): CHC: Assertion violation happens here. +// Warning 6328: (178-192): CHC: Assertion violation happens here. +// Warning 6328: (318-332): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_5.sol b/test/libsolidity/smtCheckerTests/try_catch/try_5.sol index 4955f3ea0..6c9b776c4 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_5.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -24,5 +22,7 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (348-362): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f() +// Warning 6328: (315-329): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_1.sol b/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_1.sol index 830db0c45..b90a9fca9 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_1.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public returns (uint) { try this.f() { @@ -9,5 +8,7 @@ contract C { function g() public pure returns (address) { } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (78-82): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (46-50): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_2.sol b/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_2.sol index 76b86cf04..0c438943b 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_2.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public returns (uint, uint) { try this.f() { @@ -10,7 +9,9 @@ contract C { int test = 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (78-82): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (84-88): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 2072: (199-207): Unused local variable. +// Warning 6321: (46-50): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (52-56): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 2072: (167-175): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_inside_if.sol b/test/libsolidity/smtCheckerTests/try_catch/try_inside_if.sol index ec9ed22f1..4c82cebd9 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_inside_if.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_inside_if.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g(bool b) public {} function f(bool b) public returns (bytes memory txt) { @@ -10,5 +9,7 @@ contract C { } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (141-145): BMC: Condition is always false. +// Warning 6838: (109-113): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_inside_while.sol b/test/libsolidity/smtCheckerTests/try_catch/try_inside_while.sol index 465773b7b..8d54f103f 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_inside_while.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_inside_while.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public returns (uint) { while(1==1) @@ -8,6 +7,8 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (75-79): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6838: (91-95): BMC: Condition is always true. +// Warning 6321: (43-47): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6838: (59-63): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses.sol b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses.sol index 93c2fb936..769a61873 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int x; @@ -21,5 +20,7 @@ contract C { assert(success); // can fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (447-462): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nsuccess = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (415-430): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nsuccess = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses_2.sol b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses_2.sol index 6cc283e47..609b31fcd 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses_2.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure {} @@ -18,5 +17,7 @@ contract C { assert(x == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (338-352): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\nsuccess = false\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (306-320): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\nsuccess = false\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values.sol b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values.sol index d57e447d8..80ebe0d93 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual returns (uint x, bool b); } @@ -20,8 +18,10 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 2519: (197-203): This declaration shadows an existing declaration. -// Warning 6328: (218-232): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\nx = 1\nc = false\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()\n d.d() -- untrusted external call -// Warning 6328: (306-316): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\nx = 1\nc = true\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()\n d.d() -- untrusted external call -// Warning 6328: (426-440): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f() +// Warning 2519: (164-170): This declaration shadows an existing declaration. +// Warning 6328: (185-199): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\nx = 1\nc = false\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()\n d.d() -- untrusted external call +// Warning 6328: (273-283): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\nx = 1\nc = true\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()\n d.d() -- untrusted external call +// Warning 6328: (393-407): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values_with_tuple.sol b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values_with_tuple.sol index c6db557ea..d6b62ea99 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values_with_tuple.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values_with_tuple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { @@ -22,5 +21,7 @@ contract C { assert(success); // fails, not guaranteed that there will be no error } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (353-368): CHC: Assertion violation happens here.\nCounterexample:\n\nsuccess = false\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (321-336): CHC: Assertion violation happens here.\nCounterexample:\n\nsuccess = false\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_nested_1.sol b/test/libsolidity/smtCheckerTests/try_catch/try_nested_1.sol index 2b05f39ff..dfbfb978a 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_nested_1.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_nested_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int public x; @@ -18,6 +17,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (312-327): CHC: Assertion violation happens here. +// Warning 6328: (280-295): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_nested_2.sol b/test/libsolidity/smtCheckerTests/try_catch/try_nested_2.sol index 509cda911..98a19731b 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_nested_2.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_nested_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure returns (uint, uint) { } @@ -18,5 +17,7 @@ contract C { assert(choice == 42); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (374-394): CHC: Assertion violation happens here.\nCounterexample:\n\nchoice = 3\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (342-362): CHC: Assertion violation happens here.\nCounterexample:\n\nchoice = 3\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_nested_3.sol b/test/libsolidity/smtCheckerTests/try_catch/try_nested_3.sol index 7c24db882..bd81c5bc2 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_nested_3.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_nested_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure returns (uint) { } @@ -18,5 +17,7 @@ contract C { assert(choice == 42); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (355-375): CHC: Assertion violation happens here.\nCounterexample:\n\nchoice = 3\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (323-343): CHC: Assertion violation happens here.\nCounterexample:\n\nchoice = 3\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_new.sol b/test/libsolidity/smtCheckerTests/try_catch/try_new.sol index 563e2fdfe..f20342e71 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_new.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_new.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Reverts { constructor(uint) { revert("test message."); } } @@ -27,8 +25,10 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 4588: (264-278): Assertion checker does not yet implement this type of function call. -// Warning 4588: (525-540): Assertion checker does not yet implement this type of function call. -// Warning 4588: (264-278): Assertion checker does not yet implement this type of function call. -// Warning 4588: (525-540): Assertion checker does not yet implement this type of function call. +// Warning 4588: (231-245): Assertion checker does not yet implement this type of function call. +// Warning 4588: (492-507): Assertion checker does not yet implement this type of function call. +// Warning 4588: (231-245): Assertion checker does not yet implement this type of function call. +// Warning 4588: (492-507): Assertion checker does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_public_var.sol b/test/libsolidity/smtCheckerTests/try_catch/try_public_var.sol index dce37b15b..281a74839 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_public_var.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_public_var.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int public x; @@ -10,5 +9,7 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (171-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (139-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_public_var_mapping.sol b/test/libsolidity/smtCheckerTests/try_catch/try_public_var_mapping.sol index bc4a6e246..3048558e7 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_public_var_mapping.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_public_var_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[]) public m; @@ -19,5 +17,7 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (313-333): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (280-300): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_bytes_array.sol b/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_bytes_array.sol index 37f112dab..7dff9ef0d 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_bytes_array.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_bytes_array.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure returns (bytes memory) { @@ -14,3 +13,5 @@ contract C { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_fixed_bytes.sol index 523663fca..b56aa8562 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure returns (bytes2) { @@ -14,6 +13,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (250-294): CHC: Assertion violation happens here. +// Warning 6328: (218-262): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/typecast/address_literal.sol b/test/libsolidity/smtCheckerTests/typecast/address_literal.sol index 42a09c49f..c37c36ded 100644 --- a/test/libsolidity/smtCheckerTests/typecast/address_literal.sol +++ b/test/libsolidity/smtCheckerTests/typecast/address_literal.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address x; // We know that this is "zero initialised". function f() public view { @@ -21,5 +19,7 @@ contract C { assert(a == b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (487-501): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\na = 0\nb = 1\nc = 0\nd = 0\ne = 305419896\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g() +// Warning 6328: (454-468): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\na = 0\nb = 1\nc = 0\nd = 0\ne = 305419896\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g() diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_address_1.sol b/test/libsolidity/smtCheckerTests/typecast/cast_address_1.sol index c76e4a9c7..c29df8989 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_address_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_address_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address a) public pure { @@ -7,4 +5,6 @@ contract C assert(a != address(0)); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_different_size_1.sol b/test/libsolidity/smtCheckerTests/typecast/cast_different_size_1.sol index 21efadc37..663c85fe9 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_different_size_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_different_size_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -14,3 +12,5 @@ contract C assert(e == 0x12); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_larger_1.sol b/test/libsolidity/smtCheckerTests/typecast/cast_larger_1.sol index 6ae5a3378..c73372f3a 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_larger_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_larger_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 x) public pure { @@ -8,4 +6,6 @@ contract C assert(y < 300); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_larger_2.sol b/test/libsolidity/smtCheckerTests/typecast/cast_larger_2.sol index bbdeb0bf1..5c2fb759a 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_larger_2.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_larger_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -9,4 +7,6 @@ contract C assert(a == b); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol b/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol index bf85dc82f..15b4257d5 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -8,5 +6,7 @@ contract C assert(a != b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (149-163): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4660\nb = 4660\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (116-130): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4660\nb = 4660\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol b/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol index cc9855984..b8a69f946 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -11,5 +9,7 @@ contract C assert(a == b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (273-287): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4660\nb = 305397760\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (240-254): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4660\nb = 305397760\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_1.sol b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_1.sol index 310df7e34..c1c955417 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint16 x) public pure { @@ -8,4 +6,6 @@ contract C assert(y < 300); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_2.sol b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_2.sol index e634cb22a..ea5f87fbf 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_2.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -8,3 +6,5 @@ contract C assert(b == 0x5678); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_3.sol b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_3.sol index f6d9c36bc..d8b8396d0 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_3.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -8,3 +6,5 @@ contract C assert(b == 0x12); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/downcast.sol b/test/libsolidity/smtCheckerTests/typecast/downcast.sol index 89475f296..a2fe8b6c8 100644 --- a/test/libsolidity/smtCheckerTests/typecast/downcast.sol +++ b/test/libsolidity/smtCheckerTests/typecast/downcast.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f1() public pure { // signed <- signed @@ -45,4 +43,6 @@ contract C { assert(b == 0xaaaa); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/enum_from_uint.sol b/test/libsolidity/smtCheckerTests/typecast/enum_from_uint.sol index 3ec8c585d..8d2fd6310 100644 --- a/test/libsolidity/smtCheckerTests/typecast/enum_from_uint.sol +++ b/test/libsolidity/smtCheckerTests/typecast/enum_from_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -9,4 +7,6 @@ contract C assert(_a == D.Left); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/enum_to_uint_max_value.sol b/test/libsolidity/smtCheckerTests/typecast/enum_to_uint_max_value.sol index 89b0e7ab0..a382a786d 100644 --- a/test/libsolidity/smtCheckerTests/typecast/enum_to_uint_max_value.sol +++ b/test/libsolidity/smtCheckerTests/typecast/enum_to_uint_max_value.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -8,4 +6,6 @@ contract C assert(x < 10); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_external.sol b/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_external.sol index c0d7f6f69..f04c91d0a 100644 --- a/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_external.sol +++ b/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_external.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(function(uint) external returns (uint) g, function(uint) external returns (uint) h) public { assert(g(2) == h(2)); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (155-175): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\nh = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 6328: (123-143): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\nh = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_internal.sol b/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_internal.sol index b0eeb56ae..2234bd831 100644 --- a/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_internal.sol +++ b/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_internal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function(uint) returns (uint) a; function(uint) returns (uint) b; @@ -10,16 +9,18 @@ contract C { f(a, b); } } +// ==== +// SMTEngine: all // ---- -// Warning 2519: (128-159): This declaration shadows an existing declaration. -// Warning 6031: (214-218): Internal error: Expression undefined for SMT solver. -// Warning 6031: (222-226): Internal error: Expression undefined for SMT solver. -// Warning 7229: (238-244): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons -// Warning 6328: (207-227): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()\n C.f(0, 0) -- internal call -// Warning 6328: (231-245): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()\n C.f(0, 0) -- internal call -// Warning 5729: (214-218): BMC does not yet implement this type of function call. -// Warning 5729: (222-226): BMC does not yet implement this type of function call. -// Warning 7229: (238-244): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons -// Warning 5729: (214-218): BMC does not yet implement this type of function call. -// Warning 5729: (222-226): BMC does not yet implement this type of function call. -// Warning 7229: (238-244): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons +// Warning 2519: (96-127): This declaration shadows an existing declaration. +// Warning 6031: (182-186): Internal error: Expression undefined for SMT solver. +// Warning 6031: (190-194): Internal error: Expression undefined for SMT solver. +// Warning 7229: (206-212): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons +// Warning 6328: (175-195): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()\n C.f(0, 0) -- internal call +// Warning 6328: (199-213): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()\n C.f(0, 0) -- internal call +// Warning 5729: (182-186): BMC does not yet implement this type of function call. +// Warning 5729: (190-194): BMC does not yet implement this type of function call. +// Warning 7229: (206-212): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons +// Warning 5729: (182-186): BMC does not yet implement this type of function call. +// Warning 5729: (190-194): BMC does not yet implement this type of function call. +// Warning 7229: (206-212): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons diff --git a/test/libsolidity/smtCheckerTests/typecast/implicit_cast_string_literal_byte.sol b/test/libsolidity/smtCheckerTests/typecast/implicit_cast_string_literal_byte.sol index e8b43ae7e..6acb0d16f 100644 --- a/test/libsolidity/smtCheckerTests/typecast/implicit_cast_string_literal_byte.sol +++ b/test/libsolidity/smtCheckerTests/typecast/implicit_cast_string_literal_byte.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (bytes1 => uint) map; function f() public { @@ -12,5 +10,7 @@ contract C { } function g(bytes1 b) internal pure {} } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (186-207): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f()\n C.g(0) -- internal call +// Warning 6328: (153-174): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f()\n C.g(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/typecast/number_literal.sol b/test/libsolidity/smtCheckerTests/typecast/number_literal.sol index d3df0343a..c48cf076b 100644 --- a/test/libsolidity/smtCheckerTests/typecast/number_literal.sol +++ b/test/libsolidity/smtCheckerTests/typecast/number_literal.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint x = 1234; @@ -29,3 +27,5 @@ contract C { assert(b == e); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/same_size.sol b/test/libsolidity/smtCheckerTests/typecast/same_size.sol index 6e153fad7..03fff063d 100644 --- a/test/libsolidity/smtCheckerTests/typecast/same_size.sol +++ b/test/libsolidity/smtCheckerTests/typecast/same_size.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D {} enum E {A, B} @@ -70,4 +68,6 @@ contract C { assert(y == -10); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/slice_to_bytes.sol b/test/libsolidity/smtCheckerTests/typecast/slice_to_bytes.sol index bae24de4c..0c31e3766 100644 --- a/test/libsolidity/smtCheckerTests/typecast/slice_to_bytes.sol +++ b/test/libsolidity/smtCheckerTests/typecast/slice_to_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata x) external pure { bytes(x[:18726387213]); @@ -7,4 +5,6 @@ contract C { bytes(x[18726387213:111111111111111111]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_dynamic_bytes.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_dynamic_bytes.sol index 0477e690a..04d973b99 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_dynamic_bytes.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_dynamic_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes memory b = bytes(hex"ffff"); @@ -8,5 +6,7 @@ contract C { assert(b[1] == bytes1(uint8(100))); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (206-240): CHC: Assertion violation happens here.\nCounterexample:\n\nb = [255, 255]\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (173-207): CHC: Assertion violation happens here.\nCounterexample:\n\nb = [255, 255]\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_1.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_1.sol index 8763c662d..f3df90c16 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract MockContract { bytes4 public constant SENTINEL_ANY_MOCKS = hex"01"; mapping(bytes4 => bytes4) methodIdMocks; @@ -8,3 +6,5 @@ contract MockContract { methodIdMocks[SENTINEL_ANY_MOCKS] = 0; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_2.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_2.sol index cbef0294f..fc5f2aff0 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_2.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract MockContract { bytes4 public constant SENTINEL_ANY_MOCKS = hex"01"; @@ -7,3 +5,5 @@ contract MockContract { assert(SENTINEL_ANY_MOCKS >= 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_explicit.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_explicit.sol index 8c454474b..fb8da5430 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_explicit.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_explicit.sol @@ -1,4 +1,5 @@ -pragma experimental SMTChecker; contract SMT { bytes32 constant internal NULL_BYTES32 = bytes32(''); } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_function_call.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_function_call.sol index 1de996fe0..10fd28ee3 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_function_call.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_function_call.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract B { function f() pure public { g("0123456"); @@ -9,7 +8,8 @@ contract B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (162-184): CHC: Assertion violation happens here. -// Warning 6328: (136-158): CHC: Assertion violation happens here. +// Warning 6328: (130-152): CHC: Assertion violation happens here. +// Warning 6328: (104-126): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_modifier.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_modifier.sol index dc839d5a1..4d1d832f9 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_modifier.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_modifier.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract B { function f() mod2("0123456") pure public { } modifier mod2(bytes7 a) { @@ -7,5 +6,7 @@ contract B { _; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (152-174): CHC: Assertion violation happens here.\nCounterexample:\n\na = 13564890559296822\n\nTransaction trace:\nB.constructor()\nB.f() +// Warning 6328: (120-142): CHC: Assertion violation happens here.\nCounterexample:\n\na = 13564890559296822\n\nTransaction trace:\nB.constructor()\nB.f() diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return.sol index d5c684645..56ef16374 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure returns (bytes32 val) { return "abc"; } function f1() public pure returns (bytes32 val) { return g(); } @@ -8,5 +7,7 @@ contract C { assert(f1() == "cde"); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (238-259): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.a()\n C.f1() -- internal call\n C.g() -- internal call\n C.f1() -- internal call\n C.g() -- internal call +// Warning 6328: (206-227): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.a()\n C.f1() -- internal call\n C.g() -- internal call\n C.f1() -- internal call\n C.g() -- internal call diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return_multi.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return_multi.sol index 4940c1238..c869fca05 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return_multi.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return_multi.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h() public pure returns (bytes32 val, bytes3 val2) { return ("abc", "def"); } function g() public pure returns (bytes32 val) { return "abc"; } @@ -11,5 +10,7 @@ contract C { assert(v2 == "cde"); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (442-461): CHC: Assertion violation happens here.\nCounterexample:\n\nv1 = 44048180597813453602326562734351324025098966208897425494240603688123167145984\nv2 = 6579558\n\nTransaction trace:\nC.constructor()\nC.a()\n C.f2() -- internal call\n C.h() -- internal call +// Warning 6328: (410-429): CHC: Assertion violation happens here.\nCounterexample:\n\nv1 = 44048180597813453602326562734351324025098966208897425494240603688123167145984\nv2 = 6579558\n\nTransaction trace:\nC.constructor()\nC.a()\n C.f2() -- internal call\n C.h() -- internal call diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_upcast.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_upcast.sol index f496a0e06..340e835a4 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_upcast.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_upcast.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(bytes4(hex"0000ffff") == bytes4(hex"ffff")); // should fail assert(bytes4(hex"ffff0000") == bytes4(hex"ffff")); // should hold } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (76-126): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (43-93): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_1.sol b/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_1.sol index a44f37f8d..1b571c9f2 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { string x; @@ -10,5 +8,7 @@ contract C { assert(bytes(x).length == 3); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (165-193): CHC: Assertion violation happens here.\nCounterexample:\nx = [97, 98, 99, 97]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.s() +// Warning 6328: (132-160): CHC: Assertion violation happens here.\nCounterexample:\nx = [97, 98, 99, 97]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.s() diff --git a/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_2.sol b/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_2.sol index 138d09361..6cf53ec7d 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_2.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { string x; @@ -10,5 +8,7 @@ contract C { assert(bytes(x).length == 3); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (173-201): CHC: Assertion violation happens here.\nCounterexample:\nx = [97, 98, 99, 97]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.s() +// Warning 6328: (140-168): CHC: Assertion violation happens here.\nCounterexample:\nx = [97, 98, 99, 97]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.s() diff --git a/test/libsolidity/smtCheckerTests/typecast/upcast.sol b/test/libsolidity/smtCheckerTests/typecast/upcast.sol index d9f4d6730..45c022153 100644 --- a/test/libsolidity/smtCheckerTests/typecast/upcast.sol +++ b/test/libsolidity/smtCheckerTests/typecast/upcast.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D {} contract C { @@ -66,4 +64,6 @@ contract C { assert(b5 == 0xcafe0000); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/address_balance.sol b/test/libsolidity/smtCheckerTests/types/address_balance.sol index 9b2352ba9..c9937caac 100644 --- a/test/libsolidity/smtCheckerTests/types/address_balance.sol +++ b/test/libsolidity/smtCheckerTests/types/address_balance.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address a, address b) public view { @@ -7,7 +5,9 @@ contract C assert(a.balance > b.balance); } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (96-102): Unused local variable. -// Warning 4984: (105-127): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\na = 0\nb = 38\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) -// Warning 6328: (131-160): CHC: Assertion violation happens here.\nCounterexample:\n\na = 21238\nb = 7719\nx = 1000000000000000000038\n\nTransaction trace:\nC.constructor()\nC.f(21238, 7719) +// Warning 2072: (63-69): Unused local variable. +// Warning 4984: (72-94): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\na = 0\nb = 38\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) +// Warning 6328: (98-127): CHC: Assertion violation happens here.\nCounterexample:\n\na = 21238\nb = 7719\nx = 1000000000000000000038\n\nTransaction trace:\nC.constructor()\nC.f(21238, 7719) diff --git a/test/libsolidity/smtCheckerTests/types/address_call.sol b/test/libsolidity/smtCheckerTests/types/address_call.sol index b6f1bcbfe..7ccde10da 100644 --- a/test/libsolidity/smtCheckerTests/types/address_call.sol +++ b/test/libsolidity/smtCheckerTests/types/address_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -17,12 +15,13 @@ contract C } // ==== // EVMVersion: >spuriousDragon +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (224-240): Unused local variable. -// Warning 4588: (244-256): Assertion checker does not yet implement this type of function call. -// Warning 6328: (260-275): CHC: Assertion violation happens here. -// Warning 6328: (279-293): CHC: Assertion violation happens here. -// Warning 6328: (297-316): CHC: Assertion violation happens here. -// Warning 6328: (320-344): CHC: Assertion violation happens here. -// Warning 4588: (244-256): Assertion checker does not yet implement this type of function call. +// Warning 2072: (191-207): Unused local variable. +// Warning 4588: (211-223): Assertion checker does not yet implement this type of function call. +// Warning 6328: (227-242): CHC: Assertion violation happens here. +// Warning 6328: (246-260): CHC: Assertion violation happens here. +// Warning 6328: (264-283): CHC: Assertion violation happens here. +// Warning 6328: (287-311): CHC: Assertion violation happens here. +// Warning 4588: (211-223): Assertion checker does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol b/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol index 6d67a9e66..f0324bc68 100644 --- a/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol +++ b/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -17,12 +15,13 @@ contract C } // ==== // EVMVersion: >spuriousDragon +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (224-240): Unused local variable. -// Warning 4588: (244-264): Assertion checker does not yet implement this type of function call. -// Warning 6328: (268-283): CHC: Assertion violation happens here. -// Warning 6328: (287-301): CHC: Assertion violation happens here. -// Warning 6328: (305-324): CHC: Assertion violation happens here. -// Warning 6328: (328-352): CHC: Assertion violation happens here. -// Warning 4588: (244-264): Assertion checker does not yet implement this type of function call. +// Warning 2072: (191-207): Unused local variable. +// Warning 4588: (211-231): Assertion checker does not yet implement this type of function call. +// Warning 6328: (235-250): CHC: Assertion violation happens here. +// Warning 6328: (254-268): CHC: Assertion violation happens here. +// Warning 6328: (272-291): CHC: Assertion violation happens here. +// Warning 6328: (295-319): CHC: Assertion violation happens here. +// Warning 4588: (211-231): Assertion checker does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/address_staticcall.sol b/test/libsolidity/smtCheckerTests/types/address_staticcall.sol index 54d2a7d6b..40d867fa0 100644 --- a/test/libsolidity/smtCheckerTests/types/address_staticcall.sol +++ b/test/libsolidity/smtCheckerTests/types/address_staticcall.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -17,7 +15,8 @@ contract C } // ==== // EVMVersion: >spuriousDragon +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (224-240): Unused local variable. -// Warning 6328: (266-281): CHC: Assertion violation happens here. +// Warning 2072: (191-207): Unused local variable. +// Warning 6328: (233-248): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer.sol b/test/libsolidity/smtCheckerTests/types/address_transfer.sol index 555aa8007..d46557488 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address payable a) public { @@ -10,6 +8,8 @@ contract C assert(a.balance == 700); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (195-219): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nx = 100\n\nTransaction trace:\nC.constructor()\nC.f(38) -// Warning 1236: (131-146): BMC: Insufficient funds happens here. +// Warning 6328: (162-186): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nx = 100\n\nTransaction trace:\nC.constructor()\nC.f(38) +// Warning 1236: (98-113): BMC: Insufficient funds happens here. diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol b/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol index 43e98884c..0a2c08d0c 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, address payable a, address payable b) public { @@ -14,8 +12,9 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (295-324): CHC: Assertion violation happens here. -// Warning 1236: (217-232): BMC: Insufficient funds happens here. -// Warning 1236: (236-251): BMC: Insufficient funds happens here. +// Warning 6328: (262-291): CHC: Assertion violation happens here. +// Warning 1236: (184-199): BMC: Insufficient funds happens here. +// Warning 1236: (203-218): BMC: Insufficient funds happens here. diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol b/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol index d643343f6..936f8cd29 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address payable a, address payable b) public { @@ -10,7 +8,9 @@ contract C assert(a.balance == 600); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (213-237): CHC: Assertion violation happens here.\nCounterexample:\n\na = 7719\nb = 7719\n\nTransaction trace:\nC.constructor()\nC.f(7719, 7719) -// Warning 1236: (134-149): BMC: Insufficient funds happens here. -// Warning 1236: (153-169): BMC: Insufficient funds happens here. +// Warning 6328: (180-204): CHC: Assertion violation happens here.\nCounterexample:\n\na = 7719\nb = 7719\n\nTransaction trace:\nC.constructor()\nC.f(7719, 7719) +// Warning 1236: (101-116): BMC: Insufficient funds happens here. +// Warning 1236: (120-136): BMC: Insufficient funds happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_1.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_1.sol index 016ab8e7f..4e315f6ef 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C @@ -35,18 +34,20 @@ contract C assert(b[0] == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (555-560): CHC: Out of bounds access happens here. -// Warning 6368: (555-563): CHC: Out of bounds access happens here. -// Warning 6368: (589-595): CHC: Out of bounds access happens here. -// Warning 6368: (589-598): CHC: Out of bounds access happens here. -// Warning 6368: (589-601): CHC: Out of bounds access happens here. -// Warning 6368: (610-614): CHC: Out of bounds access happens here. -// Warning 6368: (731-735): CHC: Out of bounds access happens here. -// Warning 6368: (744-749): CHC: Out of bounds access happens here. -// Warning 6368: (744-752): CHC: Out of bounds access happens here. -// Warning 6368: (762-768): CHC: Out of bounds access happens here. -// Warning 6368: (762-771): CHC: Out of bounds access happens here. -// Warning 6368: (762-774): CHC: Out of bounds access happens here. -// Warning 6328: (724-781): CHC: Assertion violation happens here. -// Warning 6368: (882-886): CHC: Out of bounds access happens here. +// Warning 6368: (523-528): CHC: Out of bounds access happens here. +// Warning 6368: (523-531): CHC: Out of bounds access happens here. +// Warning 6368: (557-563): CHC: Out of bounds access happens here. +// Warning 6368: (557-566): CHC: Out of bounds access happens here. +// Warning 6368: (557-569): CHC: Out of bounds access happens here. +// Warning 6368: (578-582): CHC: Out of bounds access happens here. +// Warning 6368: (699-703): CHC: Out of bounds access happens here. +// Warning 6368: (712-717): CHC: Out of bounds access happens here. +// Warning 6368: (712-720): CHC: Out of bounds access happens here. +// Warning 6368: (730-736): CHC: Out of bounds access happens here. +// Warning 6368: (730-739): CHC: Out of bounds access happens here. +// Warning 6368: (730-742): CHC: Out of bounds access happens here. +// Warning 6328: (692-749): CHC: Assertion violation happens here. +// Warning 6368: (850-854): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_2.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_2.sol index fde683cb7..7eccaf68f 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C @@ -25,9 +24,10 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (359-363): CHC: Out of bounds access happens here. -// Warning 6368: (616-620): CHC: Out of bounds access happens here. -// Warning 6328: (609-626): CHC: Assertion violation happens here. -// Warning 6368: (637-641): CHC: Out of bounds access happens here. +// Warning 6368: (327-331): CHC: Out of bounds access happens here. +// Warning 6368: (584-588): CHC: Out of bounds access happens here. +// Warning 6328: (577-594): CHC: Assertion violation happens here. +// Warning 6368: (605-609): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_3.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_3.sol index 761dc2b63..59a95ca9a 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C @@ -26,3 +25,5 @@ contract C //assert(b[0] == 1); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_1.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_1.sol index 51748c1a9..3f1b6cdd4 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -51,6 +49,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2018: (990-1362): Function state mutability can be restricted to view +// Warning 2018: (957-1329): Function state mutability can be restricted to view diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol index 9fedce64a..48d1f8130 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] array2d; @@ -30,9 +28,10 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (507-511): CHC: Out of bounds access happens here. -// Warning 6368: (692-696): CHC: Out of bounds access happens here. -// Warning 6328: (685-702): CHC: Assertion violation happens here. -// Warning 6368: (774-778): CHC: Out of bounds access happens here. +// Warning 6368: (474-478): CHC: Out of bounds access happens here. +// Warning 6368: (659-663): CHC: Out of bounds access happens here. +// Warning 6328: (652-669): CHC: Assertion violation happens here. +// Warning 6368: (741-745): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol index d381bd227..f74fad8af 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] array2d; @@ -33,10 +31,11 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (417-432): Unused local variable. -// Warning 6368: (522-526): CHC: Out of bounds access happens here. -// Warning 6368: (988-992): CHC: Out of bounds access happens here. -// Warning 6328: (981-998): CHC: Assertion violation happens here. -// Warning 6368: (1009-1013): CHC: Out of bounds access happens here. +// Warning 2072: (384-399): Unused local variable. +// Warning 6368: (489-493): CHC: Out of bounds access happens here. +// Warning 6368: (955-959): CHC: Out of bounds access happens here. +// Warning 6328: (948-965): CHC: Assertion violation happens here. +// Warning 6368: (976-980): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_4.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_4.sol index 11ec4eda8..f64c080ef 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_4.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -29,6 +27,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2018: (519-698): Function state mutability can be restricted to view +// Warning 2018: (486-665): Function state mutability can be restricted to view diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol index 328dce06a..9f111dfb4 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] b; @@ -32,13 +30,14 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (362-366): CHC: Out of bounds access happens here. -// Warning 6368: (375-379): CHC: Out of bounds access happens here. -// Warning 6368: (388-392): CHC: Out of bounds access happens here. -// Warning 6368: (400-404): CHC: Out of bounds access happens here. -// Warning 6368: (523-527): CHC: Out of bounds access happens here. -// Warning 6368: (725-729): CHC: Out of bounds access happens here. -// Warning 6328: (718-735): CHC: Assertion violation happens here. -// Warning 6368: (829-833): CHC: Out of bounds access happens here. +// Warning 6368: (329-333): CHC: Out of bounds access happens here. +// Warning 6368: (342-346): CHC: Out of bounds access happens here. +// Warning 6368: (355-359): CHC: Out of bounds access happens here. +// Warning 6368: (367-371): CHC: Out of bounds access happens here. +// Warning 6368: (490-494): CHC: Out of bounds access happens here. +// Warning 6368: (692-696): CHC: Out of bounds access happens here. +// Warning 6328: (685-702): CHC: Assertion violation happens here. +// Warning 6368: (796-800): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol b/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol index 50e58d3b8..b04c632e9 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b, uint[] memory c) public pure { @@ -11,6 +9,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (176-192): CHC: Assertion violation happens here. +// Warning 6328: (143-159): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol b/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol index af4218241..66d90ef35 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] c; @@ -16,4 +14,6 @@ contract C */ } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol b/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol index 307fc64b6..c13842daa 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][][] c; @@ -15,11 +13,13 @@ contract C assert(c[0][0][0] > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (157-164): CHC: Out of bounds access might happen here. -// Warning 6368: (157-167): CHC: Out of bounds access might happen here. -// Warning 6368: (185-192): CHC: Out of bounds access might happen here. -// Warning 6368: (185-195): CHC: Out of bounds access might happen here. -// Warning 6368: (210-217): CHC: Out of bounds access might happen here. -// Warning 6368: (210-220): CHC: Out of bounds access might happen here. -// Warning 6328: (203-225): CHC: Assertion violation happens here.\nCounterexample:\nc = [[[0]]]\nb = false\n\nTransaction trace:\nC.constructor()\nState: c = [[[0]]]\nC.f(false) +// Warning 6368: (124-131): CHC: Out of bounds access might happen here. +// Warning 6368: (124-134): CHC: Out of bounds access might happen here. +// Warning 6368: (152-159): CHC: Out of bounds access might happen here. +// Warning 6368: (152-162): CHC: Out of bounds access might happen here. +// Warning 6368: (177-184): CHC: Out of bounds access might happen here. +// Warning 6368: (177-187): CHC: Out of bounds access might happen here. +// Warning 6328: (170-192): CHC: Assertion violation happens here.\nCounterexample:\nc = [[[0]]]\nb = false\n\nTransaction trace:\nC.constructor()\nState: c = [[[0]]]\nC.f(false) diff --git a/test/libsolidity/smtCheckerTests/types/array_branches_1d.sol b/test/libsolidity/smtCheckerTests/types/array_branches_1d.sol index 357756626..748409ba2 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branches_1d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branches_1d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b, uint[] memory c) public pure { @@ -12,4 +10,6 @@ contract C assert(c[0] > 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/array_branches_2d.sol b/test/libsolidity/smtCheckerTests/types/array_branches_2d.sol index 192532960..d61b4df55 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branches_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branches_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] c; @@ -17,3 +15,5 @@ contract C assert(c[0][0] > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_branches_3d.sol b/test/libsolidity/smtCheckerTests/types/array_branches_3d.sol index a47f78fd2..ebd28101d 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branches_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branches_3d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][][] c; @@ -15,10 +13,12 @@ contract C assert(c[0][0][0] < 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (157-164): CHC: Out of bounds access might happen here. -// Warning 6368: (157-167): CHC: Out of bounds access might happen here. -// Warning 6368: (185-192): CHC: Out of bounds access might happen here. -// Warning 6368: (185-195): CHC: Out of bounds access might happen here. -// Warning 6368: (210-217): CHC: Out of bounds access might happen here. -// Warning 6368: (210-220): CHC: Out of bounds access might happen here. +// Warning 6368: (124-131): CHC: Out of bounds access might happen here. +// Warning 6368: (124-134): CHC: Out of bounds access might happen here. +// Warning 6368: (152-159): CHC: Out of bounds access might happen here. +// Warning 6368: (152-162): CHC: Out of bounds access might happen here. +// Warning 6368: (177-184): CHC: Out of bounds access might happen here. +// Warning 6368: (177-187): CHC: Out of bounds access might happen here. diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_1.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_1.sol index ad36f5efe..43bf2639c 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -16,3 +14,5 @@ contract C assert(array[y] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol index 3e2254785..8c243d4ae 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -11,5 +9,7 @@ contract C assert(array[y] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (205-227): CHC: Assertion violation happens here.\nCounterexample:\narray = [200]\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.p()\nState: array = [0]\nC.f(0, 0) +// Warning 6328: (172-194): CHC: Assertion violation happens here.\nCounterexample:\narray = [200]\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.p()\nState: array = [0]\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_2.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_2.sol index a80781b4b..87ef3abcb 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] array; @@ -9,6 +7,8 @@ contract C assert(array[z][t] > 100); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (131-139): CHC: Out of bounds access happens here.\nCounterexample:\narray = []\nx = 0\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.f(0, 0, 0, 0) -// Warning 6368: (131-142): CHC: Out of bounds access happens here.\nCounterexample:\narray = []\nx = 38\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.f(38, 0, 0, 0) +// Warning 6368: (98-106): CHC: Out of bounds access happens here.\nCounterexample:\narray = []\nx = 0\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.f(0, 0, 0, 0) +// Warning 6368: (98-109): CHC: Out of bounds access happens here.\nCounterexample:\narray = []\nx = 38\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.f(38, 0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol index 30e06ab5c..8de55bc9b 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] array; @@ -14,5 +12,7 @@ contract C assert(array[z][t] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (278-303): CHC: Assertion violation happens here.\nCounterexample:\narray = [[200]]\nx = 0\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.a()\nState: array = [[0]]\nC.f(0, 0, 0, 0) +// Warning 6328: (245-270): CHC: Assertion violation happens here.\nCounterexample:\narray = [[200]]\nx = 0\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.a()\nState: array = [[0]]\nC.f(0, 0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_3.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_3.sol index 052e97d7f..c60b15551 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][][] array; @@ -12,3 +10,5 @@ contract C assert(array[t][w][v] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol index c2e8389d3..53ac92a7c 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][][] array; @@ -15,5 +13,7 @@ contract C assert(array[t][w][v] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (351-379): CHC: Assertion violation happens here.\nCounterexample:\narray = [[[200]]]\nx = 0\ny = 0\nz = 0\nt = 0\nw = 0\nv = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.p()\nState: array = [[[0]]]\nC.f(0, 0, 0, 0, 0, 0) +// Warning 6328: (318-346): CHC: Assertion violation happens here.\nCounterexample:\narray = [[[200]]]\nx = 0\ny = 0\nz = 0\nt = 0\nw = 0\nv = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.p()\nState: array = [[[0]]]\nC.f(0, 0, 0, 0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1.sol index eae85601d..2bb2a00b5 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint[] memory array, uint x, uint y) public pure { @@ -9,3 +7,5 @@ contract C assert(array[y] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1_fail.sol index 4b187f12e..f8d3ad887 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint[] memory array, uint x, uint y) public pure { @@ -9,5 +7,7 @@ contract C assert(array[y] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (177-199): CHC: Assertion violation happens here.\nCounterexample:\n\narray = [9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 9, 9, 9, 9, 9, 9, 9, 9, 21, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 200]\nx = 38\ny = 38\n\nTransaction trace:\nC.constructor()\nC.f([9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 9, 9, 9, 9, 9, 9, 9, 9, 21, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 199], 38, 38) +// Warning 6328: (144-166): CHC: Assertion violation happens here.\nCounterexample:\n\narray = [9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 9, 9, 9, 9, 9, 9, 9, 9, 21, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 200]\nx = 38\ny = 38\n\nTransaction trace:\nC.constructor()\nC.f([9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 9, 9, 9, 9, 9, 9, 9, 9, 21, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 199], 38, 38) diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_1.sol b/test/libsolidity/smtCheckerTests/types/array_literal_1.sol index 1a6fb3b51..49f65c06d 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -9,4 +7,6 @@ contract C assert(array[2] == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_2.sol b/test/libsolidity/smtCheckerTests/types/array_literal_2.sol index 826c85461..0062594d8 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -10,5 +8,7 @@ contract C assert(a[2] == b[2]); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (200-220): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4]\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (167-187): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4]\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_3.sol b/test/libsolidity/smtCheckerTests/types/array_literal_3.sol index 6d25027b7..3152f0e1e 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -9,5 +7,7 @@ contract C assert(a[2] == b[2]); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (201-221): CHC: Assertion violation happens here. +// Warning 6328: (168-188): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_4.sol b/test/libsolidity/smtCheckerTests/types/array_literal_4.sol index 1606c43fa..bf2f66ccd 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_4.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool c) public pure { @@ -10,4 +8,6 @@ contract C assert(a[2] == b[2]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_5.sol b/test/libsolidity/smtCheckerTests/types/array_literal_5.sol index 1a73de324..f152e2cb1 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] s; @@ -12,5 +10,7 @@ contract C assert(s[2] != a[2]); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (209-229): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() +// Warning 6328: (176-196): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_6.sol b/test/libsolidity/smtCheckerTests/types/array_literal_6.sol index 4b36a1395..0ce378e42 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_6.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -13,6 +11,8 @@ contract C assert(a[2] == c[3]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (179-207): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (268-288): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (146-174): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (235-255): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_7.sol b/test/libsolidity/smtCheckerTests/types/array_literal_7.sol index f9401a56c..ba81e3c9e 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_7.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] s; @@ -18,6 +16,8 @@ contract C assert(s[2] == c[3]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (259-287): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() -// Warning 6328: (348-368): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() +// Warning 6328: (226-254): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() +// Warning 6328: (315-335): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol index 44f6206ba..65f629cb2 100644 --- a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) singleMap; @@ -35,7 +33,8 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (739-753): CHC: Out of bounds access happens here. -// Warning 6328: (732-763): CHC: Assertion violation happens here. +// Warning 6368: (706-720): CHC: Out of bounds access happens here. +// Warning 6328: (699-730): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol index d2a4ccf68..07e09a9e8 100644 --- a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) singleMap; @@ -34,13 +32,14 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (472-486): CHC: Out of bounds access happens here. -// Warning 6368: (525-541): CHC: Out of bounds access happens here. -// Warning 6368: (525-544): CHC: Out of bounds access happens here. -// Warning 6368: (655-669): CHC: Out of bounds access happens here. -// Warning 6368: (883-899): CHC: Out of bounds access happens here. -// Warning 6368: (883-902): CHC: Out of bounds access happens here. -// Warning 6328: (969-989): CHC: Assertion violation happens here. -// Warning 6368: (1062-1076): CHC: Out of bounds access might happen here. +// Warning 6368: (439-453): CHC: Out of bounds access happens here. +// Warning 6368: (492-508): CHC: Out of bounds access happens here. +// Warning 6368: (492-511): CHC: Out of bounds access happens here. +// Warning 6368: (622-636): CHC: Out of bounds access happens here. +// Warning 6368: (850-866): CHC: Out of bounds access happens here. +// Warning 6368: (850-869): CHC: Out of bounds access happens here. +// Warning 6328: (936-956): CHC: Assertion violation happens here. +// Warning 6368: (1029-1043): CHC: Out of bounds access might happen here. diff --git a/test/libsolidity/smtCheckerTests/types/array_static_1.sol b/test/libsolidity/smtCheckerTests/types/array_static_1.sol index 3d85a0715..dc894c8ee 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10] array; @@ -10,3 +8,5 @@ contract C assert(array[y] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol b/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol index dabc8d749..21ad979b0 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10] array; @@ -10,5 +8,7 @@ contract C assert(array[y] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (168-190): CHC: Assertion violation happens here.\nCounterexample:\narray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 200]\nx = 9\ny = 9\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\nC.f(9, 9) +// Warning 6328: (135-157): CHC: Assertion violation happens here.\nCounterexample:\narray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 200]\nx = 9\ny = 9\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\nC.f(9, 9) diff --git a/test/libsolidity/smtCheckerTests/types/array_static_2.sol b/test/libsolidity/smtCheckerTests/types/array_static_2.sol index e516a2246..88d10192d 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10][20] array; @@ -11,3 +9,5 @@ contract C assert(array[z][t] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol b/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol index 32139b4b0..9c713eb25 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10][20] array; @@ -11,5 +9,7 @@ contract C assert(array[z][t] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (247-272): CHC: Assertion violation happens here.\nCounterexample:\narray = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]\nx = 19\ny = 8\nz = 19\nt = 8\n\nTransaction trace:\nC.constructor()\nState: array = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]\nC.f(19, 8, 19, 8) +// Warning 6328: (214-239): CHC: Assertion violation happens here.\nCounterexample:\narray = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]\nx = 19\ny = 8\nz = 19\nt = 8\n\nTransaction trace:\nC.constructor()\nState: array = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]\nC.f(19, 8, 19, 8) diff --git a/test/libsolidity/smtCheckerTests/types/array_static_3.sol b/test/libsolidity/smtCheckerTests/types/array_static_3.sol index 232d575ad..4d7f87993 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10][20][30] array; @@ -12,3 +10,5 @@ contract C assert(array[t][w][v] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol b/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol index 3cad8770e..8737cec63 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10][20][30] array; @@ -12,5 +10,7 @@ contract C assert(array[t][w][v] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (301-329): CHC: Assertion violation happens here.\nCounterexample:\narray = [[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 200], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]]\nx = 29\ny = 17\nz = 9\nt = 29\nw = 17\nv = 9\n\nTransaction trace:\nC.constructor()\nState: array = [[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]]\nC.f(29, 17, 9, 29, 17, 9) +// Warning 6328: (268-296): CHC: Assertion violation happens here.\nCounterexample:\narray = [[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 200], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]]\nx = 29\ny = 17\nz = 9\nt = 29\nw = 17\nv = 9\n\nTransaction trace:\nC.constructor()\nState: array = [[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]]\nC.f(29, 17, 9, 29, 17, 9) diff --git a/test/libsolidity/smtCheckerTests/types/array_static_aliasing_memory_5.sol b/test/libsolidity/smtCheckerTests/types/array_static_aliasing_memory_5.sol index b85c5459e..15b7aed31 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_aliasing_memory_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_aliasing_memory_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint[2] memory a, uint[2] memory b, uint[2] memory c) public pure { @@ -18,6 +16,8 @@ contract C assert(b[0] == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (500-504): CHC: Out of bounds access happens here. -// Warning 6328: (493-510): CHC: Assertion violation happens here. +// Warning 6368: (467-471): CHC: Out of bounds access happens here. +// Warning 6328: (460-477): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_static_aliasing_storage_5.sol b/test/libsolidity/smtCheckerTests/types/array_static_aliasing_storage_5.sol index 7261d7529..8841942d7 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_aliasing_storage_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_aliasing_storage_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[2] b1; @@ -23,10 +21,11 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (198-202): CHC: Out of bounds access happens here. -// Warning 6368: (211-215): CHC: Out of bounds access happens here. -// Warning 6368: (223-228): CHC: Out of bounds access happens here. -// Warning 6368: (347-351): CHC: Out of bounds access happens here. -// Warning 6368: (473-478): CHC: Out of bounds access happens here. +// Warning 6368: (165-169): CHC: Out of bounds access happens here. +// Warning 6368: (178-182): CHC: Out of bounds access happens here. +// Warning 6368: (190-195): CHC: Out of bounds access happens here. +// Warning 6368: (314-318): CHC: Out of bounds access happens here. +// Warning 6368: (440-445): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_1.sol b/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_1.sol index 8f9c3388a..61b7a80f2 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) singleMap; @@ -26,9 +24,10 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (386-402): CHC: Out of bounds access happens here. -// Warning 6368: (386-405): CHC: Out of bounds access happens here. -// Warning 6368: (496-510): CHC: Out of bounds access happens here. -// Warning 6328: (489-520): CHC: Assertion violation happens here. +// Warning 6368: (353-369): CHC: Out of bounds access happens here. +// Warning 6368: (353-372): CHC: Out of bounds access happens here. +// Warning 6368: (463-477): CHC: Out of bounds access happens here. +// Warning 6328: (456-487): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_2.sol b/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_2.sol index 93bb86d25..1c9b9e23b 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) singleMap; @@ -29,12 +27,13 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (347-361): CHC: Out of bounds access happens here. -// Warning 6368: (400-416): CHC: Out of bounds access happens here. -// Warning 6368: (400-419): CHC: Out of bounds access happens here. -// Warning 6368: (530-544): CHC: Out of bounds access happens here. -// Warning 6328: (893-913): CHC: Assertion violation happens here. -// Warning 6368: (969-985): CHC: Out of bounds access might happen here. -// Warning 6368: (969-988): CHC: Out of bounds access might happen here. +// Warning 6368: (314-328): CHC: Out of bounds access happens here. +// Warning 6368: (367-383): CHC: Out of bounds access happens here. +// Warning 6368: (367-386): CHC: Out of bounds access happens here. +// Warning 6368: (497-511): CHC: Out of bounds access happens here. +// Warning 6328: (860-880): CHC: Assertion violation happens here. +// Warning 6368: (936-952): CHC: Out of bounds access might happen here. +// Warning 6368: (936-955): CHC: Out of bounds access might happen here. diff --git a/test/libsolidity/smtCheckerTests/types/array_struct_array_branches_2d.sol b/test/libsolidity/smtCheckerTests/types/array_struct_array_branches_2d.sol index dd12ca087..cc82aa924 100644 --- a/test/libsolidity/smtCheckerTests/types/array_struct_array_branches_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_struct_array_branches_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[][] a; } @@ -18,6 +16,8 @@ contract C */ } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (84-90): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 2072: (108-120): Unused local variable. +// Warning 5667: (51-57): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 2072: (75-87): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_1.sol b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_1.sol index d611cc177..bb70c89e5 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_1.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { uint a; @@ -7,3 +6,5 @@ contract C { assert(!x || a > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_2.sol b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_2.sol index 24640c5a8..f8a80d434 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_2.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool x, uint a) public pure { require(!x || a > 0); @@ -6,3 +5,5 @@ contract C { assert(!x || b > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_3.sol b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_3.sol index f872e82ff..56747445f 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_3.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool x, bool y) public pure { uint a; @@ -19,3 +18,5 @@ contract C { assert(!xor_x_y || a > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol index e44e8dd27..52b05f3bd 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { assert(x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (90-99): CHC: Assertion violation happens here.\nCounterexample:\n\nx = false\n\nTransaction trace:\nC.constructor()\nC.f(false) +// Warning 6328: (58-67): CHC: Assertion violation happens here.\nCounterexample:\n\nx = false\n\nTransaction trace:\nC.constructor()\nC.f(false) diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol index 50271f2dd..44daa8912 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(bool x, bool y) public pure { assert(x == y); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (98-112): CHC: Assertion violation happens here.\nCounterexample:\n\nx = true\ny = false\n\nTransaction trace:\nC.constructor()\nC.f(true, false) +// Warning 6328: (66-80): CHC: Assertion violation happens here.\nCounterexample:\n\nx = true\ny = false\n\nTransaction trace:\nC.constructor()\nC.f(true, false) diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_3.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_3.sol index 1d2ab49f7..8524ac5d1 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_3.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_3.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(bool x, bool y) public pure { bool z = x || y; assert(!(x && y) || z); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_4.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_4.sol index c40404a43..f31b31368 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_4.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { if(x) { @@ -8,3 +7,5 @@ contract C { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_5.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_5.sol index 4cecebbc7..d87a5bfa3 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_5.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_5.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { bool y = x; assert(x == y); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_6.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_6.sol index 90350bb64..e29acfe32 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_6.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_6.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { require(x); @@ -7,3 +6,5 @@ contract C { assert(x || y); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bytes_1.sol b/test/libsolidity/smtCheckerTests/types/bytes_1.sol index 6958f2953..9dadcca14 100644 --- a/test/libsolidity/smtCheckerTests/types/bytes_1.sol +++ b/test/libsolidity/smtCheckerTests/types/bytes_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory b) public pure returns (bytes memory) { @@ -7,5 +5,7 @@ contract C return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (113-127): Unused local variable. +// Warning 2072: (80-94): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/types/bytes_2.sol b/test/libsolidity/smtCheckerTests/types/bytes_2.sol index 202a66bb9..a0ab43bbf 100644 --- a/test/libsolidity/smtCheckerTests/types/bytes_2.sol +++ b/test/libsolidity/smtCheckerTests/types/bytes_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory b1, bytes memory b2) public pure { @@ -11,6 +9,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (270-292): CHC: Assertion violation happens here. +// Warning 6328: (237-259): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol b/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol index 47acf4541..6acec4bef 100644 --- a/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory b1, bytes memory b2) public pure { @@ -9,6 +7,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (162-184): CHC: Assertion violation happens here. +// Warning 6328: (129-151): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/bytes_length.sol b/test/libsolidity/smtCheckerTests/types/bytes_length.sol index e248165af..e965e9f31 100644 --- a/test/libsolidity/smtCheckerTests/types/bytes_length.sol +++ b/test/libsolidity/smtCheckerTests/types/bytes_length.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes memory x = hex"0123"; @@ -10,4 +8,6 @@ contract C { assert(x.length == 2); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/contract.sol b/test/libsolidity/smtCheckerTests/types/contract.sol index 39b6a024d..0ddc3e650 100644 --- a/test/libsolidity/smtCheckerTests/types/contract.sol +++ b/test/libsolidity/smtCheckerTests/types/contract.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(C c, C d) public pure { @@ -7,6 +5,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (84-98): CHC: Assertion violation happens here. +// Warning 6328: (51-65): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/contract_2.sol b/test/libsolidity/smtCheckerTests/types/contract_2.sol index c9e8c8ded..2357852d5 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_2.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract D { uint x; @@ -12,6 +10,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (109-123): CHC: Assertion violation happens here. +// Warning 6328: (76-90): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/contract_3.sol b/test/libsolidity/smtCheckerTests/types/contract_3.sol index 5508a6263..df6d4f0fb 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_3.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(C c, C d, C e) public pure { @@ -8,3 +6,5 @@ contract C assert(c == e); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol b/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol index 32092ff37..a0148e876 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(C c, address a) public pure { @@ -7,6 +5,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (90-113): CHC: Assertion violation happens here. +// Warning 6328: (57-80): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol b/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol index e37c7acba..f0607ebfe 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(C c, C d) public pure { @@ -9,3 +7,5 @@ contract C assert(a == address(d)); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/data_location_in_function_type.sol b/test/libsolidity/smtCheckerTests/types/data_location_in_function_type.sol index 9aa72ea7d..cbb9bc188 100644 --- a/test/libsolidity/smtCheckerTests/types/data_location_in_function_type.sol +++ b/test/libsolidity/smtCheckerTests/types/data_location_in_function_type.sol @@ -1,5 +1,6 @@ -pragma experimental SMTChecker; library L { struct Nested { uint y; } function c(function(Nested memory) external returns (uint)[] storage) external pure {} } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/enum_explicit_values.sol b/test/libsolidity/smtCheckerTests/types/enum_explicit_values.sol index a474da41f..0e1907039 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_explicit_values.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_explicit_values.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -10,3 +8,5 @@ contract C assert(d != _a); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol b/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol index 42422b7fb..23a9d20d1 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -10,5 +8,7 @@ contract C assert(d != _a); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (144-159): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n_a = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f(0) +// Warning 6328: (111-126): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n_a = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/types/enum_in_library.sol b/test/libsolidity/smtCheckerTests/types/enum_in_library.sol index 9c1c3caaa..9b84ebda1 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_in_library.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_in_library.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { enum D { Left, Right } @@ -13,3 +11,5 @@ contract C assert(_d == E.Left); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol b/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol index 51a9b2475..ef3f42091 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { enum D { Left, Right } @@ -13,5 +11,7 @@ contract C assert(_d == E.Left); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (159-179): CHC: Assertion violation happens here.\nCounterexample:\n\n_d = 1\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (126-146): CHC: Assertion violation happens here.\nCounterexample:\n\n_d = 1\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/types/enum_in_struct.sol b/test/libsolidity/smtCheckerTests/types/enum_in_struct.sol index 179b624fd..e7b2da712 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_in_struct.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_in_struct.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C @@ -10,4 +9,6 @@ contract C assert(s.d == D.Left); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/enum_range.sol b/test/libsolidity/smtCheckerTests/types/enum_range.sol index 144b1886b..0ec3c86cb 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_range.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_range.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -7,3 +5,5 @@ contract C assert(a == D.Left || a == D.Right); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol b/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol index f999f02cb..9a1ab6d32 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -9,5 +7,7 @@ contract C assert(d != _d); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (115-130): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n_d = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f(0) +// Warning 6328: (82-97): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n_d = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/types/enum_transitivity.sol b/test/libsolidity/smtCheckerTests/types/enum_transitivity.sol index 8946aae52..71cf88551 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_transitivity.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_transitivity.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -10,3 +8,5 @@ contract C assert(d == _b); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/event_with_rational_size_array.sol b/test/libsolidity/smtCheckerTests/types/event_with_rational_size_array.sol index 98dfcec33..982ec2ef6 100644 --- a/test/libsolidity/smtCheckerTests/types/event_with_rational_size_array.sol +++ b/test/libsolidity/smtCheckerTests/types/event_with_rational_size_array.sol @@ -1,2 +1,3 @@ -pragma experimental SMTChecker; contract a { event b(uint[(1 / 1)]); } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol index 900dd9529..3fc25a3c3 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes32 x; @@ -12,7 +10,8 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (96-110): CHC: Assertion violation happens here. -// Warning 6328: (114-130): CHC: Assertion violation happens here. +// Warning 6328: (63-77): CHC: Assertion violation happens here. +// Warning 6328: (81-97): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol index 0388174ee..cb8caa3c7 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes32 x; @@ -11,5 +9,7 @@ contract C return x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (116-130): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f(0)\n C.g() -- internal call +// Warning 6328: (83-97): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f(0)\n C.g() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_1.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_1.sol index 76e8c2ead..2aee19042 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_1.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_1.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract c { bytes10[6] data2; function test() public view returns (bytes10 r2) { r2 = data2[4][5]; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol index 710aae916..689db06c7 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bytes calldata x, uint y) external pure { require(x.length > 10); @@ -8,6 +7,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 5667: (75-81): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (43-49): Unused function parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_3.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_3.sol index 6914997bb..941cfd237 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_3.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { bytes16[][] a; constructor() { @@ -29,5 +28,7 @@ contract C { h()[5]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (488-494): CHC: Out of bounds access happens here. +// Warning 6368: (456-462): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol index c6fdb936b..ed675ce60 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes32 x = 0x00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff; @@ -11,5 +9,7 @@ contract C { assert(x[0] == x[23]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (264-285): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 450552876409790643671482431940419874915447411150352389258589821042463539455\nz = 0\no = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (231-252): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 450552876409790643671482431940419874915447411150352389258589821042463539455\nz = 0\no = 255\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol index 75069d37f..d2d4956f2 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes4 x = 0x01020304; @@ -10,7 +8,9 @@ contract C { assert(x[3] == b); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (120-137): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (171-188): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (201-218): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (87-104): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (138-155): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (168-185): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_6.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_6.sol index 0a0edf864..38e654ea4 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_6.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes4 x = 0x01020304; @@ -9,3 +7,5 @@ contract C { assert(b == b[0][0][0][0][0][0][0][0][0][0][0]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol index 9d47088e6..e264cf713 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint i) public pure { bytes4 x = 0x01020304; @@ -7,6 +5,8 @@ contract C { assert(x[i] == 0x00); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (132-136): CHC: Out of bounds access happens here.\nCounterexample:\n\ni = 4\nx = 16909060\n\nTransaction trace:\nC.constructor()\nC.f(4) -// Warning 6328: (125-145): CHC: Assertion violation happens here.\nCounterexample:\n\ni = 4\nx = 16909060\n\nTransaction trace:\nC.constructor()\nC.f(4) +// Warning 6368: (99-103): CHC: Out of bounds access happens here.\nCounterexample:\n\ni = 4\nx = 16909060\n\nTransaction trace:\nC.constructor()\nC.f(4) +// Warning 6328: (92-112): CHC: Assertion violation happens here.\nCounterexample:\n\ni = 4\nx = 16909060\n\nTransaction trace:\nC.constructor()\nC.f(4) diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_range.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_range.sol index 7f2643cd7..5a621ff3e 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_range.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_range.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes1 b) public pure { @@ -8,3 +6,5 @@ contract C { assert(uint8(b) > 127); // should hold } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/function_in_tuple_1.sol b/test/libsolidity/smtCheckerTests/types/function_in_tuple_1.sol index 1a41149e9..053ac9c6a 100644 --- a/test/libsolidity/smtCheckerTests/types/function_in_tuple_1.sol +++ b/test/libsolidity/smtCheckerTests/types/function_in_tuple_1.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract K { function f() public pure { (abi.encode, 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (76-91): Statement has no effect. +// Warning 6133: (43-58): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/types/function_in_tuple_2.sol b/test/libsolidity/smtCheckerTests/types/function_in_tuple_2.sol index f64311922..df15f1e5d 100644 --- a/test/libsolidity/smtCheckerTests/types/function_in_tuple_2.sol +++ b/test/libsolidity/smtCheckerTests/types/function_in_tuple_2.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract K { function f() public pure { (abi.encode, ""); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (76-92): Statement has no effect. +// Warning 6133: (43-59): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/types/function_type_array_as_reference_type.sol b/test/libsolidity/smtCheckerTests/types/function_type_array_as_reference_type.sol index 2500d3ec7..fc913702b 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_array_as_reference_type.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_array_as_reference_type.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct Nested { uint y; } // ensure that we consider array of function pointers as reference type @@ -6,4 +5,6 @@ contract C { function c(function(Nested memory) external returns (uint)[] memory) public pure {} function d(function(Nested memory) external returns (uint)[] calldata) external pure {} } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/function_type_arrays.sol b/test/libsolidity/smtCheckerTests/types/function_type_arrays.sol index a0ebf4379..baa8a1de9 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_arrays.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_arrays.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function(uint) external returns (uint)[] public x; function(uint) internal returns (uint)[10] y; @@ -11,4 +10,6 @@ contract C { a; b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/function_type_as_argument.sol b/test/libsolidity/smtCheckerTests/types/function_type_as_argument.sol index 0ba33e408..41b483866 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_as_argument.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_as_argument.sol @@ -1,5 +1,6 @@ -pragma experimental SMTChecker; contract C { function f(function(uint) external g) public { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/function_type_call.sol b/test/libsolidity/smtCheckerTests/types/function_type_call.sol index a41bc035c..b4ecead76 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_call.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_call.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function(uint) m_g; function f(function(uint) internal g) internal { @@ -8,6 +7,8 @@ contract C { f(m_g); } } +// ==== +// SMTEngine: all // ---- -// Warning 5729: (121-125): BMC does not yet implement this type of function call. -// Warning 5729: (121-125): BMC does not yet implement this type of function call. +// Warning 5729: (89-93): BMC does not yet implement this type of function call. +// Warning 5729: (89-93): BMC does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/function_type_external_address.sol b/test/libsolidity/smtCheckerTests/types/function_type_external_address.sol index 07bcce0a8..cb16bebb6 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_external_address.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_external_address.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; contract C { function f(address a, function(uint) external g) internal pure { address b = g.address; assert(a == b); } } +// ==== +// SMTEngine: all // ---- -// Warning 7650: (128-137): Assertion checker does not yet support this expression. -// Warning 7650: (128-137): Assertion checker does not yet support this expression. +// Warning 7650: (96-105): Assertion checker does not yet support this expression. +// Warning 7650: (96-105): Assertion checker does not yet support this expression. diff --git a/test/libsolidity/smtCheckerTests/types/function_type_members.sol b/test/libsolidity/smtCheckerTests/types/function_type_members.sol index b5f825b2b..3eb2b9814 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_members.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_members.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; contract C { function f(function(uint) external payable g) internal { g.selector; g{gas: 2, value: 3}(4); } } +// ==== +// SMTEngine: all // ---- -// Warning 7650: (108-118): Assertion checker does not yet support this expression. -// Warning 7650: (108-118): Assertion checker does not yet support this expression. +// Warning 7650: (76-86): Assertion checker does not yet support this expression. +// Warning 7650: (76-86): Assertion checker does not yet support this expression. diff --git a/test/libsolidity/smtCheckerTests/types/function_type_nested.sol b/test/libsolidity/smtCheckerTests/types/function_type_nested.sol index 40fa83699..1391361a3 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_nested.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_nested.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function(uint) m_g; function f1(function(uint) internal g1) internal { @@ -11,15 +10,17 @@ contract C { f2(f1); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (152-197): Assertion checker does not yet support the type of this variable. -// Warning 8364: (212-214): Assertion checker does not yet implement type function (function (uint256)) -// Warning 6031: (255-257): Internal error: Expression undefined for SMT solver. -// Warning 8364: (255-257): Assertion checker does not yet implement type function (function (uint256)) -// Warning 5729: (123-128): BMC does not yet implement this type of function call. -// Warning 8115: (152-197): Assertion checker does not yet support the type of this variable. -// Warning 8364: (212-214): Assertion checker does not yet implement type function (function (uint256)) -// Warning 5729: (212-219): BMC does not yet implement this type of function call. -// Warning 6031: (255-257): Internal error: Expression undefined for SMT solver. -// Warning 8364: (255-257): Assertion checker does not yet implement type function (function (uint256)) -// Warning 5729: (212-219): BMC does not yet implement this type of function call. +// Warning 8115: (120-165): Assertion checker does not yet support the type of this variable. +// Warning 8364: (180-182): Assertion checker does not yet implement type function (function (uint256)) +// Warning 6031: (223-225): Internal error: Expression undefined for SMT solver. +// Warning 8364: (223-225): Assertion checker does not yet implement type function (function (uint256)) +// Warning 5729: (91-96): BMC does not yet implement this type of function call. +// Warning 8115: (120-165): Assertion checker does not yet support the type of this variable. +// Warning 8364: (180-182): Assertion checker does not yet implement type function (function (uint256)) +// Warning 5729: (180-187): BMC does not yet implement this type of function call. +// Warning 6031: (223-225): Internal error: Expression undefined for SMT solver. +// Warning 8364: (223-225): Assertion checker does not yet implement type function (function (uint256)) +// Warning 5729: (180-187): BMC does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/function_type_nested_return.sol b/test/libsolidity/smtCheckerTests/types/function_type_nested_return.sol index ad2d02fa9..e07abfdd0 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_nested_return.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_nested_return.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function(uint) m_g; function r() internal view returns (function(uint)) { @@ -14,17 +13,19 @@ contract C { f2(f1); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (224-269): Assertion checker does not yet support the type of this variable. -// Warning 8364: (284-286): Assertion checker does not yet implement type function (function (uint256)) -// Warning 1695: (287-288): Assertion checker does not yet support this global variable. -// Warning 6031: (327-329): Internal error: Expression undefined for SMT solver. -// Warning 8364: (327-329): Assertion checker does not yet implement type function (function (uint256)) -// Warning 5729: (195-200): BMC does not yet implement this type of function call. -// Warning 8115: (224-269): Assertion checker does not yet support the type of this variable. -// Warning 8364: (284-286): Assertion checker does not yet implement type function (function (uint256)) -// Warning 1695: (287-288): Assertion checker does not yet support this global variable. -// Warning 5729: (284-291): BMC does not yet implement this type of function call. -// Warning 6031: (327-329): Internal error: Expression undefined for SMT solver. -// Warning 8364: (327-329): Assertion checker does not yet implement type function (function (uint256)) -// Warning 5729: (284-291): BMC does not yet implement this type of function call. +// Warning 8115: (192-237): Assertion checker does not yet support the type of this variable. +// Warning 8364: (252-254): Assertion checker does not yet implement type function (function (uint256)) +// Warning 1695: (255-256): Assertion checker does not yet support this global variable. +// Warning 6031: (295-297): Internal error: Expression undefined for SMT solver. +// Warning 8364: (295-297): Assertion checker does not yet implement type function (function (uint256)) +// Warning 5729: (163-168): BMC does not yet implement this type of function call. +// Warning 8115: (192-237): Assertion checker does not yet support the type of this variable. +// Warning 8364: (252-254): Assertion checker does not yet implement type function (function (uint256)) +// Warning 1695: (255-256): Assertion checker does not yet support this global variable. +// Warning 5729: (252-259): BMC does not yet implement this type of function call. +// Warning 6031: (295-297): Internal error: Expression undefined for SMT solver. +// Warning 8364: (295-297): Assertion checker does not yet implement type function (function (uint256)) +// Warning 5729: (252-259): BMC does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/mapping_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_1.sol index 4d71ff384..b457ddd14 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -8,3 +6,5 @@ contract C assert(x == map[2]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol b/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol index c41172020..d72f62be9 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -9,5 +7,7 @@ contract C assert(x != map[2]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (134-153): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\n\nTransaction trace:\nC.constructor()\nC.f(3) +// Warning 6328: (101-120): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\n\nTransaction trace:\nC.constructor()\nC.f(3) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_2.sol b/test/libsolidity/smtCheckerTests/types/mapping_2.sol index 58e1ef9b9..81a36e550 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_2.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => bool) map; @@ -7,5 +5,7 @@ contract C assert(x != map[2]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (111-130): CHC: Assertion violation happens here.\nCounterexample:\n\nx = false\n\nTransaction trace:\nC.constructor()\nC.f(false) +// Warning 6328: (78-97): CHC: Assertion violation happens here.\nCounterexample:\n\nx = false\n\nTransaction trace:\nC.constructor()\nC.f(false) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_2d_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_2d_1.sol index 3afab9550..1ea1168a0 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_2d_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_2d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint)) map; @@ -9,4 +7,6 @@ contract C assert(x == map[13][14]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol b/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol index a301198c5..57178c417 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint)) map; @@ -9,5 +7,7 @@ contract C assert(x == map[13][14]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (154-178): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 41\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (121-145): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 41\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_3.sol b/test/libsolidity/smtCheckerTests/types/mapping_3.sol index 985ed3a3e..9b7009a17 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_3.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -10,3 +8,5 @@ contract C assert(map[2] == x); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/mapping_3d_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_3d_1.sol index b2a90c913..baa4b00fd 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_3d_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_3d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => mapping (uint => uint))) map; @@ -9,4 +7,6 @@ contract C assert(x == map[13][14][15]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol b/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol index e5e75786f..9bcbc133b 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => mapping (uint => uint))) map; @@ -9,5 +7,7 @@ contract C assert(x == map[13][14][15]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (176-204): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 41\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (143-171): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 41\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_4.sol b/test/libsolidity/smtCheckerTests/types/mapping_4.sol index fc098ba1b..8f94c4071 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_4.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (bool => bool) map; @@ -9,4 +7,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/types/mapping_5.sol b/test/libsolidity/smtCheckerTests/types/mapping_5.sol index c8f60b672..c22947780 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_5.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (address => uint) map; @@ -7,5 +5,7 @@ contract C assert(x != map[a]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (125-144): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(38, 0) +// Warning 6328: (92-111): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(38, 0) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol index 098f25e30..36c6f843e 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) a; @@ -16,6 +14,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (266-286): CHC: Assertion violation happens here. +// Warning 6328: (233-253): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol index 05613cef7..79c03a7d5 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) a; @@ -31,7 +29,8 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (397-417): CHC: Assertion violation happens here. -// Warning 6328: (463-481): CHC: Assertion violation happens here. +// Warning 6328: (364-384): CHC: Assertion violation happens here. +// Warning 6328: (430-448): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/mapping_and_array_of_functions.sol b/test/libsolidity/smtCheckerTests/types/mapping_and_array_of_functions.sol index a10559ece..fecd43070 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_and_array_of_functions.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_and_array_of_functions.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract test { mapping (address => function() internal returns (uint)) a; mapping (address => function() external) b; mapping (address => function() external[]) c; function() external[] d; } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol index 589e6eed6..f14978b83 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { mapping(uint => uint) x; mapping(uint => uint) y; @@ -15,6 +13,8 @@ contract c { assert(a[2] == y[2] && a[2] != x[2]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (288-324): CHC: Assertion violation happens here.\nCounterexample:\n\ncond = true\n\nTransaction trace:\nc.constructor()\nc.f(true) -// Warning 6328: (336-372): CHC: Assertion violation happens here.\nCounterexample:\n\ncond = false\n\nTransaction trace:\nc.constructor()\nc.f(false) +// Warning 6328: (255-291): CHC: Assertion violation happens here.\nCounterexample:\n\ncond = true\n\nTransaction trace:\nc.constructor()\nc.f(true) +// Warning 6328: (303-339): CHC: Assertion violation happens here.\nCounterexample:\n\ncond = false\n\nTransaction trace:\nc.constructor()\nc.f(false) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol index 76c34fe51..670b08354 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { mapping(uint => uint) x; function f(mapping(uint => uint) storage map, uint index, uint value) internal { @@ -12,6 +10,7 @@ contract c { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (289-306): CHC: Assertion violation happens here. +// Warning 6328: (256-273): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_1.sol index 188bc59a8..26fcd7cdc 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -8,3 +6,5 @@ contract C assert(map[x] == map[y]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol b/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol index 7c9e79b2c..0290d31e1 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -8,5 +6,7 @@ contract C assert(map[x] == map[y]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (119-133): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nC.f(0, 1) +// Warning 6328: (86-100): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nC.f(0, 1) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_struct_assignment.sol b/test/libsolidity/smtCheckerTests/types/mapping_struct_assignment.sol index ae1da3202..88c07f183 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_struct_assignment.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_struct_assignment.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { @@ -10,5 +9,7 @@ contract C smap[y] = S(v); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (140-144): BMC: Condition is always false. +// Warning 6838: (108-112): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/types/mapping_unsupported_key_type_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_unsupported_key_type_1.sol index d524a0da5..3b3a468af 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_unsupported_key_type_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_unsupported_key_type_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (string => uint) map; @@ -8,4 +6,6 @@ contract C assert(x == map[s]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/no_effect_statements.sol b/test/libsolidity/smtCheckerTests/types/no_effect_statements.sol index 779fb13f6..bc7cadee0 100644 --- a/test/libsolidity/smtCheckerTests/types/no_effect_statements.sol +++ b/test/libsolidity/smtCheckerTests/types/no_effect_statements.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract test { struct s { uint a; uint b;} function f() pure public returns (bytes1) { @@ -9,14 +8,16 @@ contract test { uint[7]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (118-124): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6133: (130-131): Statement has no effect. -// Warning 6133: (135-141): Statement has no effect. -// Warning 6133: (145-149): Statement has no effect. -// Warning 6133: (153-157): Statement has no effect. -// Warning 6133: (161-168): Statement has no effect. -// Warning 8364: (145-149): Assertion checker does not yet implement type type(struct test.s memory[7] memory) -// Warning 8364: (161-168): Assertion checker does not yet implement type type(uint256[7] memory) -// Warning 8364: (145-149): Assertion checker does not yet implement type type(struct test.s memory[7] memory) -// Warning 8364: (161-168): Assertion checker does not yet implement type type(uint256[7] memory) +// Warning 6321: (86-92): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6133: (98-99): Statement has no effect. +// Warning 6133: (103-109): Statement has no effect. +// Warning 6133: (113-117): Statement has no effect. +// Warning 6133: (121-125): Statement has no effect. +// Warning 6133: (129-136): Statement has no effect. +// Warning 8364: (113-117): Assertion checker does not yet implement type type(struct test.s memory[7] memory) +// Warning 8364: (129-136): Assertion checker does not yet implement type type(uint256[7] memory) +// Warning 8364: (113-117): Assertion checker does not yet implement type type(struct test.s memory[7] memory) +// Warning 8364: (129-136): Assertion checker does not yet implement type type(uint256[7] memory) diff --git a/test/libsolidity/smtCheckerTests/types/rational_large_1.sol b/test/libsolidity/smtCheckerTests/types/rational_large_1.sol index b80ee66cb..a7d969185 100644 --- a/test/libsolidity/smtCheckerTests/types/rational_large_1.sol +++ b/test/libsolidity/smtCheckerTests/types/rational_large_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract c { function f() public pure returns (uint) { uint x = 8e130%9; @@ -6,6 +5,8 @@ contract c { assert(x != 8); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-84): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (128-142): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nx = 8\n\nTransaction trace:\nc.constructor()\nc.f() +// Warning 6321: (48-52): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (96-110): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nx = 8\n\nTransaction trace:\nc.constructor()\nc.f() diff --git a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_1.sol b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_1.sol index 15e9c4dfd..35ebda1ee 100644 --- a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_1.sol +++ b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_1.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { uint[][] a; function f(uint[1] memory x) public { a.push(x); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_2.sol b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_2.sol index 1164df384..c29124b8d 100644 --- a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_2.sol +++ b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint[][] a; function f(uint[1][] memory x) public { @@ -6,3 +5,5 @@ contract C { a.push(x[2]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_3.sol b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_3.sol index 09b8a9773..6f4ce48f6 100644 --- a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_3.sol +++ b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract D { bytes16[] inner; bytes32[][] data; @@ -7,3 +6,5 @@ contract D { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_4.sol b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_4.sol index cbfd162ca..31acb449f 100644 --- a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_4.sol +++ b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract D { int16[] inner; int[][] data; @@ -7,3 +6,5 @@ contract D { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol index d96ed1ceb..acdaf3ae0 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { address a; @@ -18,5 +17,7 @@ contract C assert(a > 0x0000000000000000000000000000000000000000 && b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (362-421): CHC: Assertion violation happens here.\nCounterexample:\na = 512, b = false, c = 0\nx = 1\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = false, c = 0\nC.f(1) +// Warning 6328: (330-389): CHC: Assertion violation happens here.\nCounterexample:\na = 512, b = false, c = 0\nx = 1\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = false, c = 0\nC.f(1) diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol index e84f4f1a9..77ef26488 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { address a; @@ -8,5 +7,7 @@ contract C assert(c > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (123-136): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = false, c = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = false, c = 0\nC.f() +// Warning 6328: (91-104): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = false, c = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = false, c = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_3.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_3.sol index 39049b99e..5a855aaf6 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_3.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public { @@ -23,3 +22,5 @@ contract C bool b; uint c; } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol index 03a80c845..2f3c977b4 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public view { @@ -6,5 +5,7 @@ contract C } uint c; } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (84-97): CHC: Assertion violation happens here.\nCounterexample:\nc = 0\n\nTransaction trace:\nC.constructor()\nState: c = 0\nC.f() +// Warning 6328: (52-65): CHC: Assertion violation happens here.\nCounterexample:\nc = 0\n\nTransaction trace:\nC.constructor()\nState: c = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/string_1.sol b/test/libsolidity/smtCheckerTests/types/string_1.sol index 8b2ad44b0..8209f9928 100644 --- a/test/libsolidity/smtCheckerTests/types/string_1.sol +++ b/test/libsolidity/smtCheckerTests/types/string_1.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(string memory s1, string memory s2) public pure { assert(bytes(s1).length == bytes(s2).length); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (110-154): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = [26, 26, 26, 26, 26, 26, 26, 9, 26, 26, 26, 26, 26, 14, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26]\ns2 = [18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 15, 18, 18, 18, 18, 18, 22, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18]\n\nTransaction trace:\nC.constructor()\nC.f([26, 26, 26, 26, 26, 26, 26, 9, 26, 26, 26, 26, 26, 14, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26], [18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 15, 18, 18, 18, 18, 18, 22, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18]) +// Warning 6328: (77-121): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(s1, s2) diff --git a/test/libsolidity/smtCheckerTests/types/string_2.sol b/test/libsolidity/smtCheckerTests/types/string_2.sol index 15664c32e..633a0bcf0 100644 --- a/test/libsolidity/smtCheckerTests/types/string_2.sol +++ b/test/libsolidity/smtCheckerTests/types/string_2.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { string memory s = "Hello World"; } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (76-91): Unused local variable. +// Warning 2072: (43-58): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/types/string_length.sol b/test/libsolidity/smtCheckerTests/types/string_length.sol index 632eada19..86390c32b 100644 --- a/test/libsolidity/smtCheckerTests/types/string_length.sol +++ b/test/libsolidity/smtCheckerTests/types/string_length.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { string memory x = "Hello World"; @@ -15,4 +13,6 @@ contract C { assert(bytes(y).length == 11); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol index 25ca88489..8015d2a1e 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes32 _x) public pure { require(_x == "test"); @@ -9,5 +7,7 @@ contract C { assert(_x == z); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (175-190): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) +// Warning 6328: (142-157): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol index 555f1228f..c534ce93b 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes32 _x) public pure { require(_x == "test"); @@ -8,5 +6,7 @@ contract C { assert(_x == z); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (176-191): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) +// Warning 6328: (143-158): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol index d940e6063..b6fe29658 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes32 _x) public pure { require(_x == "test"); @@ -10,5 +8,7 @@ contract C { assert(_x == z); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (186-201): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) +// Warning 6328: (153-168): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol index c96863e12..8514d785d 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() internal pure returns (bytes32, bytes16) { return ("test", "testz"); @@ -14,5 +12,7 @@ contract C { assert(_x == z); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (261-276): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)\n C.g() -- internal call +// Warning 6328: (228-243): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)\n C.g() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol index e32c28613..9586b7b3e 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() internal pure returns (bytes32, bytes16) { return ("test", "testz"); @@ -12,5 +10,7 @@ contract C { assert(_x == z); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (251-266): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)\n C.g() -- internal call +// Warning 6328: (218-233): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)\n C.g() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol index 62f84f0f5..72c4b500d 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes32 _x) public pure { require(_x == "test"); @@ -9,5 +7,7 @@ contract C { assert(y == "testx"); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (170-190): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) +// Warning 6328: (137-157): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol index 8c9b23539..24a2652d8 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes32 _x) public pure { require(_x != "test"); @@ -9,6 +7,8 @@ contract C { assert(y != "testx"); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (147-166): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 0\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) -// Warning 6328: (170-190): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538830022687173130149211684818290356179572910782152375644828738034597888\ny = 52647538830022687173130149211684818290356179572910782152375644828738034597888\nz = 52647538830022687173130149211684818290356179572910782152375644828738034597888\n\nTransaction trace:\nC.constructor()\nC.f(52647538830022687173130149211684818290356179572910782152375644828738034597888) +// Warning 6328: (114-133): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 0\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (137-157): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538830022687173130149211684818290356179572910782152375644828738034597888\ny = 52647538830022687173130149211684818290356179572910782152375644828738034597888\nz = 52647538830022687173130149211684818290356179572910782152375644828738034597888\n\nTransaction trace:\nC.constructor()\nC.f(52647538830022687173130149211684818290356179572910782152375644828738034597888) diff --git a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_safe.sol b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_safe.sol index e767eb5ca..be82f4c8a 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_safe.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_safe.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -31,3 +30,5 @@ contract C { assert(s1[1].ts[4].a[5] == 6); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_unsafe.sol b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_unsafe.sol index 89ed8896b..a6ec06ba1 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_unsafe.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -32,5 +31,7 @@ contract C { //assert(s1[0].ts[3].y == s2.ts[3].y); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (183-194): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (151-162): Unused function parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_storage_safe.sol b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_storage_safe.sol index 45a2d4650..425cba6a0 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_storage_safe.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_storage_safe.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -51,3 +50,5 @@ contract C { s1.pop(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol index 5748823ac..c596fcdf0 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -18,8 +17,9 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (208-228): CHC: Assertion violation happens here. -// Warning 6328: (232-252): CHC: Assertion violation happens here. -// Warning 6328: (402-438): CHC: Assertion violation happens here. +// Warning 6328: (176-196): CHC: Assertion violation happens here. +// Warning 6328: (200-220): CHC: Assertion violation happens here. +// Warning 6328: (370-406): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_storage.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_storage.sol index 5191e9daf..4c13699e2 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_storage.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -25,5 +23,7 @@ contract C { s2.x = _x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (402-438): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 0, a: []}, s2 = {x: 0, a: []}\nb = false\ns3 = {x: 42, a: []}\n\nTransaction trace:\nC.constructor()\nState: s1 = {x: 0, a: []}, s2 = {x: 0, a: []}\nC.f(false) +// Warning 6328: (369-405): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 0, a: []}, s2 = {x: 0, a: []}\nb = false\ns3 = {x: 42, a: []}\n\nTransaction trace:\nC.constructor()\nState: s1 = {x: 0, a: []}, s2 = {x: 0, a: []}\nC.f(false) diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_safe.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_safe.sol index ca7f5125e..e1936cdf9 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_safe.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_safe.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -29,3 +28,5 @@ contract C { assert(s1.ts[4].a[5] == 6); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_1.sol index 2f3a523b2..6721630a5 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -29,9 +28,11 @@ contract C { assert(s1.ts[4].a[5] != 6); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (228-245): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 0, a: []}, a: [], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (263-282): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (325-345): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (389-412): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: []}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (467-493): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: [0, 0, 0, 0, 0, 6]}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (196-213): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 0, a: []}, a: [], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (231-250): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (293-313): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (357-380): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: []}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (435-461): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: [0, 0, 0, 0, 0, 6]}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_2.sol index c9b236e74..d34eb47ed 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -35,5 +34,7 @@ contract C { assert(s1.ts[4].a[5] == s2.ts[4].a[5]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (836-874): CHC: Assertion violation happens here. +// Warning 6328: (804-842): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_safe.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_safe.sol index 514935f13..29261bab0 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_safe.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct T { uint y; @@ -39,3 +37,5 @@ contract C { assert(s1.ts[4].a[5] == 6); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_unsafe_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_unsafe_1.sol index 30344f25c..d1686e8c0 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_unsafe_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_unsafe_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct T { uint y; @@ -41,10 +39,10 @@ contract C { } } // ==== -// SMTIgnoreCex: yes +// SMTEngine: all // ---- -// Warning 6328: (181-198): CHC: Assertion violation happens here. -// Warning 6328: (216-235): CHC: Assertion violation happens here. -// Warning 6328: (299-319): CHC: Assertion violation happens here. -// Warning 6328: (437-460): CHC: Assertion violation happens here. -// Warning 6328: (611-637): CHC: Assertion violation happens here. +// Warning 6328: (148-165): CHC: Assertion violation happens here. +// Warning 6328: (183-202): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 3, a: []}, a: [], ts: []}\n\nTransaction trace:\nC.constructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nC.f() +// Warning 6328: (266-286): CHC: Assertion violation happens here. +// Warning 6328: (404-427): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: []}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nC.f() +// Warning 6328: (578-604): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: [0, 0, 0, 0, 0, 6]}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args.sol index fd2ba18e7..91bd56fc9 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -19,5 +17,7 @@ contract C { assert(outer.s.x == 42); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (265-288): CHC: Assertion violation happens here.\nCounterexample:\n\ninner = {x: 43}\nouter = {s: {x: 43}, y: 512}\n\nTransaction trace:\nC.constructor()\nC.test() +// Warning 6328: (232-255): CHC: Assertion violation happens here.\nCounterexample:\n\ninner = {x: 43}\nouter = {s: {x: 43}, y: 512}\n\nTransaction trace:\nC.constructor()\nC.test() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args_2.sol index 9ec7425b1..6a1dd2995 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -16,5 +14,7 @@ contract C { assert(s.x == 0 || s.y == 0 || s.z == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (224-264): CHC: Assertion violation happens here.\nCounterexample:\n\ns = {x: 3, y: 2, z: 1}\n\nTransaction trace:\nC.constructor()\nC.test() +// Warning 6328: (191-231): CHC: Assertion violation happens here.\nCounterexample:\n\ns = {x: 3, y: 2, z: 1}\n\nTransaction trace:\nC.constructor()\nC.test() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_1.sol index 1265adbb9..236c89740 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract Test { struct RecursiveStruct { RecursiveStruct[] vals; @@ -7,7 +6,9 @@ contract Test { RecursiveStruct[1] memory val = [ RecursiveStruct(new RecursiveStruct[](42)) ]; } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (136-165): Unused local variable. -// Warning 8364: (170-212): Assertion checker does not yet implement type struct Test.RecursiveStruct memory -// Warning 8364: (170-212): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 2072: (104-133): Unused local variable. +// Warning 8364: (138-180): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 8364: (138-180): Assertion checker does not yet implement type struct Test.RecursiveStruct memory diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_2.sol index 4905e95d6..232ff8c10 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract Test { struct RecursiveStruct { uint x; @@ -9,13 +8,15 @@ contract Test { assert(val.x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (146-172): Assertion checker does not yet support the type of this variable. -// Warning 8364: (175-220): Assertion checker does not yet implement type struct Test.RecursiveStruct memory -// Warning 7650: (231-236): Assertion checker does not yet support this expression. -// Warning 8364: (231-234): Assertion checker does not yet implement type struct Test.RecursiveStruct memory -// Warning 6328: (224-242): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nTest.constructor()\nTest.func() -// Warning 8115: (146-172): Assertion checker does not yet support the type of this variable. -// Warning 8364: (175-220): Assertion checker does not yet implement type struct Test.RecursiveStruct memory -// Warning 7650: (231-236): Assertion checker does not yet support this expression. -// Warning 8364: (231-234): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 8115: (114-140): Assertion checker does not yet support the type of this variable. +// Warning 8364: (143-188): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 7650: (199-204): Assertion checker does not yet support this expression. +// Warning 8364: (199-202): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 6328: (192-210): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nTest.constructor()\nTest.func() +// Warning 8115: (114-140): Assertion checker does not yet support the type of this variable. +// Warning 8364: (143-188): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 7650: (199-204): Assertion checker does not yet support this expression. +// Warning 8364: (199-202): Assertion checker does not yet implement type struct Test.RecursiveStruct memory diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol index e63ea49f5..b19721725 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -14,7 +13,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (184-204): CHC: Assertion violation happens here. -// Warning 6328: (208-242): CHC: Assertion violation happens here. +// Warning 6328: (152-172): CHC: Assertion violation happens here. +// Warning 6328: (176-210): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_storage.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_storage.sol index be21014e8..5c00b306c 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_storage.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_storage.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -19,7 +18,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (240-260): CHC: Assertion violation happens here. -// Warning 6328: (264-298): CHC: Assertion violation happens here. +// Warning 6328: (208-228): CHC: Assertion violation happens here. +// Warning 6328: (232-266): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_mapping.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_mapping.sol index d5ffe6615..0ebb38c3d 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_mapping.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -15,4 +13,6 @@ contract C { s1.m[a] = b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol index 18ec523f7..c3bb77400 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -19,5 +17,7 @@ contract C { assert(outer.s.x == 42); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (252-275): CHC: Assertion violation happens here.\nCounterexample:\n\ninner = {x: 43}\nouter = {s: {x: 43}, y: 512}\n\nTransaction trace:\nC.constructor()\nC.test() +// Warning 6328: (219-242): CHC: Assertion violation happens here.\nCounterexample:\n\ninner = {x: 43}\nouter = {s: {x: 43}, y: 512}\n\nTransaction trace:\nC.constructor()\nC.test() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor_named_args.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor_named_args.sol index 7fae9133d..7efd669d8 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor_named_args.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor_named_args.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct B { uint b1; } struct A { uint a1; B a2; } @@ -8,3 +6,5 @@ contract C { assert(a.a1 == 1 && a.a2.b1 == 2); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_temporary.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_temporary.sol index 9cc180219..5d5b6b0a0 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_temporary.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_temporary.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -15,4 +13,6 @@ contract C { assert(T(S(42), 1).s.x == 42); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol index f41385248..a6882dd40 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -12,26 +10,28 @@ contract C { assert(s1.a.length == s2.a.length); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref -// Warning 6328: (124-144): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (148-182): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6328: (91-111): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (115-149): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol index 734ca9d02..43895c661 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -21,95 +19,97 @@ contract C { s2.a[0].x = 43; } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (193-202): Assertion checker does not yet support this expression. -// Warning 7650: (193-197): Assertion checker does not yet support this expression. -// Warning 8364: (193-195): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (193-200): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (206-215): Assertion checker does not yet support this expression. -// Warning 7650: (206-210): Assertion checker does not yet support this expression. -// Warning 8364: (206-208): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (206-213): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (246-250): Assertion checker does not yet support this expression. -// Warning 8364: (246-248): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (246-250): Assertion checker does not support recursive structs. -// Warning 7650: (259-263): Assertion checker does not yet support this expression. -// Warning 8364: (259-261): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (259-263): Assertion checker does not support recursive structs. -// Warning 7650: (272-276): Assertion checker does not yet support this expression. -// Warning 8364: (272-274): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (272-283): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (272-276): Assertion checker does not support recursive structs. +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (160-169): Assertion checker does not yet support this expression. +// Warning 7650: (160-164): Assertion checker does not yet support this expression. +// Warning 8364: (160-162): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (160-167): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (173-182): Assertion checker does not yet support this expression. +// Warning 7650: (173-177): Assertion checker does not yet support this expression. +// Warning 8364: (173-175): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (173-180): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (213-217): Assertion checker does not yet support this expression. +// Warning 8364: (213-215): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (213-217): Assertion checker does not support recursive structs. +// Warning 7650: (226-230): Assertion checker does not yet support this expression. +// Warning 8364: (226-228): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (226-230): Assertion checker does not support recursive structs. +// Warning 7650: (239-243): Assertion checker does not yet support this expression. +// Warning 8364: (239-241): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (239-250): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (239-243): Assertion checker does not support recursive structs. +// Warning 7650: (254-258): Assertion checker does not yet support this expression. +// Warning 8364: (254-256): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (254-265): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (254-258): Assertion checker does not support recursive structs. +// Warning 7650: (269-278): Assertion checker does not yet support this expression. +// Warning 7650: (269-273): Assertion checker does not yet support this expression. +// Warning 8364: (269-271): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (269-276): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (269-278): Assertion checker does not support recursive structs. +// Warning 7650: (287-296): Assertion checker does not yet support this expression. // Warning 7650: (287-291): Assertion checker does not yet support this expression. // Warning 8364: (287-289): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (287-298): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (287-291): Assertion checker does not support recursive structs. -// Warning 7650: (302-311): Assertion checker does not yet support this expression. -// Warning 7650: (302-306): Assertion checker does not yet support this expression. -// Warning 8364: (302-304): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (302-309): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (302-311): Assertion checker does not support recursive structs. -// Warning 7650: (320-329): Assertion checker does not yet support this expression. -// Warning 7650: (320-324): Assertion checker does not yet support this expression. -// Warning 8364: (320-322): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (320-327): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (320-329): Assertion checker does not support recursive structs. -// Warning 6328: (124-144): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (148-182): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (193-200): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (206-213): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (186-216): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (302-309): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (320-327): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (193-202): Assertion checker does not yet support this expression. -// Warning 7650: (193-197): Assertion checker does not yet support this expression. -// Warning 8364: (193-195): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (193-200): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (206-215): Assertion checker does not yet support this expression. -// Warning 7650: (206-210): Assertion checker does not yet support this expression. -// Warning 8364: (206-208): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (206-213): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (246-250): Assertion checker does not yet support this expression. -// Warning 8364: (246-248): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (246-250): Assertion checker does not support recursive structs. -// Warning 7650: (259-263): Assertion checker does not yet support this expression. -// Warning 8364: (259-261): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (259-263): Assertion checker does not support recursive structs. -// Warning 7650: (272-276): Assertion checker does not yet support this expression. -// Warning 8364: (272-274): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (272-283): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (272-276): Assertion checker does not support recursive structs. +// Warning 8364: (287-294): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (287-296): Assertion checker does not support recursive structs. +// Warning 6328: (91-111): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (115-149): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (160-167): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (173-180): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (153-183): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (269-276): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (287-294): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (160-169): Assertion checker does not yet support this expression. +// Warning 7650: (160-164): Assertion checker does not yet support this expression. +// Warning 8364: (160-162): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (160-167): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (173-182): Assertion checker does not yet support this expression. +// Warning 7650: (173-177): Assertion checker does not yet support this expression. +// Warning 8364: (173-175): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (173-180): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (213-217): Assertion checker does not yet support this expression. +// Warning 8364: (213-215): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (213-217): Assertion checker does not support recursive structs. +// Warning 7650: (226-230): Assertion checker does not yet support this expression. +// Warning 8364: (226-228): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (226-230): Assertion checker does not support recursive structs. +// Warning 7650: (239-243): Assertion checker does not yet support this expression. +// Warning 8364: (239-241): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (239-250): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (239-243): Assertion checker does not support recursive structs. +// Warning 7650: (254-258): Assertion checker does not yet support this expression. +// Warning 8364: (254-256): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (254-265): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (254-258): Assertion checker does not support recursive structs. +// Warning 7650: (269-278): Assertion checker does not yet support this expression. +// Warning 7650: (269-273): Assertion checker does not yet support this expression. +// Warning 8364: (269-271): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (269-276): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (269-278): Assertion checker does not support recursive structs. +// Warning 7650: (287-296): Assertion checker does not yet support this expression. // Warning 7650: (287-291): Assertion checker does not yet support this expression. // Warning 8364: (287-289): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (287-298): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (287-291): Assertion checker does not support recursive structs. -// Warning 7650: (302-311): Assertion checker does not yet support this expression. -// Warning 7650: (302-306): Assertion checker does not yet support this expression. -// Warning 8364: (302-304): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (302-309): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (302-311): Assertion checker does not support recursive structs. -// Warning 7650: (320-329): Assertion checker does not yet support this expression. -// Warning 7650: (320-324): Assertion checker does not yet support this expression. -// Warning 8364: (320-322): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (320-327): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (320-329): Assertion checker does not support recursive structs. +// Warning 8364: (287-294): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (287-296): Assertion checker does not support recursive structs. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol index 63a86cfde..67740db93 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -34,198 +32,200 @@ contract C { s2.a[0].a[0].x = 44; } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (194-198): Assertion checker does not yet support this expression. -// Warning 8364: (194-196): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (222-226): Assertion checker does not yet support this expression. -// Warning 8364: (222-224): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (249-258): Assertion checker does not yet support this expression. -// Warning 7650: (249-253): Assertion checker does not yet support this expression. -// Warning 8364: (249-251): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (249-256): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (262-271): Assertion checker does not yet support this expression. -// Warning 7650: (262-266): Assertion checker does not yet support this expression. -// Warning 8364: (262-264): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (262-269): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (161-165): Assertion checker does not yet support this expression. +// Warning 8364: (161-163): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (189-193): Assertion checker does not yet support this expression. +// Warning 8364: (189-191): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (216-225): Assertion checker does not yet support this expression. +// Warning 7650: (216-220): Assertion checker does not yet support this expression. +// Warning 8364: (216-218): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (216-223): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (229-238): Assertion checker does not yet support this expression. +// Warning 7650: (229-233): Assertion checker does not yet support this expression. +// Warning 8364: (229-231): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (229-236): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (251-260): Assertion checker does not yet support this expression. +// Warning 7650: (251-255): Assertion checker does not yet support this expression. +// Warning 8364: (251-253): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (251-258): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (284-293): Assertion checker does not yet support this expression. // Warning 7650: (284-288): Assertion checker does not yet support this expression. // Warning 8364: (284-286): Assertion checker does not yet implement type struct C.S storage ref // Warning 8364: (284-291): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (317-326): Assertion checker does not yet support this expression. -// Warning 7650: (317-321): Assertion checker does not yet support this expression. -// Warning 8364: (317-319): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (317-324): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (349-358): Assertion checker does not yet support this expression. -// Warning 7650: (349-353): Assertion checker does not yet support this expression. -// Warning 8364: (349-351): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (349-356): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (369-378): Assertion checker does not yet support this expression. -// Warning 7650: (369-373): Assertion checker does not yet support this expression. -// Warning 8364: (369-371): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (369-376): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (582-586): Assertion checker does not yet support this expression. -// Warning 8364: (582-584): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (582-586): Assertion checker does not support recursive structs. -// Warning 7650: (595-599): Assertion checker does not yet support this expression. -// Warning 8364: (595-597): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (595-599): Assertion checker does not support recursive structs. -// Warning 7650: (608-612): Assertion checker does not yet support this expression. -// Warning 8364: (608-610): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (608-619): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (608-612): Assertion checker does not support recursive structs. +// Warning 7650: (316-325): Assertion checker does not yet support this expression. +// Warning 7650: (316-320): Assertion checker does not yet support this expression. +// Warning 8364: (316-318): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (316-323): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (336-345): Assertion checker does not yet support this expression. +// Warning 7650: (336-340): Assertion checker does not yet support this expression. +// Warning 8364: (336-338): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (336-343): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (549-553): Assertion checker does not yet support this expression. +// Warning 8364: (549-551): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (549-553): Assertion checker does not support recursive structs. +// Warning 7650: (562-566): Assertion checker does not yet support this expression. +// Warning 8364: (562-564): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (562-566): Assertion checker does not support recursive structs. +// Warning 7650: (575-579): Assertion checker does not yet support this expression. +// Warning 8364: (575-577): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (575-586): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (575-579): Assertion checker does not support recursive structs. +// Warning 7650: (590-594): Assertion checker does not yet support this expression. +// Warning 8364: (590-592): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (590-601): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (590-594): Assertion checker does not support recursive structs. +// Warning 7650: (605-614): Assertion checker does not yet support this expression. +// Warning 7650: (605-609): Assertion checker does not yet support this expression. +// Warning 8364: (605-607): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (605-612): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (605-614): Assertion checker does not support recursive structs. +// Warning 7650: (623-632): Assertion checker does not yet support this expression. // Warning 7650: (623-627): Assertion checker does not yet support this expression. // Warning 8364: (623-625): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (623-634): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (623-627): Assertion checker does not support recursive structs. -// Warning 7650: (638-647): Assertion checker does not yet support this expression. -// Warning 7650: (638-642): Assertion checker does not yet support this expression. -// Warning 8364: (638-640): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (638-645): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (638-647): Assertion checker does not support recursive structs. -// Warning 7650: (656-665): Assertion checker does not yet support this expression. -// Warning 7650: (656-660): Assertion checker does not yet support this expression. -// Warning 8364: (656-658): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (656-663): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (656-665): Assertion checker does not support recursive structs. -// Warning 7650: (674-683): Assertion checker does not yet support this expression. -// Warning 7650: (674-678): Assertion checker does not yet support this expression. -// Warning 8364: (674-676): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (674-681): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (674-690): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (674-683): Assertion checker does not support recursive structs. -// Warning 7650: (694-703): Assertion checker does not yet support this expression. -// Warning 7650: (694-698): Assertion checker does not yet support this expression. -// Warning 8364: (694-696): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (694-701): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (694-710): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (694-703): Assertion checker does not support recursive structs. -// Warning 7650: (714-728): Assertion checker does not yet support this expression. -// Warning 7650: (714-723): Assertion checker does not yet support this expression. -// Warning 7650: (714-718): Assertion checker does not yet support this expression. -// Warning 8364: (714-716): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (714-721): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (714-726): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (714-728): Assertion checker does not support recursive structs. -// Warning 7650: (737-751): Assertion checker does not yet support this expression. -// Warning 7650: (737-746): Assertion checker does not yet support this expression. -// Warning 7650: (737-741): Assertion checker does not yet support this expression. -// Warning 8364: (737-739): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (737-744): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (737-749): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (737-751): Assertion checker does not support recursive structs. -// Warning 6328: (124-144): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (148-182): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (249-256): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (262-269): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (242-272): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8364: (623-630): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (623-632): Assertion checker does not support recursive structs. +// Warning 7650: (641-650): Assertion checker does not yet support this expression. +// Warning 7650: (641-645): Assertion checker does not yet support this expression. +// Warning 8364: (641-643): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (641-648): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (641-657): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (641-650): Assertion checker does not support recursive structs. +// Warning 7650: (661-670): Assertion checker does not yet support this expression. +// Warning 7650: (661-665): Assertion checker does not yet support this expression. +// Warning 8364: (661-663): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (661-668): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (661-677): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (661-670): Assertion checker does not support recursive structs. +// Warning 7650: (681-695): Assertion checker does not yet support this expression. +// Warning 7650: (681-690): Assertion checker does not yet support this expression. +// Warning 7650: (681-685): Assertion checker does not yet support this expression. +// Warning 8364: (681-683): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (681-688): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (681-693): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (681-695): Assertion checker does not support recursive structs. +// Warning 7650: (704-718): Assertion checker does not yet support this expression. +// Warning 7650: (704-713): Assertion checker does not yet support this expression. +// Warning 7650: (704-708): Assertion checker does not yet support this expression. +// Warning 8364: (704-706): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (704-711): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (704-716): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (704-718): Assertion checker does not support recursive structs. +// Warning 6328: (91-111): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (115-149): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (216-223): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (229-236): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (209-239): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (251-258): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() // Warning 6368: (284-291): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (317-324): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (349-356): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (369-376): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (342-386): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (638-645): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (656-663): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (674-681): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (694-701): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (714-721): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (714-726): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (737-744): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (737-749): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (194-198): Assertion checker does not yet support this expression. -// Warning 8364: (194-196): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (222-226): Assertion checker does not yet support this expression. -// Warning 8364: (222-224): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (249-258): Assertion checker does not yet support this expression. -// Warning 7650: (249-253): Assertion checker does not yet support this expression. -// Warning 8364: (249-251): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (249-256): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (262-271): Assertion checker does not yet support this expression. -// Warning 7650: (262-266): Assertion checker does not yet support this expression. -// Warning 8364: (262-264): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (262-269): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6368: (316-323): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (336-343): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (309-353): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (605-612): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (623-630): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (641-648): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (661-668): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (681-688): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (681-693): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (704-711): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (704-716): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (161-165): Assertion checker does not yet support this expression. +// Warning 8364: (161-163): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (189-193): Assertion checker does not yet support this expression. +// Warning 8364: (189-191): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (216-225): Assertion checker does not yet support this expression. +// Warning 7650: (216-220): Assertion checker does not yet support this expression. +// Warning 8364: (216-218): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (216-223): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (229-238): Assertion checker does not yet support this expression. +// Warning 7650: (229-233): Assertion checker does not yet support this expression. +// Warning 8364: (229-231): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (229-236): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (251-260): Assertion checker does not yet support this expression. +// Warning 7650: (251-255): Assertion checker does not yet support this expression. +// Warning 8364: (251-253): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (251-258): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (284-293): Assertion checker does not yet support this expression. // Warning 7650: (284-288): Assertion checker does not yet support this expression. // Warning 8364: (284-286): Assertion checker does not yet implement type struct C.S storage ref // Warning 8364: (284-291): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (317-326): Assertion checker does not yet support this expression. -// Warning 7650: (317-321): Assertion checker does not yet support this expression. -// Warning 8364: (317-319): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (317-324): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (349-358): Assertion checker does not yet support this expression. -// Warning 7650: (349-353): Assertion checker does not yet support this expression. -// Warning 8364: (349-351): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (349-356): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (369-378): Assertion checker does not yet support this expression. -// Warning 7650: (369-373): Assertion checker does not yet support this expression. -// Warning 8364: (369-371): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (369-376): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (582-586): Assertion checker does not yet support this expression. -// Warning 8364: (582-584): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (582-586): Assertion checker does not support recursive structs. -// Warning 7650: (595-599): Assertion checker does not yet support this expression. -// Warning 8364: (595-597): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (595-599): Assertion checker does not support recursive structs. -// Warning 7650: (608-612): Assertion checker does not yet support this expression. -// Warning 8364: (608-610): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (608-619): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (608-612): Assertion checker does not support recursive structs. +// Warning 7650: (316-325): Assertion checker does not yet support this expression. +// Warning 7650: (316-320): Assertion checker does not yet support this expression. +// Warning 8364: (316-318): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (316-323): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (336-345): Assertion checker does not yet support this expression. +// Warning 7650: (336-340): Assertion checker does not yet support this expression. +// Warning 8364: (336-338): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (336-343): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (549-553): Assertion checker does not yet support this expression. +// Warning 8364: (549-551): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (549-553): Assertion checker does not support recursive structs. +// Warning 7650: (562-566): Assertion checker does not yet support this expression. +// Warning 8364: (562-564): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (562-566): Assertion checker does not support recursive structs. +// Warning 7650: (575-579): Assertion checker does not yet support this expression. +// Warning 8364: (575-577): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (575-586): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (575-579): Assertion checker does not support recursive structs. +// Warning 7650: (590-594): Assertion checker does not yet support this expression. +// Warning 8364: (590-592): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (590-601): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (590-594): Assertion checker does not support recursive structs. +// Warning 7650: (605-614): Assertion checker does not yet support this expression. +// Warning 7650: (605-609): Assertion checker does not yet support this expression. +// Warning 8364: (605-607): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (605-612): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (605-614): Assertion checker does not support recursive structs. +// Warning 7650: (623-632): Assertion checker does not yet support this expression. // Warning 7650: (623-627): Assertion checker does not yet support this expression. // Warning 8364: (623-625): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (623-634): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (623-627): Assertion checker does not support recursive structs. -// Warning 7650: (638-647): Assertion checker does not yet support this expression. -// Warning 7650: (638-642): Assertion checker does not yet support this expression. -// Warning 8364: (638-640): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (638-645): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (638-647): Assertion checker does not support recursive structs. -// Warning 7650: (656-665): Assertion checker does not yet support this expression. -// Warning 7650: (656-660): Assertion checker does not yet support this expression. -// Warning 8364: (656-658): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (656-663): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (656-665): Assertion checker does not support recursive structs. -// Warning 7650: (674-683): Assertion checker does not yet support this expression. -// Warning 7650: (674-678): Assertion checker does not yet support this expression. -// Warning 8364: (674-676): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (674-681): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (674-690): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (674-683): Assertion checker does not support recursive structs. -// Warning 7650: (694-703): Assertion checker does not yet support this expression. -// Warning 7650: (694-698): Assertion checker does not yet support this expression. -// Warning 8364: (694-696): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (694-701): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (694-710): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (694-703): Assertion checker does not support recursive structs. -// Warning 7650: (714-728): Assertion checker does not yet support this expression. -// Warning 7650: (714-723): Assertion checker does not yet support this expression. -// Warning 7650: (714-718): Assertion checker does not yet support this expression. -// Warning 8364: (714-716): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (714-721): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (714-726): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (714-728): Assertion checker does not support recursive structs. -// Warning 7650: (737-751): Assertion checker does not yet support this expression. -// Warning 7650: (737-746): Assertion checker does not yet support this expression. -// Warning 7650: (737-741): Assertion checker does not yet support this expression. -// Warning 8364: (737-739): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (737-744): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (737-749): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (737-751): Assertion checker does not support recursive structs. +// Warning 8364: (623-630): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (623-632): Assertion checker does not support recursive structs. +// Warning 7650: (641-650): Assertion checker does not yet support this expression. +// Warning 7650: (641-645): Assertion checker does not yet support this expression. +// Warning 8364: (641-643): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (641-648): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (641-657): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (641-650): Assertion checker does not support recursive structs. +// Warning 7650: (661-670): Assertion checker does not yet support this expression. +// Warning 7650: (661-665): Assertion checker does not yet support this expression. +// Warning 8364: (661-663): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (661-668): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (661-677): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (661-670): Assertion checker does not support recursive structs. +// Warning 7650: (681-695): Assertion checker does not yet support this expression. +// Warning 7650: (681-690): Assertion checker does not yet support this expression. +// Warning 7650: (681-685): Assertion checker does not yet support this expression. +// Warning 8364: (681-683): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (681-688): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (681-693): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (681-695): Assertion checker does not support recursive structs. +// Warning 7650: (704-718): Assertion checker does not yet support this expression. +// Warning 7650: (704-713): Assertion checker does not yet support this expression. +// Warning 7650: (704-708): Assertion checker does not yet support this expression. +// Warning 8364: (704-706): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (704-711): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (704-716): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (704-718): Assertion checker does not support recursive structs. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol index 00b79fe2b..f455754ed 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -18,74 +16,75 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 8115: (135-147): Assertion checker does not yet support the type of this variable. -// Warning 8115: (166-178): Assertion checker does not yet support the type of this variable. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (160-162): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (150-162): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 8364: (186-188): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (191-193): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (181-193): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (204-208): Assertion checker does not yet support this expression. -// Warning 8364: (204-206): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (212-216): Assertion checker does not yet support this expression. -// Warning 8364: (212-214): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (220-224): Assertion checker does not yet support this expression. -// Warning 8364: (220-222): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (228-232): Assertion checker does not yet support this expression. -// Warning 8364: (228-230): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 8115: (102-114): Assertion checker does not yet support the type of this variable. +// Warning 8115: (133-145): Assertion checker does not yet support the type of this variable. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (127-129): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (117-129): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 8364: (153-155): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (158-160): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (148-160): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (171-175): Assertion checker does not yet support this expression. +// Warning 8364: (171-173): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (179-183): Assertion checker does not yet support this expression. +// Warning 8364: (179-181): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (187-191): Assertion checker does not yet support this expression. +// Warning 8364: (187-189): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (195-199): Assertion checker does not yet support this expression. +// Warning 8364: (195-197): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (211-215): Assertion checker does not yet support this expression. +// Warning 8364: (211-213): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (219-223): Assertion checker does not yet support this expression. +// Warning 8364: (219-221): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (227-231): Assertion checker does not yet support this expression. +// Warning 8364: (227-229): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (235-239): Assertion checker does not yet support this expression. +// Warning 8364: (235-237): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (244-248): Assertion checker does not yet support this expression. // Warning 8364: (244-246): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (252-256): Assertion checker does not yet support this expression. -// Warning 8364: (252-254): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (260-264): Assertion checker does not yet support this expression. -// Warning 8364: (260-262): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (268-272): Assertion checker does not yet support this expression. -// Warning 8364: (268-270): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (277-281): Assertion checker does not yet support this expression. -// Warning 8364: (277-279): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 4375: (277-281): Assertion checker does not support recursive structs. -// Warning 7650: (366-370): Assertion checker does not yet support this expression. -// Warning 8364: (366-368): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (380-384): Assertion checker does not yet support this expression. -// Warning 8364: (380-382): Assertion checker does not yet implement type struct C.S storage ref -// Warning 6328: (197-233): CHC: Assertion violation happens here. -// Warning 6328: (237-273): CHC: Assertion violation happens here. -// Warning 6328: (359-391): CHC: Assertion violation happens here. -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 8115: (135-147): Assertion checker does not yet support the type of this variable. -// Warning 8115: (166-178): Assertion checker does not yet support the type of this variable. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (160-162): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (150-162): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 8364: (186-188): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (191-193): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (181-193): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (204-208): Assertion checker does not yet support this expression. -// Warning 8364: (204-206): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (212-216): Assertion checker does not yet support this expression. -// Warning 8364: (212-214): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (220-224): Assertion checker does not yet support this expression. -// Warning 8364: (220-222): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (228-232): Assertion checker does not yet support this expression. -// Warning 8364: (228-230): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (244-248): Assertion checker does not support recursive structs. +// Warning 7650: (333-337): Assertion checker does not yet support this expression. +// Warning 8364: (333-335): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (347-351): Assertion checker does not yet support this expression. +// Warning 8364: (347-349): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6328: (164-200): CHC: Assertion violation happens here. +// Warning 6328: (204-240): CHC: Assertion violation happens here. +// Warning 6328: (326-358): CHC: Assertion violation happens here. +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 8115: (102-114): Assertion checker does not yet support the type of this variable. +// Warning 8115: (133-145): Assertion checker does not yet support the type of this variable. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (127-129): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (117-129): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 8364: (153-155): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (158-160): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (148-160): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (171-175): Assertion checker does not yet support this expression. +// Warning 8364: (171-173): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (179-183): Assertion checker does not yet support this expression. +// Warning 8364: (179-181): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (187-191): Assertion checker does not yet support this expression. +// Warning 8364: (187-189): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (195-199): Assertion checker does not yet support this expression. +// Warning 8364: (195-197): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (211-215): Assertion checker does not yet support this expression. +// Warning 8364: (211-213): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (219-223): Assertion checker does not yet support this expression. +// Warning 8364: (219-221): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (227-231): Assertion checker does not yet support this expression. +// Warning 8364: (227-229): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (235-239): Assertion checker does not yet support this expression. +// Warning 8364: (235-237): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (244-248): Assertion checker does not yet support this expression. // Warning 8364: (244-246): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (252-256): Assertion checker does not yet support this expression. -// Warning 8364: (252-254): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (260-264): Assertion checker does not yet support this expression. -// Warning 8364: (260-262): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (268-272): Assertion checker does not yet support this expression. -// Warning 8364: (268-270): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (277-281): Assertion checker does not yet support this expression. -// Warning 8364: (277-279): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 4375: (277-281): Assertion checker does not support recursive structs. -// Warning 7650: (366-370): Assertion checker does not yet support this expression. -// Warning 8364: (366-368): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (380-384): Assertion checker does not yet support this expression. -// Warning 8364: (380-382): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (244-248): Assertion checker does not support recursive structs. +// Warning 7650: (333-337): Assertion checker does not yet support this expression. +// Warning 8364: (333-335): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (347-351): Assertion checker does not yet support this expression. +// Warning 8364: (347-349): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol index 24aca9542..9bd76dce2 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -15,25 +13,27 @@ contract C { assert(sa2[0][0].a.length == sa[0].a.length); } } +// ==== +// SMTEngine: all // ---- -// Warning 8364: (126-135): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (153-166): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-181): Assertion checker does not yet support this expression. -// Warning 8364: (170-179): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (170-188): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (170-181): Assertion checker does not support recursive structs. -// Warning 7650: (199-210): Assertion checker does not yet support this expression. -// Warning 8364: (199-208): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (221-228): Assertion checker does not yet support this expression. -// Warning 8364: (221-226): Assertion checker does not yet implement type struct C.S storage ref -// Warning 6328: (192-236): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 8364: (126-135): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (153-166): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-181): Assertion checker does not yet support this expression. -// Warning 8364: (170-179): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (170-188): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (170-181): Assertion checker does not support recursive structs. -// Warning 7650: (199-210): Assertion checker does not yet support this expression. -// Warning 8364: (199-208): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (221-228): Assertion checker does not yet support this expression. -// Warning 8364: (221-226): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (93-102): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (120-133): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-148): Assertion checker does not yet support this expression. +// Warning 8364: (137-146): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (137-155): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (137-148): Assertion checker does not support recursive structs. +// Warning 7650: (166-177): Assertion checker does not yet support this expression. +// Warning 8364: (166-175): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (188-195): Assertion checker does not yet support this expression. +// Warning 8364: (188-193): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6328: (159-203): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8364: (93-102): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (120-133): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-148): Assertion checker does not yet support this expression. +// Warning 8364: (137-146): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (137-155): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (137-148): Assertion checker does not support recursive structs. +// Warning 7650: (166-177): Assertion checker does not yet support this expression. +// Warning 8364: (166-175): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (188-195): Assertion checker does not yet support this expression. +// Warning 8364: (188-193): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol index 855854bb4..81a999457 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -20,9 +18,20 @@ contract C { assert(s1.x == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (86-90): Assertion checker does not yet support this expression. +// Warning 8364: (86-88): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (86-90): Assertion checker does not support recursive structs. +// Warning 7650: (101-105): Assertion checker does not yet support this expression. +// Warning 8364: (101-103): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (101-105): Assertion checker does not support recursive structs. +// Warning 7650: (109-113): Assertion checker does not yet support this expression. +// Warning 8364: (109-111): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (109-113): Assertion checker does not support recursive structs. // Warning 7650: (119-123): Assertion checker does not yet support this expression. // Warning 8364: (119-121): Assertion checker does not yet implement type struct C.S storage ref // Warning 4375: (119-123): Assertion checker does not support recursive structs. @@ -32,36 +41,36 @@ contract C { // Warning 7650: (142-146): Assertion checker does not yet support this expression. // Warning 8364: (142-144): Assertion checker does not yet implement type struct C.S storage ref // Warning 4375: (142-146): Assertion checker does not support recursive structs. -// Warning 7650: (152-156): Assertion checker does not yet support this expression. -// Warning 8364: (152-154): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (152-156): Assertion checker does not support recursive structs. +// Warning 7650: (159-163): Assertion checker does not yet support this expression. +// Warning 8364: (159-161): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (167-171): Assertion checker does not yet support this expression. // Warning 8364: (167-169): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (167-171): Assertion checker does not support recursive structs. -// Warning 7650: (175-179): Assertion checker does not yet support this expression. -// Warning 8364: (175-177): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (175-179): Assertion checker does not support recursive structs. -// Warning 7650: (192-196): Assertion checker does not yet support this expression. -// Warning 8364: (192-194): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (200-204): Assertion checker does not yet support this expression. -// Warning 8364: (200-202): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (220-224): Assertion checker does not yet support this expression. -// Warning 8364: (220-222): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (235-239): Assertion checker does not yet support this expression. -// Warning 8364: (235-237): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (258-260): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (271-275): Assertion checker does not yet support this expression. -// Warning 8364: (271-273): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4984: (132-138): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 4984: (142-148): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 3944: (165-171): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 3944: (175-181): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 4984: (200-208): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (185-209): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (213-247): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (264-281): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. +// Warning 7650: (187-191): Assertion checker does not yet support this expression. +// Warning 8364: (187-189): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (202-206): Assertion checker does not yet support this expression. +// Warning 8364: (202-204): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (225-227): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (238-242): Assertion checker does not yet support this expression. +// Warning 8364: (238-240): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4984: (99-105): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 4984: (109-115): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 3944: (132-138): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 3944: (142-148): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 4984: (167-175): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (152-176): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (180-214): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (231-248): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (86-90): Assertion checker does not yet support this expression. +// Warning 8364: (86-88): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (86-90): Assertion checker does not support recursive structs. +// Warning 7650: (101-105): Assertion checker does not yet support this expression. +// Warning 8364: (101-103): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (101-105): Assertion checker does not support recursive structs. +// Warning 7650: (109-113): Assertion checker does not yet support this expression. +// Warning 8364: (109-111): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (109-113): Assertion checker does not support recursive structs. // Warning 7650: (119-123): Assertion checker does not yet support this expression. // Warning 8364: (119-121): Assertion checker does not yet implement type struct C.S storage ref // Warning 4375: (119-123): Assertion checker does not support recursive structs. @@ -71,23 +80,14 @@ contract C { // Warning 7650: (142-146): Assertion checker does not yet support this expression. // Warning 8364: (142-144): Assertion checker does not yet implement type struct C.S storage ref // Warning 4375: (142-146): Assertion checker does not support recursive structs. -// Warning 7650: (152-156): Assertion checker does not yet support this expression. -// Warning 8364: (152-154): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (152-156): Assertion checker does not support recursive structs. +// Warning 7650: (159-163): Assertion checker does not yet support this expression. +// Warning 8364: (159-161): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (167-171): Assertion checker does not yet support this expression. // Warning 8364: (167-169): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (167-171): Assertion checker does not support recursive structs. -// Warning 7650: (175-179): Assertion checker does not yet support this expression. -// Warning 8364: (175-177): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (175-179): Assertion checker does not support recursive structs. -// Warning 7650: (192-196): Assertion checker does not yet support this expression. -// Warning 8364: (192-194): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (200-204): Assertion checker does not yet support this expression. -// Warning 8364: (200-202): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (220-224): Assertion checker does not yet support this expression. -// Warning 8364: (220-222): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (235-239): Assertion checker does not yet support this expression. -// Warning 8364: (235-237): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (258-260): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (271-275): Assertion checker does not yet support this expression. -// Warning 8364: (271-273): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (187-191): Assertion checker does not yet support this expression. +// Warning 8364: (187-189): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (202-206): Assertion checker does not yet support this expression. +// Warning 8364: (202-204): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (225-227): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (238-242): Assertion checker does not yet support this expression. +// Warning 8364: (238-240): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_1.sol index a51919014..b88ebb88e 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -16,26 +14,28 @@ contract C { assert(s1.a.length == s2.a.length); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (115-119): Assertion checker does not yet support the type of this variable. -// Warning 8115: (122-126): Assertion checker does not yet support the type of this variable. -// Warning 7650: (165-169): Assertion checker does not yet support this expression. -// Warning 8364: (165-167): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (173-177): Assertion checker does not yet support this expression. -// Warning 8364: (173-175): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (189-193): Assertion checker does not yet support this expression. -// Warning 8364: (189-191): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (204-208): Assertion checker does not yet support this expression. -// Warning 8364: (204-206): Assertion checker does not yet implement type struct C.S storage ref -// Warning 6328: (158-178): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (182-216): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 8115: (115-119): Assertion checker does not yet support the type of this variable. -// Warning 8115: (122-126): Assertion checker does not yet support the type of this variable. -// Warning 7650: (165-169): Assertion checker does not yet support this expression. -// Warning 8364: (165-167): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (173-177): Assertion checker does not yet support this expression. -// Warning 8364: (173-175): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (189-193): Assertion checker does not yet support this expression. -// Warning 8364: (189-191): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (204-208): Assertion checker does not yet support this expression. -// Warning 8364: (204-206): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8115: (82-86): Assertion checker does not yet support the type of this variable. +// Warning 8115: (89-93): Assertion checker does not yet support the type of this variable. +// Warning 7650: (132-136): Assertion checker does not yet support this expression. +// Warning 8364: (132-134): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (140-144): Assertion checker does not yet support this expression. +// Warning 8364: (140-142): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (156-160): Assertion checker does not yet support this expression. +// Warning 8364: (156-158): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (171-175): Assertion checker does not yet support this expression. +// Warning 8364: (171-173): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6328: (125-145): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (149-183): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8115: (82-86): Assertion checker does not yet support the type of this variable. +// Warning 8115: (89-93): Assertion checker does not yet support the type of this variable. +// Warning 7650: (132-136): Assertion checker does not yet support this expression. +// Warning 8364: (132-134): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (140-144): Assertion checker does not yet support this expression. +// Warning 8364: (140-142): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (156-160): Assertion checker does not yet support this expression. +// Warning 8364: (156-158): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (171-175): Assertion checker does not yet support this expression. +// Warning 8364: (171-173): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_2.sol index 63558ea54..c8e3af0ee 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -19,79 +17,81 @@ contract C { assert(s1.a[0].a[0].x == s2.a[0].a[0].x); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (115-119): Assertion checker does not yet support the type of this variable. -// Warning 8115: (122-126): Assertion checker does not yet support the type of this variable. -// Warning 7650: (153-157): Assertion checker does not yet support this expression. -// Warning 8364: (153-155): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (153-164): Assertion checker does not yet implement type struct C.T storage ref -// Warning 4375: (153-157): Assertion checker does not support recursive structs. -// Warning 7650: (168-172): Assertion checker does not yet support this expression. -// Warning 8364: (168-170): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (168-179): Assertion checker does not yet implement type struct C.T storage ref -// Warning 4375: (168-172): Assertion checker does not support recursive structs. -// Warning 7650: (183-192): Assertion checker does not yet support this expression. -// Warning 7650: (183-187): Assertion checker does not yet support this expression. -// Warning 8364: (183-185): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (183-190): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (183-199): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (183-192): Assertion checker does not support recursive structs. -// Warning 7650: (203-212): Assertion checker does not yet support this expression. -// Warning 7650: (203-207): Assertion checker does not yet support this expression. -// Warning 8364: (203-205): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (203-210): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (203-219): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (203-212): Assertion checker does not support recursive structs. -// Warning 7650: (230-244): Assertion checker does not yet support this expression. -// Warning 7650: (230-239): Assertion checker does not yet support this expression. -// Warning 7650: (230-234): Assertion checker does not yet support this expression. -// Warning 8364: (230-232): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (230-237): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (230-242): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (248-262): Assertion checker does not yet support this expression. -// Warning 7650: (248-257): Assertion checker does not yet support this expression. -// Warning 7650: (248-252): Assertion checker does not yet support this expression. -// Warning 8364: (248-250): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (248-255): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (248-260): Assertion checker does not yet implement type struct C.S storage ref -// Warning 6368: (183-190): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (203-210): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (230-237): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (230-242): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (248-255): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (248-260): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (223-263): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 8115: (115-119): Assertion checker does not yet support the type of this variable. -// Warning 8115: (122-126): Assertion checker does not yet support the type of this variable. -// Warning 7650: (153-157): Assertion checker does not yet support this expression. -// Warning 8364: (153-155): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (153-164): Assertion checker does not yet implement type struct C.T storage ref -// Warning 4375: (153-157): Assertion checker does not support recursive structs. -// Warning 7650: (168-172): Assertion checker does not yet support this expression. -// Warning 8364: (168-170): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (168-179): Assertion checker does not yet implement type struct C.T storage ref -// Warning 4375: (168-172): Assertion checker does not support recursive structs. -// Warning 7650: (183-192): Assertion checker does not yet support this expression. -// Warning 7650: (183-187): Assertion checker does not yet support this expression. -// Warning 8364: (183-185): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (183-190): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (183-199): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (183-192): Assertion checker does not support recursive structs. -// Warning 7650: (203-212): Assertion checker does not yet support this expression. -// Warning 7650: (203-207): Assertion checker does not yet support this expression. -// Warning 8364: (203-205): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (203-210): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (203-219): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (203-212): Assertion checker does not support recursive structs. -// Warning 7650: (230-244): Assertion checker does not yet support this expression. -// Warning 7650: (230-239): Assertion checker does not yet support this expression. -// Warning 7650: (230-234): Assertion checker does not yet support this expression. -// Warning 8364: (230-232): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (230-237): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (230-242): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (248-262): Assertion checker does not yet support this expression. -// Warning 7650: (248-257): Assertion checker does not yet support this expression. -// Warning 7650: (248-252): Assertion checker does not yet support this expression. -// Warning 8364: (248-250): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (248-255): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (248-260): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8115: (82-86): Assertion checker does not yet support the type of this variable. +// Warning 8115: (89-93): Assertion checker does not yet support the type of this variable. +// Warning 7650: (120-124): Assertion checker does not yet support this expression. +// Warning 8364: (120-122): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (120-131): Assertion checker does not yet implement type struct C.T storage ref +// Warning 4375: (120-124): Assertion checker does not support recursive structs. +// Warning 7650: (135-139): Assertion checker does not yet support this expression. +// Warning 8364: (135-137): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (135-146): Assertion checker does not yet implement type struct C.T storage ref +// Warning 4375: (135-139): Assertion checker does not support recursive structs. +// Warning 7650: (150-159): Assertion checker does not yet support this expression. +// Warning 7650: (150-154): Assertion checker does not yet support this expression. +// Warning 8364: (150-152): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (150-157): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (150-166): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (150-159): Assertion checker does not support recursive structs. +// Warning 7650: (170-179): Assertion checker does not yet support this expression. +// Warning 7650: (170-174): Assertion checker does not yet support this expression. +// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (170-177): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (170-186): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (170-179): Assertion checker does not support recursive structs. +// Warning 7650: (197-211): Assertion checker does not yet support this expression. +// Warning 7650: (197-206): Assertion checker does not yet support this expression. +// Warning 7650: (197-201): Assertion checker does not yet support this expression. +// Warning 8364: (197-199): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (197-204): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (197-209): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (215-229): Assertion checker does not yet support this expression. +// Warning 7650: (215-224): Assertion checker does not yet support this expression. +// Warning 7650: (215-219): Assertion checker does not yet support this expression. +// Warning 8364: (215-217): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (215-222): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (215-227): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6368: (150-157): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (170-177): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (197-204): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (197-209): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (215-222): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (215-227): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (190-230): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8115: (82-86): Assertion checker does not yet support the type of this variable. +// Warning 8115: (89-93): Assertion checker does not yet support the type of this variable. +// Warning 7650: (120-124): Assertion checker does not yet support this expression. +// Warning 8364: (120-122): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (120-131): Assertion checker does not yet implement type struct C.T storage ref +// Warning 4375: (120-124): Assertion checker does not support recursive structs. +// Warning 7650: (135-139): Assertion checker does not yet support this expression. +// Warning 8364: (135-137): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (135-146): Assertion checker does not yet implement type struct C.T storage ref +// Warning 4375: (135-139): Assertion checker does not support recursive structs. +// Warning 7650: (150-159): Assertion checker does not yet support this expression. +// Warning 7650: (150-154): Assertion checker does not yet support this expression. +// Warning 8364: (150-152): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (150-157): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (150-166): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (150-159): Assertion checker does not support recursive structs. +// Warning 7650: (170-179): Assertion checker does not yet support this expression. +// Warning 7650: (170-174): Assertion checker does not yet support this expression. +// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (170-177): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (170-186): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (170-179): Assertion checker does not support recursive structs. +// Warning 7650: (197-211): Assertion checker does not yet support this expression. +// Warning 7650: (197-206): Assertion checker does not yet support this expression. +// Warning 7650: (197-201): Assertion checker does not yet support this expression. +// Warning 8364: (197-199): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (197-204): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (197-209): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (215-229): Assertion checker does not yet support this expression. +// Warning 7650: (215-224): Assertion checker does not yet support this expression. +// Warning 7650: (215-219): Assertion checker does not yet support this expression. +// Warning 8364: (215-217): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (215-222): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (215-227): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol index e9e8311ea..a96f0323f 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -17,5 +15,7 @@ contract C { assert(s2.a[3] == 43); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (289-310): CHC: Assertion violation happens here.\nCounterexample:\n\ns2 = {x: 42, a: [0, 0, 43, 0, 0]}\n\nTransaction trace:\nC.constructor()\nC.f()\n C.s() -- internal call +// Warning 6328: (256-277): CHC: Assertion violation happens here.\nCounterexample:\n\ns2 = {x: 42, a: [0, 0, 43, 0, 0]}\n\nTransaction trace:\nC.constructor()\nC.f()\n C.s() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_state_constructor.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_state_constructor.sol index 46237c934..7c31c616c 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_state_constructor.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_state_constructor.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -12,4 +10,6 @@ contract C { assert(s.x == 42); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol index a480b0a78..ed3aa001d 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -15,6 +13,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (213-237): CHC: Assertion violation happens here. +// Warning 6328: (180-204): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_1.sol index 50c9ede93..e3dcb0184 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -21,7 +19,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2529: (121-130): CHC: Empty array "pop" happens here. -// Warning 6328: (230-254): CHC: Assertion violation happens here. +// Warning 2529: (88-97): CHC: Empty array "pop" happens here. +// Warning 6328: (197-221): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_2.sol index a50072b12..748159516 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -18,7 +16,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2529: (133-142): CHC: Empty array "pop" happens here. -// Warning 6328: (189-213): CHC: Assertion violation happens here. +// Warning 2529: (100-109): CHC: Empty array "pop" happens here. +// Warning 6328: (156-180): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_temporary.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_temporary.sol index b6451dd2a..a4f3a4d42 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_temporary.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_temporary.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -10,4 +8,6 @@ contract C { assert(S(42).x == 42); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol index 643df8657..8bd6de794 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -15,6 +14,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (225-245): CHC: Assertion violation happens here. +// Warning 6328: (193-213): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol index 90ecc159d..7ce618a0e 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -16,6 +15,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (240-260): CHC: Assertion violation happens here. +// Warning 6328: (208-228): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct_1.sol b/test/libsolidity/smtCheckerTests/types/struct_1.sol index 37035c806..1a24decc3 100644 --- a/test/libsolidity/smtCheckerTests/types/struct_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -14,4 +12,6 @@ contract C assert(smap[y].x == smem.x); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/struct_array_branches_1d.sol b/test/libsolidity/smtCheckerTests/types/struct_array_branches_1d.sol index 3cffa35bf..07c67d97c 100644 --- a/test/libsolidity/smtCheckerTests/types/struct_array_branches_1d.sol +++ b/test/libsolidity/smtCheckerTests/types/struct_array_branches_1d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[] a; } @@ -14,3 +12,5 @@ contract C assert(c.a[0] > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct_array_branches_2d.sol b/test/libsolidity/smtCheckerTests/types/struct_array_branches_2d.sol index a8178c9be..0da530799 100644 --- a/test/libsolidity/smtCheckerTests/types/struct_array_branches_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/struct_array_branches_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[][] a; } @@ -15,6 +13,8 @@ contract C assert(c.a[0][0] > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (249-258): CHC: Out of bounds access might happen here. -// Warning 6328: (242-263): CHC: Assertion violation might happen here. +// Warning 6368: (216-225): CHC: Out of bounds access might happen here. +// Warning 6328: (209-230): CHC: Assertion violation might happen here. diff --git a/test/libsolidity/smtCheckerTests/types/struct_array_branches_3d.sol b/test/libsolidity/smtCheckerTests/types/struct_array_branches_3d.sol index fd095cd61..dbd498327 100644 --- a/test/libsolidity/smtCheckerTests/types/struct_array_branches_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/struct_array_branches_3d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[][][] a; } @@ -22,5 +20,7 @@ contract C */ } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (86-92): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (53-59): Unused function parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_1.sol index b4db4cfd2..72fd765f4 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function i() public pure returns (uint d) { if (0==0) @@ -6,5 +5,7 @@ contract C { assert(d == 13); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (96-100): BMC: Condition is always true. +// Warning 6838: (64-68): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_2.sol index 4ad41dd1f..084c637b9 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function i() public pure returns (uint d) { if (0==0) @@ -6,5 +5,7 @@ contract C { assert(d == 13); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (96-100): BMC: Condition is always true. +// Warning 6838: (64-68): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_n.sol b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_n.sol index 85a1fe8fe..1f8151920 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_n.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_n.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function i() public pure returns (uint d) { if (0==0) @@ -6,5 +5,7 @@ contract C { assert(d == 13); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (96-100): BMC: Condition is always true. +// Warning 6838: (64-68): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol index 0dbd3c6fd..45a26a31a 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { int[] a; function f() public { (a).pop();} } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (78-87): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (46-55): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol index 93b1c1ca4..a1946258e 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { int[] a; function f() public { (((((a))))).pop();} } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (78-95): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (46-63): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment.sol index b6f9e2bf4..cd1949d2e 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() public pure { @@ -10,4 +8,6 @@ contract C assert(y == 4); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_array.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_array.sol index 15b2d4a87..5334cb93a 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_array.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -13,3 +11,5 @@ contract C assert(a[y] == 4); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol index 13d5527e4..e5f062b57 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -16,6 +14,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (231-248): CHC: Assertion violation happens here. +// Warning 6328: (198-215): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol index 6f1016268..03a5a22db 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -9,5 +7,7 @@ contract C assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (122-136): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4\nb = 3\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (89-103): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4\nb = 3\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol index c1652dcc9..7e7795ea1 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() public pure { @@ -10,5 +8,7 @@ contract C assert(y == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (132-146): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 0\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6328: (99-113): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 0\n\nTransaction trace:\nC.constructor()\nC.g() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_multiple_calls.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_multiple_calls.sol index 60897f5c5..83b7f2039 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_multiple_calls.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_multiple_calls.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure returns (uint, uint) { @@ -12,3 +10,5 @@ contract C assert(a == c && b == d); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations.sol index 2f09308d1..f0956bfd4 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() public pure { @@ -8,4 +6,6 @@ contract C assert(y == 4); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations_empty.sol index 3d31aa361..13d91a5f3 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations_empty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() public pure { @@ -7,3 +5,5 @@ contract C assert(x == 2); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function.sol index 424786635..7f88f30ff 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (uint, bool, uint) { @@ -15,3 +13,5 @@ contract C assert(y == 999); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_2.sol index a36209646..15ca65c86 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) internal pure returns (uint, bool, uint) { @@ -14,4 +12,6 @@ contract C assert(y == 999); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol index 1efc84d13..1772aa995 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (uint, bool, uint) { @@ -13,5 +11,7 @@ contract C assert(!b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (224-234): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (191-201): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_1.sol index 1826982b9..f3f5121a2 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns(int) { int a; @@ -7,6 +6,8 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (79-82): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (157-171): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 2\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6321: (47-50): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (125-139): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 2\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_2.sol index b1b0cc9ba..51b40dda1 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns(int) { int a; @@ -7,6 +6,8 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (79-82): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (159-173): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 2\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6321: (47-50): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (127-141): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 2\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_1.sol index 1a0f36319..b358a2032 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_1.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f2() public pure returns(int) { int a; ((, a)) = (1, 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-83): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-51): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_2.sol index 1807864e6..cf34d34a8 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_2.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f2() public pure returns(int) { int a; (((, a),)) = ((1, 2), 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-83): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-51): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_3.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_3.sol index 03ce76ea6..051c582de 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_3.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_3.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f2() public pure returns(int) { int a; (((((((, a),)))))) = ((1, 2), 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-83): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-51): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_4.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_4.sol index d97216f13..7f7185b11 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_4.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_4.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f2() public pure returns(int) { int a; ((((((, a)))),)) = ((1, 2), 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-83): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-51): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_5.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_5.sol index b6ac3a5c1..d757bebde 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_5.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_5.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f2() public pure returns(int) { int a; ((((((((((((, a))))))),))))) = ((1, 2), 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-83): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-51): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_6.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_6.sol index 83b2db4df..3edeae19d 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_6.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_6.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { function f() public pure { (((,))) = ((2),3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_7.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_7.sol index fc4a4053f..adf8bddf2 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_7.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_7.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() internal pure returns (uint, uint) { return (2, 3); @@ -10,6 +9,8 @@ contract C { assert(y == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 4588: (142-161): Assertion checker does not yet implement this type of function call. -// Warning 4588: (142-161): Assertion checker does not yet implement this type of function call. +// Warning 4588: (110-129): Assertion checker does not yet implement this type of function call. +// Warning 4588: (110-129): Assertion checker does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_function.sol b/test/libsolidity/smtCheckerTests/types/tuple_function.sol index 32868ab75..ef3ad0102 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_function.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (uint, uint) { @@ -13,6 +11,8 @@ contract C assert(y == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (182-196): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 3\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call -// Warning 6328: (200-214): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 3\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (149-163): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 3\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (167-181): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 3\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol index cdf4c103f..bbd92a90a 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (uint, uint) { @@ -13,5 +11,7 @@ contract C assert(y == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (199-213): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (166-180): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol b/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol index f68ed1330..92181fe36 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (uint, bool, uint) { @@ -15,6 +13,8 @@ contract C assert(!b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (205-219): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call -// Warning 6328: (223-237): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (172-186): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (190-204): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/tuple_return_branch.sol b/test/libsolidity/smtCheckerTests/types/tuple_return_branch.sol index 2642c979a..aea54fb1e 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_return_branch.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_return_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; } @@ -15,4 +13,6 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/tuple_single_element_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_single_element_1.sol index c76a9d751..5501f7527 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_single_element_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_single_element_1.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { (("", 2)); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (76-85): Statement has no effect. +// Warning 6133: (43-52): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_single_element_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_single_element_2.sol index 08dfa3ef0..a856d53d1 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_single_element_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_single_element_2.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { (("", "")); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (76-86): Statement has no effect. +// Warning 6133: (43-53): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_single_non_tuple_element.sol b/test/libsolidity/smtCheckerTests/types/tuple_single_non_tuple_element.sol index 850170d52..c02e0f786 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_single_non_tuple_element.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_single_non_tuple_element.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { (2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (76-79): Statement has no effect. +// Warning 6133: (43-46): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_tuple.sol b/test/libsolidity/smtCheckerTests/types/tuple_tuple.sol index c12e56a2d..f11687cdb 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_tuple.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_tuple.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { function f3() public pure { ((, ), ) = ((7, 8), 9); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/type_expression_array_2d.sol b/test/libsolidity/smtCheckerTests/types/type_expression_array_2d.sol index 22f6c9c07..661060047 100644 --- a/test/libsolidity/smtCheckerTests/types/type_expression_array_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/type_expression_array_2d.sol @@ -1,12 +1,13 @@ -pragma experimental SMTChecker; contract C { function f() public pure { int[][]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (73-80): Statement has no effect. -// Warning 8364: (73-78): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (73-80): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (73-78): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (73-80): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 6133: (41-48): Statement has no effect. +// Warning 8364: (41-46): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (41-48): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (41-46): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (41-48): Assertion checker does not yet implement type type(int256[] memory[] memory) diff --git a/test/libsolidity/smtCheckerTests/types/type_expression_array_3d.sol b/test/libsolidity/smtCheckerTests/types/type_expression_array_3d.sol index 51869fb3f..e37f181ea 100644 --- a/test/libsolidity/smtCheckerTests/types/type_expression_array_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/type_expression_array_3d.sol @@ -1,14 +1,15 @@ -pragma experimental SMTChecker; contract C { function f() public pure { int[][][]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (73-82): Statement has no effect. -// Warning 8364: (73-78): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (73-80): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (73-82): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) -// Warning 8364: (73-78): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (73-80): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (73-82): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 6133: (41-50): Statement has no effect. +// Warning 8364: (41-46): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (41-48): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (41-50): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 8364: (41-46): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (41-48): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (41-50): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) diff --git a/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_2d.sol b/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_2d.sol index b34dd2a56..751d2b82a 100644 --- a/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_2d.sol @@ -1,14 +1,15 @@ -pragma experimental SMTChecker; contract C { function f() public pure { (int[][]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (73-82): Statement has no effect. -// Warning 8364: (74-79): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (74-81): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (73-82): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (74-79): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (74-81): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (73-82): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 6133: (41-50): Statement has no effect. +// Warning 8364: (42-47): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (42-49): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (41-50): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (42-47): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (42-49): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (41-50): Assertion checker does not yet implement type type(int256[] memory[] memory) diff --git a/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_3d.sol b/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_3d.sol index dfa4a4661..a1f29dad6 100644 --- a/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_3d.sol @@ -1,16 +1,17 @@ -pragma experimental SMTChecker; contract C { function f() public pure { (int[][][]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (73-84): Statement has no effect. -// Warning 8364: (74-79): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (74-81): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (74-83): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) -// Warning 8364: (73-84): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) -// Warning 8364: (74-79): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (74-81): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (74-83): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) -// Warning 8364: (73-84): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 6133: (41-52): Statement has no effect. +// Warning 8364: (42-47): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (42-49): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (42-51): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 8364: (41-52): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 8364: (42-47): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (42-49): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (42-51): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 8364: (41-52): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) diff --git a/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol b/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol index c7f2ece82..7b5bae6bc 100644 --- a/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol +++ b/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - interface I1 { } @@ -27,6 +25,8 @@ contract C { assert(type(I2).interfaceId == type(I3).interfaceId); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (449-501): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6328: (536-588): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6328: (416-468): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6328: (503-555): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.h() diff --git a/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol b/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol index 58e6c213f..778f0181d 100644 --- a/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol +++ b/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { } @@ -10,13 +8,15 @@ contract C { assert(type(A).runtimeCode.length != 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 7507: (105-117): Assertion checker does not yet support this expression. -// Warning 7507: (142-162): Assertion checker does not yet support this expression. -// Warning 7507: (186-205): Assertion checker does not yet support this expression. -// Warning 6328: (92-131): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (135-175): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (179-218): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 7507: (105-117): Assertion checker does not yet support this expression. -// Warning 7507: (142-162): Assertion checker does not yet support this expression. -// Warning 7507: (186-205): Assertion checker does not yet support this expression. +// Warning 7507: (72-84): Assertion checker does not yet support this expression. +// Warning 7507: (109-129): Assertion checker does not yet support this expression. +// Warning 7507: (153-172): Assertion checker does not yet support this expression. +// Warning 6328: (59-98): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (102-142): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (146-185): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 7507: (72-84): Assertion checker does not yet support this expression. +// Warning 7507: (109-129): Assertion checker does not yet support this expression. +// Warning 7507: (153-172): Assertion checker does not yet support this expression. diff --git a/test/libsolidity/smtCheckerTests/types/type_minmax.sol b/test/libsolidity/smtCheckerTests/types/type_minmax.sol index 740bd22fa..cc9e3c319 100644 --- a/test/libsolidity/smtCheckerTests/types/type_minmax.sol +++ b/test/libsolidity/smtCheckerTests/types/type_minmax.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint a) public pure { assert(a <= type(uint).max); @@ -80,5 +78,7 @@ contract C { assert(uint256_max == 2**256-1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (211-240): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4294967296\n\nTransaction trace:\nC.constructor()\nC.f(4294967296) +// Warning 6328: (178-207): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4294967296\n\nTransaction trace:\nC.constructor()\nC.f(4294967296) diff --git a/test/libsolidity/smtCheckerTests/types/unused_mapping.sol b/test/libsolidity/smtCheckerTests/types/unused_mapping.sol index 01905a36e..b1c1ec0f3 100644 --- a/test/libsolidity/smtCheckerTests/types/unused_mapping.sol +++ b/test/libsolidity/smtCheckerTests/types/unused_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; uint y; @@ -16,3 +14,5 @@ contract C { //assert(y == x); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/unchecked/block_inside_unchecked.sol b/test/libsolidity/smtCheckerTests/unchecked/block_inside_unchecked.sol index d91df2226..e5237123d 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/block_inside_unchecked.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/block_inside_unchecked.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (uint y) { unchecked{{ @@ -10,3 +8,5 @@ contract C { assert(y == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/unchecked/check_var_init.sol b/test/libsolidity/smtCheckerTests/unchecked/check_var_init.sol index 3ecfa49fc..805409c01 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/check_var_init.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/check_var_init.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint public x = msg.value - 10; // can underflow constructor() payable {} @@ -15,6 +13,8 @@ contract D { } } } +// ==== +// SMTEngine: all // ---- -// Warning 3944: (66-80): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() -// Warning 3944: (193-207): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f()\n D.h() -- internal call +// Warning 3944: (33-47): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() +// Warning 3944: (160-174): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f()\n D.h() -- internal call diff --git a/test/libsolidity/smtCheckerTests/unchecked/checked_called_by_unchecked.sol b/test/libsolidity/smtCheckerTests/unchecked/checked_called_by_unchecked.sol index 3a2dc6ce9..cb795f9c0 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/checked_called_by_unchecked.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/checked_called_by_unchecked.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function add(uint16 a, uint16 b) public pure returns (uint16) { return a + b; // can overflow @@ -9,5 +7,7 @@ contract C { unchecked { return add(a, b) + c; } // add can still overflow, `+ c` can't } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (129-134): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 1\nb = 65535\n = 0\n\nTransaction trace:\nC.constructor()\nC.add(1, 65535) +// Warning 4984: (96-101): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 1\nb = 65535\n = 0\n\nTransaction trace:\nC.constructor()\nC.add(1, 65535) diff --git a/test/libsolidity/smtCheckerTests/unchecked/checked_modifier_called_by_unchecked.sol b/test/libsolidity/smtCheckerTests/unchecked/checked_modifier_called_by_unchecked.sol index 2a47fbeed..d60c50e97 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/checked_modifier_called_by_unchecked.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/checked_modifier_called_by_unchecked.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier add(uint16 a, uint16 b) { unchecked { a + b; } // overflow not reported @@ -10,5 +8,7 @@ contract C { return b + c; // can overflow } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (258-263): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65535\nb = 1\nc = 65535\n = 0\na = 65535\nb = 1\n\nTransaction trace:\nC.constructor()\nC.f(65535, 1, 65535) +// Warning 4984: (225-230): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65535\nb = 1\nc = 65535\n = 0\na = 65535\nb = 1\n\nTransaction trace:\nC.constructor()\nC.f(65535, 1, 65535) diff --git a/test/libsolidity/smtCheckerTests/unchecked/flipping_sign_tests.sol b/test/libsolidity/smtCheckerTests/unchecked/flipping_sign_tests.sol index 4aaaf82e6..8a7405c54 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/flipping_sign_tests.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/flipping_sign_tests.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract test { function f() public pure returns (bool) { int256 x = -2**255; @@ -8,5 +6,7 @@ contract test { return true; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (143-158): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\ntest.constructor()\ntest.f() +// Warning 6328: (110-125): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\ntest.constructor()\ntest.f() diff --git a/test/libsolidity/smtCheckerTests/unchecked/inc_dec.sol b/test/libsolidity/smtCheckerTests/unchecked/inc_dec.sol index 2e5a07ece..32295d5fd 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/inc_dec.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/inc_dec.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function o() public pure { uint x = type(uint).max; @@ -25,3 +23,5 @@ contract C { assert(x == type(int).max); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/unchecked/signed_mod.sol b/test/libsolidity/smtCheckerTests/unchecked/signed_mod.sol index c85f3e120..736b506e1 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/signed_mod.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/signed_mod.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int a, int b) public pure returns (int) { return a % b; // can div by 0 @@ -13,6 +11,8 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (118-123): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) -// Warning 4984: (275-281): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\n_check = true\n = 0\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\nC.constructor()\nC.g(true) +// Warning 4281: (85-90): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 4984: (242-248): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\n_check = true\n = 0\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\nC.constructor()\nC.g(true) diff --git a/test/libsolidity/smtCheckerTests/unchecked/unchecked_called_by_checked.sol b/test/libsolidity/smtCheckerTests/unchecked/unchecked_called_by_checked.sol index bdc6aa1e6..12081e639 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/unchecked_called_by_checked.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/unchecked_called_by_checked.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function add(uint16 a, uint16 b) public pure returns (uint16) { unchecked { @@ -11,5 +9,7 @@ contract C { return add(a, 0x100) + 0x100; // should overflow on `+ 0x100` } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (273-294): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65024\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(65024)\n C.add(65024, 256) -- internal call +// Warning 4984: (240-261): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65024\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(65024)\n C.add(65024, 256) -- internal call diff --git a/test/libsolidity/smtCheckerTests/unchecked/unchecked_div_by_zero.sol b/test/libsolidity/smtCheckerTests/unchecked/unchecked_div_by_zero.sol index 6d8bdeea6..cabf58251 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/unchecked_div_by_zero.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/unchecked_div_by_zero.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function div(uint256 a, uint256 b) public pure returns (uint256) { // Does not disable div by zero check @@ -15,6 +13,8 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (202-207): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.div(0, 0) -// Warning 4281: (382-387): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.mod(0, 0) +// Warning 4281: (169-174): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.div(0, 0) +// Warning 4281: (349-354): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.mod(0, 0) diff --git a/test/libsolidity/smtCheckerTests/unchecked/unchecked_double_with_modifier.sol b/test/libsolidity/smtCheckerTests/unchecked/unchecked_double_with_modifier.sol index 6edf98d2f..55931bfa9 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/unchecked_double_with_modifier.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/unchecked_double_with_modifier.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m() { @@ -15,4 +13,6 @@ contract C { } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/unchecked/unchecked_function_call_with_unchecked_block.sol b/test/libsolidity/smtCheckerTests/unchecked/unchecked_function_call_with_unchecked_block.sol index e6a087fa0..ebb6912cf 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/unchecked_function_call_with_unchecked_block.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/unchecked_function_call_with_unchecked_block.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) internal pure { unchecked { @@ -10,5 +9,7 @@ contract C { unchecked { f(x); } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (117-130): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.g(0)\n C.f(0) -- internal call +// Warning 6328: (85-98): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.g(0)\n C.f(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_1.sol b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_1.sol index 86e9e0d7c..9511566b0 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_1.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_1.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { if (x >= 0) { revert(); } } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (94-100): BMC: Condition is always true. +// Warning 6838: (62-68): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_2.sol b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_2.sol index a09d00cea..f3e14f241 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_2.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_2.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { if (x >= 10) { if (x < 10) { revert(); } } } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (109-115): BMC: Condition is always false. +// Warning 6838: (77-83): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_3.sol b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_3.sol index 709fcb1b4..6dfcaff77 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_3.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_3.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; // a plain literal constant is fine contract C { function f(uint) public pure { if (true) { revert(); } } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/verification_target/no_target_for_abstract_constract.sol b/test/libsolidity/smtCheckerTests/verification_target/no_target_for_abstract_constract.sol index 590ee6be6..3d820150e 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/no_target_for_abstract_constract.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/no_target_for_abstract_constract.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - abstract contract A { function f() public pure { assert(false); // A cannot be deployed so this should not be reported } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/verification_target/no_target_for_constructor_of_abstract_constract.sol b/test/libsolidity/smtCheckerTests/verification_target/no_target_for_constructor_of_abstract_constract.sol index 0f176def4..28391614c 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/no_target_for_constructor_of_abstract_constract.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/no_target_for_constructor_of_abstract_constract.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - abstract contract A { constructor() { assert(false); // A cannot be deployed, so this should not be reported } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol b/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol index 13e2a08a7..aa1abfff6 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { function f(uint a) public pure { assert(a == 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (50-64): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require.sol b/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require.sol index b66ae2457..e0ff91f47 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require.sol @@ -1,4 +1,5 @@ -pragma experimental SMTChecker; contract C { function f(uint a) public pure { require(a < 10); assert(a < 20); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require_message.sol b/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require_message.sol index e2fcac7b6..2c0d0c6a7 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require_message.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require_message.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(uint a) public pure { require(a < 10, "Input number is too large."); assert(a < 20); } } +// ==== +// SMTEngine: all // ----