Skip to content

Commit daf859c

Browse files
author
Leonardo Alt
committed
[SMTChecker] report SMTEncoder warnings also via CHC
1 parent 001eac5 commit daf859c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+359
-6
lines changed

libsolidity/formal/CHC.cpp

+23-5
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,24 @@ void CHC::analyze(SourceUnit const& _source)
7979
source->accept(*this);
8080

8181
checkVerificationTargets();
82+
83+
bool ranSolver = true;
84+
#ifndef HAVE_Z3
85+
ranSolver = dynamic_cast<CHCSmtLib2Interface const*>(m_interface.get())->unhandledQueries().empty();
86+
#endif
87+
if (!ranSolver && !m_noSolverWarning)
88+
{
89+
m_noSolverWarning = true;
90+
m_outerErrorReporter.warning(
91+
3996_error,
92+
SourceLocation(),
93+
"CHC analysis was not possible since no integrated z3 SMT solver was found."
94+
);
95+
}
96+
else
97+
m_outerErrorReporter.append(m_errorReporter.errors());
98+
99+
m_errorReporter.clear();
82100
}
83101

84102
vector<string> CHC::unhandledQueries() const
@@ -1076,10 +1094,10 @@ pair<CheckResult, CHCSolverInterface::CexGraph> CHC::query(smtutil::Expression c
10761094
case CheckResult::UNKNOWN:
10771095
break;
10781096
case CheckResult::CONFLICTING:
1079-
m_outerErrorReporter.warning(1988_error, _location, "CHC: At least two SMT solvers provided conflicting answers. Results might not be sound.");
1097+
m_errorReporter.warning(1988_error, _location, "CHC: At least two SMT solvers provided conflicting answers. Results might not be sound.");
10801098
break;
10811099
case CheckResult::ERROR:
1082-
m_outerErrorReporter.warning(1218_error, _location, "CHC: Error trying to invoke SMT solver.");
1100+
m_errorReporter.warning(1218_error, _location, "CHC: Error trying to invoke SMT solver.");
10831101
break;
10841102
}
10851103
return {result, cex};
@@ -1233,21 +1251,21 @@ void CHC::checkAndReportTarget(
12331251
m_unsafeTargets[_target.errorNode].insert(_target.type);
12341252
auto cex = generateCounterexample(model, error().name);
12351253
if (cex)
1236-
m_outerErrorReporter.warning(
1254+
m_errorReporter.warning(
12371255
_errorReporterId,
12381256
location,
12391257
"CHC: " + _satMsg,
12401258
SecondarySourceLocation().append("Counterexample:\n" + *cex, SourceLocation{})
12411259
);
12421260
else
1243-
m_outerErrorReporter.warning(
1261+
m_errorReporter.warning(
12441262
_errorReporterId,
12451263
location,
12461264
"CHC: " + _satMsg
12471265
);
12481266
}
12491267
else if (!_unknownMsg.empty())
1250-
m_outerErrorReporter.warning(
1268+
m_errorReporter.warning(
12511269
_errorReporterId,
12521270
location,
12531271
"CHC: " + _unknownMsg

scripts/error_codes.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ def examine_id_coverage(top_dir, source_id_to_file_names, new_ids_only=False):
223223
"1123", "1133", "1218", "1220", "1584", "1823", "1950",
224224
"1988", "2418", "2461", "2512", "2592", "2657", "2800", "2842", "2856",
225225
"3046", "3263", "3356", "3441", "3682", "3876",
226-
"3893", "4010", "4281", "4802", "4805", "4828",
226+
"3893", "3996", "4010", "4281", "4802", "4805", "4828",
227227
"4904", "4990", "5052", "5073", "5170", "5188", "5272", "5347", "5473",
228228
"5622", "6041", "6052", "6084", "6272", "6708", "6792", "6931", "7110", "7128", "7186",
229229
"7589", "7593", "7653", "7812", "7885", "8065", "8084", "8140",

test/libsolidity/smtCheckerTests/complex/MerkleProof.sol

+2
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,5 @@ library MerkleProof {
3636
// ----
3737
// Warning 4588: (988-1032): Assertion checker does not yet implement this type of function call.
3838
// Warning 4588: (1175-1219): Assertion checker does not yet implement this type of function call.
39+
// Warning 4588: (988-1032): Assertion checker does not yet implement this type of function call.
40+
// Warning 4588: (1175-1219): Assertion checker does not yet implement this type of function call.

test/libsolidity/smtCheckerTests/complex/slither/external_function.sol

+1
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,5 @@ contract InternalCall {
8484
// Warning 2018: (1212-1274): Function state mutability can be restricted to pure
8585
// Warning 2018: (1280-1342): Function state mutability can be restricted to pure
8686
// Warning 4588: (771-814): Assertion checker does not yet implement this type of function call.
87+
// Warning 4588: (771-814): Assertion checker does not yet implement this type of function call.
8788
// Warning 5729: (1403-1408): Assertion checker does not yet implement this type of function call.

test/libsolidity/smtCheckerTests/complex/warn_on_struct.sol

+2
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ contract C {
1111
// Warning 2072: (133-143): Unused local variable.
1212
// Warning 8364: (146-147): Assertion checker does not yet implement type type(struct C.A storage pointer)
1313
// Warning 4639: (146-163): Assertion checker does not yet implement this expression.
14+
// Warning 8364: (146-147): Assertion checker does not yet implement type type(struct C.A storage pointer)
15+
// Warning 4639: (146-163): Assertion checker does not yet implement this expression.

test/libsolidity/smtCheckerTests/control_flow/try_catch_1.sol

+2
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ contract C {
1111
// 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.
1212
// Warning 7645: (98-121): Assertion checker does not support try/catch clauses.
1313
// Warning 7645: (124-159): Assertion checker does not support try/catch clauses.
14+
// Warning 7645: (98-121): Assertion checker does not support try/catch clauses.
15+
// Warning 7645: (124-159): Assertion checker does not support try/catch clauses.

test/libsolidity/smtCheckerTests/control_flow/try_catch_2.sol

+2
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,5 @@ contract C {
1212
// ----
1313
// Warning 7645: (83-85): Assertion checker does not support try/catch clauses.
1414
// Warning 7645: (88-122): Assertion checker does not support try/catch clauses.
15+
// Warning 7645: (83-85): Assertion checker does not support try/catch clauses.
16+
// Warning 7645: (88-122): Assertion checker does not support try/catch clauses.

test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ contract C {
2424
}
2525
}
2626
// ----
27+
// Warning 6031: (261-267): Internal error: Expression undefined for SMT solver.
28+
// Warning 7650: (284-296): Assertion checker does not yet support this expression.
2729
// Warning 6328: (470-495): CHC: Assertion violation happens here.
2830
// Warning 6328: (540-565): CHC: Assertion violation happens here.
2931
// Warning 6031: (261-267): Internal error: Expression undefined for SMT solver.

test/libsolidity/smtCheckerTests/functions/abi_encode_functions.sol

+2
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ contract C {
77
// ----
88
// Warning 4588: (162-176): Assertion checker does not yet implement this type of function call.
99
// Warning 4588: (178-203): Assertion checker does not yet implement this type of function call.
10+
// Warning 4588: (162-176): Assertion checker does not yet implement this type of function call.
11+
// Warning 4588: (178-203): Assertion checker does not yet implement this type of function call.

test/libsolidity/smtCheckerTests/functions/functions_library_1.sol

+1
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ contract C
1818
}
1919
// ----
2020
// Warning 8364: (228-229): Assertion checker does not yet implement type type(library L)
21+
// Warning 8364: (228-229): Assertion checker does not yet implement type type(library L)

test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol

+1
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@ contract C
1717
}
1818
}
1919
// ----
20+
// Warning 8364: (228-229): Assertion checker does not yet implement type type(library L)
2021
// Warning 6328: (245-261): CHC: Assertion violation happens here.
2122
// Warning 8364: (228-229): Assertion checker does not yet implement type type(library L)

test/libsolidity/smtCheckerTests/functions/library_after_contract.sol

+1
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ library L {
1616
// ----
1717
// Warning 2018: (131-190): Function state mutability can be restricted to pure
1818
// Warning 8364: (86-87): Assertion checker does not yet implement type type(library L)
19+
// Warning 8364: (86-87): Assertion checker does not yet implement type type(library L)

test/libsolidity/smtCheckerTests/functions/library_constant.sol

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ contract C {
1919
}
2020
}
2121
// ----
22+
// Warning 8364: (300-302): Assertion checker does not yet implement type type(library l1)
2223
// Warning 6328: (136-155): CHC: Assertion violation happens here.
2324
// Warning 4984: (229-234): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
2425
// Warning 4984: (327-332): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.

test/libsolidity/smtCheckerTests/imports/import_library.sol

+1
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ library L {
1515
}
1616
}
1717
// ----
18+
// Warning 8364: (c:104-105): Assertion checker does not yet implement type type(library L)
1819
// Warning 6328: (c:113-126): CHC: Assertion violation happens here.
1920
// Warning 8364: (c:104-105): Assertion checker does not yet implement type type(library L)

test/libsolidity/smtCheckerTests/inline_assembly/empty.sol

+1
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ contract C
99
}
1010
// ----
1111
// Warning 7737: (76-90): Assertion checker does not support inline assembly.
12+
// Warning 7737: (76-90): Assertion checker does not support inline assembly.

test/libsolidity/smtCheckerTests/inline_assembly/local_var.sol

+1
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ contract C
1111
}
1212
// ----
1313
// Warning 7737: (97-121): Assertion checker does not support inline assembly.
14+
// Warning 7737: (97-121): Assertion checker does not support inline assembly.

test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2.sol

+4
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,7 @@ contract C {
1212
// Warning 8364: (231-237): Assertion checker does not yet implement type type(uint256[] memory)
1313
// Warning 8364: (231-240): Assertion checker does not yet implement type type(uint256[] memory[2] memory)
1414
// Warning 4588: (202-242): Assertion checker does not yet implement this type of function call.
15+
// Warning 8364: (221-222): Assertion checker does not yet implement type type(struct C.S storage pointer)
16+
// Warning 8364: (231-237): Assertion checker does not yet implement type type(uint256[] memory)
17+
// Warning 8364: (231-240): Assertion checker does not yet implement type type(uint256[] memory[2] memory)
18+
// Warning 4588: (202-242): Assertion checker does not yet implement this type of function call.

test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2_value_types.sol

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ contract C {
1212
// ----
1313
// Warning 2072: (122-129): Unused local variable.
1414
// Warning 2072: (178-185): Unused local variable.
15+
// Warning 4588: (133-164): Assertion checker does not yet implement this type of function call.
16+
// Warning 4588: (189-220): Assertion checker does not yet implement this type of function call.
1517
// Warning 6328: (300-316): CHC: Assertion violation happens here.
1618
// Warning 4588: (133-164): Assertion checker does not yet implement this type of function call.
1719
// Warning 4588: (189-220): Assertion checker does not yet implement this type of function call.

test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol

+4
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ contract C {
1313
// Warning 2072: (97-101): Unused local variable.
1414
// Warning 2072: (156-166): Unused local variable.
1515
// Warning 2072: (168-172): Unused local variable.
16+
// Warning 8364: (139-140): Assertion checker does not yet implement type type(contract C)
17+
// Warning 4588: (105-142): Assertion checker does not yet implement this type of function call.
18+
// Warning 8364: (210-211): Assertion checker does not yet implement type type(contract C)
19+
// Warning 4588: (176-213): Assertion checker does not yet implement this type of function call.
1620
// Warning 6328: (293-309): CHC: Assertion violation happens here.
1721
// Warning 6328: (313-329): CHC: Assertion violation happens here.
1822
// Warning 8364: (139-140): Assertion checker does not yet implement type type(contract C)

test/libsolidity/smtCheckerTests/special/abi_encode_slice.sol

+1
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ contract C {
66
}
77
// ----
88
// Warning 4588: (126-154): Assertion checker does not yet implement this type of function call.
9+
// Warning 4588: (126-154): Assertion checker does not yet implement this type of function call.

test/libsolidity/smtCheckerTests/typecast/enum_from_uint.sol

+1
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ contract C
1111
}
1212
// ----
1313
// Warning 8364: (132-133): Assertion checker does not yet implement type type(enum C.D)
14+
// Warning 8364: (132-133): Assertion checker does not yet implement type type(enum C.D)

test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_internal.sol

+3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ contract C {
1212
}
1313
// ----
1414
// Warning 2519: (128-159): This declaration shadows an existing declaration.
15+
// Warning 6031: (214-218): Internal error: Expression undefined for SMT solver.
16+
// Warning 6031: (222-226): Internal error: Expression undefined for SMT solver.
17+
// Warning 7229: (238-244): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons
1518
// Warning 6328: (207-227): CHC: Assertion violation happens here.
1619
// Warning 6328: (231-245): CHC: Assertion violation happens here.
1720
// Warning 5729: (214-218): Assertion checker does not yet implement this type of function call.

test/libsolidity/smtCheckerTests/typecast/same_size.sol

+1
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,4 @@ contract C {
7272
}
7373
// ----
7474
// Warning 8364: (1304-1305): Assertion checker does not yet implement type type(enum E)
75+
// Warning 8364: (1304-1305): Assertion checker does not yet implement type type(enum E)

test/libsolidity/smtCheckerTests/typecast/upcast.sol

+1
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,4 @@ contract C {
6868
}
6969
// ----
7070
// Warning 8364: (1144-1145): Assertion checker does not yet implement type type(contract D)
71+
// Warning 8364: (1144-1145): Assertion checker does not yet implement type type(contract D)

test/libsolidity/smtCheckerTests/types/function_type_external_address.sol

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ contract C {
77
}
88
// ----
99
// Warning 7650: (128-137): Assertion checker does not yet support this expression.
10+
// Warning 7650: (128-137): Assertion checker does not yet support this expression.

test/libsolidity/smtCheckerTests/types/function_type_members.sol

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ contract C {
77
}
88
// ----
99
// Warning 7650: (108-118): Assertion checker does not yet support this expression.
10+
// Warning 7650: (108-118): Assertion checker does not yet support this expression.

test/libsolidity/smtCheckerTests/types/function_type_nested.sol

+4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ contract C {
1212
}
1313
}
1414
// ----
15+
// Warning 8115: (152-197): Assertion checker does not yet support the type of this variable.
16+
// Warning 8364: (212-214): Assertion checker does not yet implement type function (function (uint256))
17+
// Warning 6031: (255-257): Internal error: Expression undefined for SMT solver.
18+
// Warning 8364: (255-257): Assertion checker does not yet implement type function (function (uint256))
1519
// Warning 5729: (123-128): Assertion checker does not yet implement this type of function call.
1620
// Warning 8115: (152-197): Assertion checker does not yet support the type of this variable.
1721
// Warning 8364: (212-214): Assertion checker does not yet implement type function (function (uint256))

test/libsolidity/smtCheckerTests/types/function_type_nested_return.sol

+5
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ contract C {
1515
}
1616
}
1717
// ----
18+
// Warning 8115: (224-269): Assertion checker does not yet support the type of this variable.
19+
// Warning 8364: (284-286): Assertion checker does not yet implement type function (function (uint256))
20+
// Warning 1695: (287-288): Assertion checker does not yet support this global variable.
21+
// Warning 6031: (327-329): Internal error: Expression undefined for SMT solver.
22+
// Warning 8364: (327-329): Assertion checker does not yet implement type function (function (uint256))
1823
// Warning 5729: (195-200): Assertion checker does not yet implement this type of function call.
1924
// Warning 8115: (224-269): Assertion checker does not yet support the type of this variable.
2025
// Warning 8364: (284-286): Assertion checker does not yet implement type function (function (uint256))

test/libsolidity/smtCheckerTests/types/mapping_struct_assignment.sol

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ contract C
1111
}
1212
}
1313
// ----
14+
// Warning 8364: (159-160): Assertion checker does not yet implement type type(struct C.S storage pointer)
15+
// Warning 4639: (159-163): Assertion checker does not yet implement this expression.
1416
// Warning 6838: (140-144): BMC: Condition is always false.
1517
// Warning 8364: (159-160): Assertion checker does not yet implement type type(struct C.S storage pointer)
1618
// Warning 4639: (159-163): Assertion checker does not yet implement this expression.

test/libsolidity/smtCheckerTests/types/no_effect_statements.sol

+6
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,9 @@ contract test {
2222
// Warning 8364: (140-141): Assertion checker does not yet implement type type(struct test.s storage pointer)
2323
// Warning 8364: (140-144): Assertion checker does not yet implement type type(struct test.s memory[7] memory)
2424
// Warning 8364: (156-163): Assertion checker does not yet implement type type(uint256[7] memory)
25+
// Warning 8364: (125-126): Assertion checker does not yet implement type type(struct test.s storage pointer)
26+
// Warning 8364: (130-131): Assertion checker does not yet implement type type(struct test.s storage pointer)
27+
// Warning 4639: (130-136): Assertion checker does not yet implement this expression.
28+
// Warning 8364: (140-141): Assertion checker does not yet implement type type(struct test.s storage pointer)
29+
// Warning 8364: (140-144): Assertion checker does not yet implement type type(struct test.s memory[7] memory)
30+
// Warning 8364: (156-163): Assertion checker does not yet implement type type(uint256[7] memory)

test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol

+10
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,16 @@ contract C {
1313
}
1414
}
1515
// ----
16+
// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable.
17+
// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable.
18+
// Warning 7650: (131-135): Assertion checker does not yet support this expression.
19+
// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref
20+
// Warning 7650: (139-143): Assertion checker does not yet support this expression.
21+
// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref
22+
// Warning 7650: (155-159): Assertion checker does not yet support this expression.
23+
// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref
24+
// Warning 7650: (170-174): Assertion checker does not yet support this expression.
25+
// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref
1626
// Warning 6328: (124-144): CHC: Assertion violation happens here.
1727
// Warning 6328: (148-182): CHC: Assertion violation happens here.
1828
// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable.

test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol

+42
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,48 @@ contract C {
2222
}
2323
}
2424
// ----
25+
// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable.
26+
// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable.
27+
// Warning 7650: (131-135): Assertion checker does not yet support this expression.
28+
// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref
29+
// Warning 7650: (139-143): Assertion checker does not yet support this expression.
30+
// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref
31+
// Warning 7650: (155-159): Assertion checker does not yet support this expression.
32+
// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref
33+
// Warning 7650: (170-174): Assertion checker does not yet support this expression.
34+
// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref
35+
// Warning 7650: (193-202): Assertion checker does not yet support this expression.
36+
// Warning 7650: (193-197): Assertion checker does not yet support this expression.
37+
// Warning 8364: (193-195): Assertion checker does not yet implement type struct C.S storage ref
38+
// Warning 8364: (193-200): Assertion checker does not yet implement type struct C.S storage ref
39+
// Warning 7650: (206-215): Assertion checker does not yet support this expression.
40+
// Warning 7650: (206-210): Assertion checker does not yet support this expression.
41+
// Warning 8364: (206-208): Assertion checker does not yet implement type struct C.S storage ref
42+
// Warning 8364: (206-213): Assertion checker does not yet implement type struct C.S storage ref
43+
// Warning 7650: (246-250): Assertion checker does not yet support this expression.
44+
// Warning 8364: (246-248): Assertion checker does not yet implement type struct C.S storage ref
45+
// Warning 4375: (246-250): Assertion checker does not support recursive structs.
46+
// Warning 7650: (259-263): Assertion checker does not yet support this expression.
47+
// Warning 8364: (259-261): Assertion checker does not yet implement type struct C.S storage ref
48+
// Warning 4375: (259-263): Assertion checker does not support recursive structs.
49+
// Warning 7650: (272-276): Assertion checker does not yet support this expression.
50+
// Warning 8364: (272-274): Assertion checker does not yet implement type struct C.S storage ref
51+
// Warning 8364: (272-283): Assertion checker does not yet implement type struct C.S storage ref
52+
// Warning 4375: (272-276): Assertion checker does not support recursive structs.
53+
// Warning 7650: (287-291): Assertion checker does not yet support this expression.
54+
// Warning 8364: (287-289): Assertion checker does not yet implement type struct C.S storage ref
55+
// Warning 8364: (287-298): Assertion checker does not yet implement type struct C.S storage ref
56+
// Warning 4375: (287-291): Assertion checker does not support recursive structs.
57+
// Warning 7650: (302-311): Assertion checker does not yet support this expression.
58+
// Warning 7650: (302-306): Assertion checker does not yet support this expression.
59+
// Warning 8364: (302-304): Assertion checker does not yet implement type struct C.S storage ref
60+
// Warning 8364: (302-309): Assertion checker does not yet implement type struct C.S storage ref
61+
// Warning 4375: (302-311): Assertion checker does not support recursive structs.
62+
// Warning 7650: (320-329): Assertion checker does not yet support this expression.
63+
// Warning 7650: (320-324): Assertion checker does not yet support this expression.
64+
// Warning 8364: (320-322): Assertion checker does not yet implement type struct C.S storage ref
65+
// Warning 8364: (320-327): Assertion checker does not yet implement type struct C.S storage ref
66+
// Warning 4375: (320-329): Assertion checker does not support recursive structs.
2567
// Warning 6328: (124-144): CHC: Assertion violation happens here.
2668
// Warning 6328: (148-182): CHC: Assertion violation happens here.
2769
// Warning 6328: (186-216): CHC: Assertion violation happens here.

0 commit comments

Comments
 (0)