Fix ICE in constants

This commit is contained in:
Leo Alt
2021-08-12 10:53:01 +02:00
parent cc4e24c200
commit 10397e440c
23 changed files with 497 additions and 350 deletions
@@ -57,8 +57,9 @@ contract C {
}
// ====
// SMTEngine: all
// SMTIgnoreCex: yes
// ----
// Warning 6328: (s2.sol:518-539): CHC: Assertion violation happens here.\nCounterexample:\n\nr2 = []\nr3 = []\nz = 0\n\nTransaction trace:\nC.constructor()\nC.p()\n C.f() -- internal call
// Warning 6328: (s2.sol:704-725): CHC: Assertion violation happens here.\nCounterexample:\n\nr1 = [3, 1, 2]\nr2 = [3, 1, 2]\nr3 = []\nz = 0\n\nTransaction trace:\nC.constructor()\nC.p()\n C.f() -- internal call\n C.g() -- internal call
// Warning 6328: (s2.sol:518-539): CHC: Assertion violation happens here.
// Warning 6328: (s2.sol:704-725): CHC: Assertion violation happens here.
// Warning 6328: (s2.sol:890-911): CHC: Assertion violation happens here.
// Warning 6328: (s2.sol:980-994): CHC: Assertion violation happens here.
@@ -18,7 +18,6 @@ contract C {
// 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.
@@ -22,7 +22,6 @@ contract C {
// 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.
@@ -16,7 +16,6 @@ contract Test {
// 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
@@ -25,8 +25,6 @@ contract C {
// 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.
@@ -71,8 +71,6 @@ contract C {
// 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.
@@ -141,8 +141,6 @@ contract C {
// 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.
@@ -55,10 +55,6 @@ contract C {
// 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
@@ -60,8 +60,6 @@ contract C {
// 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.
@@ -29,8 +29,6 @@ contract C {
// 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.
@@ -61,8 +61,6 @@ contract C {
// 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