From 7ea96c55830427c8f1557136e8cd299312322d47 Mon Sep 17 00:00:00 2001 From: hrkrshnn Date: Tue, 8 Dec 2020 21:48:23 +0100 Subject: [PATCH 01/12] Move the implementation of createLinkingFunction into a cpp file --- libyul/CMakeLists.txt | 1 + libyul/optimiser/UnusedFunctionsCommon.cpp | 77 ++++++++++++++++++++++ libyul/optimiser/UnusedFunctionsCommon.h | 69 ++++++------------- 3 files changed, 98 insertions(+), 49 deletions(-) create mode 100644 libyul/optimiser/UnusedFunctionsCommon.cpp diff --git a/libyul/CMakeLists.txt b/libyul/CMakeLists.txt index d5469911e..16f456e88 100644 --- a/libyul/CMakeLists.txt +++ b/libyul/CMakeLists.txt @@ -179,6 +179,7 @@ add_library(yul optimiser/UnusedFunctionParameterPruner.cpp optimiser/UnusedFunctionParameterPruner.h optimiser/UnusedFunctionsCommon.h + optimiser/UnusedFunctionsCommon.cpp optimiser/UnusedPruner.cpp optimiser/UnusedPruner.h optimiser/VarDeclInitializer.cpp diff --git a/libyul/optimiser/UnusedFunctionsCommon.cpp b/libyul/optimiser/UnusedFunctionsCommon.cpp new file mode 100644 index 000000000..db2ca5dee --- /dev/null +++ b/libyul/optimiser/UnusedFunctionsCommon.cpp @@ -0,0 +1,77 @@ +/* + This file is part of solidity. + + solidity is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + solidity is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with solidity. If not, see . +*/ +// SPDX-License-Identifier: GPL-3.0 + +#include + +#include + +#include + +#include + +using namespace solidity; +using namespace solidity::util; +using namespace solidity::yul; +using namespace solidity::yul::unusedFunctionsCommon; + +FunctionDefinition unusedFunctionsCommon::createLinkingFunction( + FunctionDefinition const& _original, + std::pair, std::vector> const& _usedParametersAndReturns, + YulString const& _originalFunctionName, + YulString const& _linkingFunctionName, + NameDispenser& _nameDispenser +) +{ + auto generateTypedName = [&](TypedName t) + { + return TypedName{ + t.location, + _nameDispenser.newName(t.name), + t.type + }; + }; + + langutil::SourceLocation loc = _original.location; + + FunctionDefinition linkingFunction{ + loc, + _linkingFunctionName, + util::applyMap(_original.parameters, generateTypedName), + util::applyMap(_original.returnVariables, generateTypedName), + {loc, {}} // body + }; + + FunctionCall call{loc, Identifier{loc, _originalFunctionName}, {}}; + for (auto const& p: filter(linkingFunction.parameters, _usedParametersAndReturns.first)) + call.arguments.emplace_back(Identifier{loc, p.name}); + + Assignment assignment{loc, {}, nullptr}; + + for (auto const& r: filter(linkingFunction.returnVariables, _usedParametersAndReturns.second)) + assignment.variableNames.emplace_back(Identifier{loc, r.name}); + + if (assignment.variableNames.empty()) + linkingFunction.body.statements.emplace_back(ExpressionStatement{loc, std::move(call)}); + else + { + assignment.value = std::make_unique(std::move(call)); + linkingFunction.body.statements.emplace_back(std::move(assignment)); + } + + return linkingFunction; +} diff --git a/libyul/optimiser/UnusedFunctionsCommon.h b/libyul/optimiser/UnusedFunctionsCommon.h index dcf9ca55b..2cf4c3114 100644 --- a/libyul/optimiser/UnusedFunctionsCommon.h +++ b/libyul/optimiser/UnusedFunctionsCommon.h @@ -19,15 +19,8 @@ #include #include + #include -#include -#include - -#include - -#include - -#include namespace solidity::yul::unusedFunctionsCommon { @@ -48,56 +41,34 @@ std::vector filter(std::vector const& _vec, std::vector const& _mask /// Returns true if applying UnusedFunctionParameterPruner is not helpful or redundant because the /// inliner will be able to handle it anyway. -bool tooSimpleToBePruned(FunctionDefinition const& _f) +inline bool tooSimpleToBePruned(FunctionDefinition const& _f) { return _f.body.statements.size() <= 1 && CodeSize::codeSize(_f.body) <= 1; } +/// Given a function definition `_original`, this function returns a 'linking' function that calls +/// `_originalFunctionName` (with reduced parameters and return values). +/// +/// The parameter `_usedParametersAndReturnVariables` is a pair of boolean-vectors. Its `.first` +/// corresponds to function parameters and its `.second` corresponds to function return-variables. A +/// false value at index `i` means that the corresponding function parameter / return-variable at +/// index `i` is unused. +/// +/// Example: +/// +/// Let `_original` be the function `function f_1() -> y { }`. (In practice, this function usually cannot +/// be inlined and has parameters / return-variables that are unused.) +/// Let `_usedParametersAndReturnVariables` be `({}, {false})` +/// Let `_originalFunctionName` be `f`. +/// Let `_linkingFunctionName` be `f_1`. +/// +/// Then the returned linking function would be `function f_1() -> y_1 { f() }` FunctionDefinition createLinkingFunction( FunctionDefinition const& _original, std::pair, std::vector> const& _usedParametersAndReturns, YulString const& _originalFunctionName, YulString const& _linkingFunctionName, NameDispenser& _nameDispenser -) -{ - auto generateTypedName = [&](TypedName t) - { - return TypedName{ - t.location, - _nameDispenser.newName(t.name), - t.type - }; - }; - - langutil::SourceLocation loc = _original.location; - - FunctionDefinition linkingFunction{ - loc, - _linkingFunctionName, - util::applyMap(_original.parameters, generateTypedName), - util::applyMap(_original.returnVariables, generateTypedName), - {loc, {}} // body - }; - - FunctionCall call{loc, Identifier{loc, _originalFunctionName}, {}}; - for (auto const& p: filter(linkingFunction.parameters, _usedParametersAndReturns.first)) - call.arguments.emplace_back(Identifier{loc, p.name}); - - Assignment assignment{loc, {}, nullptr}; - - for (auto const& r: filter(linkingFunction.returnVariables, _usedParametersAndReturns.second)) - assignment.variableNames.emplace_back(Identifier{loc, r.name}); - - if (assignment.variableNames.empty()) - linkingFunction.body.statements.emplace_back(ExpressionStatement{loc, std::move(call)}); - else - { - assignment.value = std::make_unique(std::move(call)); - linkingFunction.body.statements.emplace_back(std::move(assignment)); - } - - return linkingFunction; -} +); } From 06d719e4f190b741cc11c8b5b5c74002d5d4c092 Mon Sep 17 00:00:00 2001 From: hrkrshnn Date: Wed, 9 Dec 2020 11:02:21 +0100 Subject: [PATCH 02/12] Move filter to CommonData.h --- libsolutil/CommonData.h | 16 ++++++++++++++++ libyul/optimiser/UnusedFunctionsCommon.h | 14 -------------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/libsolutil/CommonData.h b/libsolutil/CommonData.h index 4ab824791..fa5fb8082 100644 --- a/libsolutil/CommonData.h +++ b/libsolutil/CommonData.h @@ -163,6 +163,22 @@ auto applyMap(Container const& _c, Callable&& _op, OutputContainer _oc = OutputC return _oc; } +/// Filter a vector. +/// Returns a copy of the vector after only taking indices `i` such that `_mask[i]` is true. +template +std::vector filter(std::vector const& _vec, std::vector const& _mask) +{ + assert(_vec.size() == _mask.size()); + + std::vector ret; + + for (size_t i = 0; i < _mask.size(); ++i) + if (_mask[i]) + ret.push_back(_vec[i]); + + return ret; +} + /// Functional fold. /// Given a container @param _c, an initial value @param _acc, /// and a binary operator @param _binaryOp(T, U), accumulate diff --git a/libyul/optimiser/UnusedFunctionsCommon.h b/libyul/optimiser/UnusedFunctionsCommon.h index 2cf4c3114..2b0f3000d 100644 --- a/libyul/optimiser/UnusedFunctionsCommon.h +++ b/libyul/optimiser/UnusedFunctionsCommon.h @@ -25,20 +25,6 @@ namespace solidity::yul::unusedFunctionsCommon { -template -std::vector filter(std::vector const& _vec, std::vector const& _mask) -{ - yulAssert(_vec.size() == _mask.size(), ""); - - std::vector ret; - - for (size_t i = 0; i < _mask.size(); ++i) - if (_mask[i]) - ret.push_back(_vec[i]); - - return ret; -} - /// Returns true if applying UnusedFunctionParameterPruner is not helpful or redundant because the /// inliner will be able to handle it anyway. inline bool tooSimpleToBePruned(FunctionDefinition const& _f) From a961a7626394dc1ed16ae895917a033d62696923 Mon Sep 17 00:00:00 2001 From: Leonardo Alt Date: Wed, 9 Dec 2020 10:52:49 +0100 Subject: [PATCH 03/12] Do not run SMTChecker when file level functions/constants are present. --- libsolidity/formal/BMC.cpp | 17 ++++++---- libsolidity/formal/CHC.cpp | 25 +++++++++------ libsolidity/formal/SMTEncoder.cpp | 32 +++++++++++++++++++ libsolidity/formal/SMTEncoder.h | 3 ++ .../file_level/free_constant_1.sol | 10 ++++++ .../file_level/free_constant_2.sol | 18 +++++++++++ .../file_level/free_function_1.sol | 14 ++++++++ .../file_level/free_function_2.sol | 10 ++++++ .../file_level/free_function_3.sol | 5 +++ .../file_level/free_function_4.sol | 8 +++++ .../file_level/free_function_5.sol | 9 ++++++ .../free_function_and_constant_1.sol | 17 ++++++++++ 12 files changed, 152 insertions(+), 16 deletions(-) create mode 100644 test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol create mode 100644 test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol create mode 100644 test/libsolidity/smtCheckerTests/file_level/free_function_1.sol create mode 100644 test/libsolidity/smtCheckerTests/file_level/free_function_2.sol create mode 100644 test/libsolidity/smtCheckerTests/file_level/free_function_3.sol create mode 100644 test/libsolidity/smtCheckerTests/file_level/free_function_4.sol create mode 100644 test/libsolidity/smtCheckerTests/file_level/free_function_5.sol create mode 100644 test/libsolidity/smtCheckerTests/file_level/free_function_and_constant_1.sol diff --git a/libsolidity/formal/BMC.cpp b/libsolidity/formal/BMC.cpp index 502db5836..7e8bd7d11 100644 --- a/libsolidity/formal/BMC.cpp +++ b/libsolidity/formal/BMC.cpp @@ -58,13 +58,18 @@ void BMC::analyze(SourceUnit const& _source, mapsolvers() > 0, ""); // If this check is true, Z3 and CVC4 are not available diff --git a/libsolidity/formal/CHC.cpp b/libsolidity/formal/CHC.cpp index 922c1c01c..ab15c4bc0 100644 --- a/libsolidity/formal/CHC.cpp +++ b/libsolidity/formal/CHC.cpp @@ -69,18 +69,23 @@ void CHC::analyze(SourceUnit const& _source) { solAssert(_source.annotation().experimentalFeatures.count(ExperimentalFeature::SMTChecker), ""); - resetSourceAnalysis(); + /// This is currently used to abort analysis of SourceUnits + /// containing file level functions or constants. + if (SMTEncoder::analyze(_source)) + { + resetSourceAnalysis(); - set sources; - sources.insert(&_source); - for (auto const& source: _source.referencedSourceUnits(true)) - sources.insert(source); - for (auto const* source: sources) - defineInterfacesAndSummaries(*source); - for (auto const* source: sources) - source->accept(*this); + set sources; + sources.insert(&_source); + for (auto const& source: _source.referencedSourceUnits(true)) + sources.insert(source); + for (auto const* source: sources) + defineInterfacesAndSummaries(*source); + for (auto const* source: sources) + source->accept(*this); - checkVerificationTargets(); + checkVerificationTargets(); + } bool ranSolver = true; #ifndef HAVE_Z3 diff --git a/libsolidity/formal/SMTEncoder.cpp b/libsolidity/formal/SMTEncoder.cpp index 06c41d732..c704e5ab1 100644 --- a/libsolidity/formal/SMTEncoder.cpp +++ b/libsolidity/formal/SMTEncoder.cpp @@ -40,6 +40,38 @@ SMTEncoder::SMTEncoder(smt::EncodingContext& _context): { } +bool SMTEncoder::analyze(SourceUnit const& _source) +{ + set sources; + sources.insert(&_source); + for (auto const& source: _source.referencedSourceUnits(true)) + sources.insert(source); + + bool analysis = true; + for (auto source: sources) + for (auto node: source->nodes()) + if (auto function = dynamic_pointer_cast(node)) + { + m_errorReporter.warning( + 6660_error, + function->location(), + "Model checker analysis was not possible because file level functions are not supported." + ); + analysis = false; + } + else if (auto var = dynamic_pointer_cast(node)) + { + m_errorReporter.warning( + 8195_error, + var->location(), + "Model checker analysis was not possible because file level constants are not supported." + ); + analysis = false; + } + + return analysis; +} + bool SMTEncoder::visit(ContractDefinition const& _contract) { solAssert(m_currentContract, ""); diff --git a/libsolidity/formal/SMTEncoder.h b/libsolidity/formal/SMTEncoder.h index 239a84820..4f08aae7e 100644 --- a/libsolidity/formal/SMTEncoder.h +++ b/libsolidity/formal/SMTEncoder.h @@ -52,6 +52,9 @@ class SMTEncoder: public ASTConstVisitor public: SMTEncoder(smt::EncodingContext& _context); + /// @returns true if engine should proceed with analysis. + bool analyze(SourceUnit const& _sources); + /// @returns the leftmost identifier in a multi-d IndexAccess. static Expression const* leftmostBase(IndexAccess const& _indexAccess); diff --git a/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol b/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol new file mode 100644 index 000000000..afb79abaa --- /dev/null +++ b/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol @@ -0,0 +1,10 @@ +pragma experimental SMTChecker; +uint constant A = 42; +contract C { + function f(uint x) public pure returns (uint) { + return x + A; + } +} +// ---- +// 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. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol b/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol new file mode 100644 index 000000000..8a628541b --- /dev/null +++ b/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol @@ -0,0 +1,18 @@ +pragma experimental SMTChecker; +uint256 constant x = 56; +enum ActionChoices {GoLeft, GoRight, GoStraight, Sit} +ActionChoices constant choices = ActionChoices.GoRight; +bytes32 constant st = "abc\x00\xff__"; +contract C { + function i() public returns (uint, ActionChoices, bytes32) { + return (x, choices, st); + } +} +// ---- +// 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. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol new file mode 100644 index 000000000..0295f070a --- /dev/null +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol @@ -0,0 +1,14 @@ +pragma experimental SMTChecker; +contract C { + uint[] data; + function f(uint x, uint[] calldata input) public view returns (uint, uint) { + (uint a, uint[] calldata b) = fun(input, data); + return (a, b.length + x); + } +} +function fun(uint[] calldata _x, uint[] storage _y) view returns (uint, uint[] calldata) { + return (_y[0], _x); +} +// ---- +// 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. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol new file mode 100644 index 000000000..e480f1219 --- /dev/null +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol @@ -0,0 +1,10 @@ +pragma experimental SMTChecker; +contract C { + function g() external { + f(); + } +} +function f() {} +// ---- +// 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. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol new file mode 100644 index 000000000..6b04e3550 --- /dev/null +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol @@ -0,0 +1,5 @@ +pragma experimental SMTChecker; +function f() view {} +// ---- +// 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. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol new file mode 100644 index 000000000..c2f284fda --- /dev/null +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol @@ -0,0 +1,8 @@ +pragma experimental SMTChecker; +function f()pure { + ufixed a = uint64(1) + ufixed(2); +} +// ---- +// 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. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol new file mode 100644 index 000000000..28e10360f --- /dev/null +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol @@ -0,0 +1,9 @@ +pragma experimental SMTChecker; +contract K {} +function f() pure { + (abi.encode, ""); +} +// ---- +// 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. 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 new file mode 100644 index 000000000..c19514c22 --- /dev/null +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_and_constant_1.sol @@ -0,0 +1,17 @@ +pragma experimental SMTChecker; +uint constant A = 42; +contract C { + uint[] data; + function f(uint x, uint[] calldata input) public view returns (uint, uint) { + (uint a, uint[] calldata b) = fun(input, data); + return (a, b.length + x + A); + } +} +function fun(uint[] calldata _x, uint[] storage _y) view returns (uint, uint[] calldata) { + return (_y[0], _x); +} +// ---- +// 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. From da17150bec893c32500321d6d5d41ec132da65d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Wed, 9 Dec 2020 12:54:38 +0100 Subject: [PATCH 04/12] Extract common parts from external job definitions into commands --- .circleci/config.yml | 237 +++++++++++++++---------------------------- 1 file changed, 83 insertions(+), 154 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7e6067574..e4df5987c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -802,172 +802,60 @@ jobs: npm --version test/externalTests/solc-js/solc-js.sh /tmp/workspace/soljson.js $(cat /tmp/workspace/version.txt) - t_ems_compile_ext_gnosis: + t_ems_compile_ext: + parameters: + project: + type: string + nodejs_version: + type: integer + default: 14 docker: - - image: circleci/node:14 + - image: circleci/node:<> environment: TERM: xterm + COMPILE_ONLY: 1 steps: - checkout - attach_workspace: at: /tmp/workspace - run: - name: External GnosisSafe compilation + name: External <> compilation command: | - export COMPILE_ONLY=1 - test/externalTests/gnosis.sh /tmp/workspace/soljson.js + test/externalTests/<>.sh /tmp/workspace/soljson.js - t_ems_test_ext_gnosis: + t_ems_test_ext: + parameters: + project: + type: string + nodejs_version: + type: integer + default: 14 + gitter_notify: + type: boolean + default: no docker: - # NOTE: Tests do not start on node.js 14 ("ganache-cli exited early with code 1"). - - image: circleci/node:12 + - image: circleci/node:<> environment: TERM: xterm + COMPILE_ONLY: 0 steps: - checkout - attach_workspace: at: /tmp/workspace - run: - name: External GnosisSafe tests - command: | - test/externalTests/gnosis.sh /tmp/workspace/soljson.js - - t_ems_compile_ext_gnosis_v2: - docker: - - image: circleci/node:14 - environment: - TERM: xterm - steps: - - checkout - - attach_workspace: - at: /tmp/workspace - - run: - name: External GnosisSafe v2 compilation - command: | - export COMPILE_ONLY=1 - test/externalTests/gnosis-v2.sh /tmp/workspace/soljson.js - - t_ems_test_ext_gnosis_v2: - docker: - # NOTE: Tests do not start on node.js 14 ("ganache-cli exited early with code 1"). - - image: circleci/node:12 - environment: - TERM: xterm - steps: - - checkout - - attach_workspace: - at: /tmp/workspace - - run: - name: External GnosisSafe v2 tests - command: | - test/externalTests/gnosis-v2.sh /tmp/workspace/soljson.js - - t_ems_compile_ext_zeppelin: - docker: - - image: circleci/node:14 - environment: - TERM: xterm - steps: - - checkout - - attach_workspace: - at: /tmp/workspace - - run: - name: External Zeppelin compilation - command: | - export COMPILE_ONLY=1 - test/externalTests/zeppelin.sh /tmp/workspace/soljson.js - - t_ems_test_ext_zeppelin: - docker: - - image: circleci/node:14 - environment: - TERM: xterm - steps: - - checkout - - attach_workspace: - at: /tmp/workspace - - run: - name: External Zeppelin tests - command: | - test/externalTests/zeppelin.sh /tmp/workspace/soljson.js - - t_ems_compile_ext_colony: - docker: - - image: circleci/node:14 - environment: - TERM: xterm - steps: - - checkout - - attach_workspace: - at: /tmp/workspace - - run: - name: Install test dependencies + name: Install dependencies command: | + # lsof is used by Colony in its stop-blockchain-client.sh script sudo apt-get -qy install lsof - run: - name: External ColonyNetworks compilation + name: External <> tests command: | - export COMPILE_ONLY=1 - test/externalTests/colony.sh /tmp/workspace/soljson.js - - t_ems_test_ext_colony: - docker: - - image: circleci/node:14 - environment: - TERM: xterm - steps: - - checkout - - attach_workspace: - at: /tmp/workspace - - run: - name: Install test dependencies - command: | - sudo apt-get -qy install lsof - - run: - name: External ColonyNetworks tests - command: | - test/externalTests/colony.sh /tmp/workspace/soljson.js - - run: *gitter_notify_failure - - run: *gitter_notify_success - - t_ems_compile_ext_ens: - docker: - # NOTE: One of the dependencies (fsevents) fails to build its native extension on node.js 12+. - - image: circleci/node:10 - environment: - TERM: xterm - steps: - - checkout - - attach_workspace: - at: /tmp/workspace - - run: - name: Install test dependencies - command: | - sudo apt-get -qy install lsof - - run: - name: External Ens compilation - command: | - export COMPILE_ONLY=1 - test/externalTests/ens.sh /tmp/workspace/soljson.js - - t_ems_test_ext_ens: - docker: - # NOTE: One of the dependencies (fsevents) fails to build its native extension on node.js 12+. - - image: circleci/node:10 - environment: - TERM: xterm - steps: - - checkout - - attach_workspace: - at: /tmp/workspace - - run: - name: Install test dependencies - command: | - sudo apt-get -qy install lsof - - run: - name: External Ens compilation - command: | - test/externalTests/ens.sh /tmp/workspace/soljson.js + test/externalTests/<>.sh /tmp/workspace/soljson.js + - when: + condition: <> + steps: + - run: *gitter_notify_failure + - run: *gitter_notify_success b_win: &b_win executor: @@ -1149,17 +1037,54 @@ workflows: # Emscripten build and tests that take 15 minutes or less - b_ems: *workflow_trigger_on_tags - t_ems_solcjs: *workflow_emscripten - - t_ems_compile_ext_colony: *workflow_emscripten - - t_ems_compile_ext_gnosis: *workflow_emscripten - - t_ems_compile_ext_gnosis_v2: *workflow_emscripten - - t_ems_compile_ext_zeppelin: *workflow_emscripten - - t_ems_compile_ext_ens: *workflow_emscripten + + - t_ems_compile_ext: + <<: *workflow_emscripten + name: t_ems_compile_ext_colony + project: colony + - t_ems_compile_ext: + <<: *workflow_emscripten + name: t_ems_compile_ext_gnosis + project: gnosis + - t_ems_compile_ext: + <<: *workflow_emscripten + name: t_ems_compile_ext_gnosis_v2 + project: gnosis-v2 + - t_ems_compile_ext: + <<: *workflow_emscripten + name: t_ems_compile_ext_zeppelin + project: zeppelin + - t_ems_compile_ext: + <<: *workflow_emscripten + name: t_ems_compile_ext_ens + project: ens + # NOTE: One of the dependencies (fsevents) fails to build its native extension on node.js 12+. + nodejs_version: 10 + # FIXME: Gnosis tests are pretty flaky right now. They often fail on CircleCI due to random ProviderError # and there are also other less frequent problems. See https://github.com/gnosis/safe-contracts/issues/216. - #- t_ems_test_ext_gnosis: *workflow_emscripten - - t_ems_test_ext_gnosis_v2: *workflow_emscripten - - t_ems_test_ext_zeppelin: *workflow_emscripten - - t_ems_test_ext_ens: *workflow_emscripten + #- t_ems_test_ext: + # <<: *workflow_emscripten + # name: t_ems_test_ext_gnosis + # project: gnosis + # # NOTE: Tests do not start on node.js 14 ("ganache-cli exited early with code 1"). + # nodejs_version: 12 + - t_ems_test_ext: + <<: *workflow_emscripten + name: t_ems_test_ext_gnosis_v2 + project: gnosis-v2 + # NOTE: Tests do not start on node.js 14 ("ganache-cli exited early with code 1"). + nodejs_version: 12 + - t_ems_test_ext: + <<: *workflow_emscripten + name: t_ems_test_ext_zeppelin + project: zeppelin + - t_ems_test_ext: + <<: *workflow_emscripten + name: t_ems_test_ext_ens + project: ens + # NOTE: One of the dependencies (fsevents) fails to build its native extension on node.js 12+. + nodejs_version: 10 # Windows build and tests - b_win: *workflow_trigger_on_tags @@ -1216,4 +1141,8 @@ workflows: # Emscripten build and tests that take more than 15 minutes to execute - b_ems: *workflow_trigger_on_tags - - t_ems_test_ext_colony: *workflow_emscripten + - t_ems_test_ext: + <<: *workflow_emscripten + name: t_ems_test_ext_colony + project: colony + gitter_notify: yes From b672c2fab702592d0d8de8d28080e71ec5746bca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Wed, 9 Dec 2020 13:07:21 +0100 Subject: [PATCH 05/12] Combine the t_ems_compile_ext and t_ems_test_ext job definitions --- .circleci/config.yml | 51 +++++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 32 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e4df5987c..17f0831a9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -802,31 +802,13 @@ jobs: npm --version test/externalTests/solc-js/solc-js.sh /tmp/workspace/soljson.js $(cat /tmp/workspace/version.txt) - t_ems_compile_ext: + t_ems_ext: parameters: project: type: string - nodejs_version: + compile_only: type: integer - default: 14 - docker: - - image: circleci/node:<> - environment: - TERM: xterm - COMPILE_ONLY: 1 - steps: - - checkout - - attach_workspace: - at: /tmp/workspace - - run: - name: External <> compilation - command: | - test/externalTests/<>.sh /tmp/workspace/soljson.js - - t_ems_test_ext: - parameters: - project: - type: string + default: 0 nodejs_version: type: integer default: 14 @@ -837,7 +819,7 @@ jobs: - image: circleci/node:<> environment: TERM: xterm - COMPILE_ONLY: 0 + COMPILE_ONLY: <> steps: - checkout - attach_workspace: @@ -1038,48 +1020,53 @@ workflows: - b_ems: *workflow_trigger_on_tags - t_ems_solcjs: *workflow_emscripten - - t_ems_compile_ext: + - t_ems_ext: <<: *workflow_emscripten name: t_ems_compile_ext_colony project: colony - - t_ems_compile_ext: + compile_only: 1 + - t_ems_ext: <<: *workflow_emscripten name: t_ems_compile_ext_gnosis project: gnosis - - t_ems_compile_ext: + compile_only: 1 + - t_ems_ext: <<: *workflow_emscripten name: t_ems_compile_ext_gnosis_v2 project: gnosis-v2 - - t_ems_compile_ext: + compile_only: 1 + - t_ems_ext: <<: *workflow_emscripten name: t_ems_compile_ext_zeppelin project: zeppelin - - t_ems_compile_ext: + compile_only: 1 + - t_ems_ext: <<: *workflow_emscripten name: t_ems_compile_ext_ens project: ens + compile_only: 1 # NOTE: One of the dependencies (fsevents) fails to build its native extension on node.js 12+. nodejs_version: 10 # FIXME: Gnosis tests are pretty flaky right now. They often fail on CircleCI due to random ProviderError # and there are also other less frequent problems. See https://github.com/gnosis/safe-contracts/issues/216. - #- t_ems_test_ext: + #- t_ems_ext: # <<: *workflow_emscripten # name: t_ems_test_ext_gnosis # project: gnosis # # NOTE: Tests do not start on node.js 14 ("ganache-cli exited early with code 1"). # nodejs_version: 12 - - t_ems_test_ext: + - t_ems_ext: <<: *workflow_emscripten name: t_ems_test_ext_gnosis_v2 project: gnosis-v2 # NOTE: Tests do not start on node.js 14 ("ganache-cli exited early with code 1"). nodejs_version: 12 - - t_ems_test_ext: + - t_ems_ext: <<: *workflow_emscripten name: t_ems_test_ext_zeppelin project: zeppelin - - t_ems_test_ext: + - t_ems_ext: <<: *workflow_emscripten name: t_ems_test_ext_ens project: ens @@ -1141,7 +1128,7 @@ workflows: # Emscripten build and tests that take more than 15 minutes to execute - b_ems: *workflow_trigger_on_tags - - t_ems_test_ext: + - t_ems_ext: <<: *workflow_emscripten name: t_ems_test_ext_colony project: colony From b0a93a85c2037b8056558fa83868d4e2db1a4de6 Mon Sep 17 00:00:00 2001 From: chriseth Date: Wed, 9 Dec 2020 15:33:16 +0100 Subject: [PATCH 06/12] Sort changelog. --- Changelog.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Changelog.md b/Changelog.md index a8dff3f86..7d2095bb4 100644 --- a/Changelog.md +++ b/Changelog.md @@ -8,19 +8,19 @@ Language Features: Compiler Features: * Code Generator: Avoid memory allocation for default value if it is not used. + * SMTChecker: Report struct values in counterexamples from CHC engine. + * SMTChecker: Support early returns in the CHC engine. + * SMTChecker: Support getters. * SMTChecker: Support named arguments in function calls. * SMTChecker: Support struct constructor. - * SMTChecker: Support getters. - * SMTChecker: Support early returns in the CHC engine. - * SMTChecker: Report struct values in counterexamples from CHC engine. * Standard-Json: Properly filter the requested output artifacts. Bugfixes: * Code generator: Do not pad empty string literals with a single 32-byte zero field in the ABI coder v1. + * SMTChecker: Fix cast string literals to byte arrays. * SMTChecker: Fix internal compiler error when doing bitwise compound assignment with string literals. * SMTChecker: Fix internal error when trying to generate counterexamples with old z3. * SMTChecker: Fix segmentation fault that could occur on certain SMT-enabled sources when no SMT solver was available. - * SMTChecker: Fix cast string literals to byte arrays. * Type Checker: ``super`` is not available in libraries. * Yul Optimizer: Fix a bug in NameSimplifier where a new name created by NameSimplifier could also be created by NameDispenser. * Yul Optimizer: Removed NameSimplifier from optimization steps available to users. From e691b7402a210281a8a9e397b8b9c5e4f5dc1ea3 Mon Sep 17 00:00:00 2001 From: Daniel Kirchner Date: Wed, 9 Dec 2020 15:15:49 +0100 Subject: [PATCH 07/12] Move standard-json "modelCheckerSettings" key to "settings.modelChecker". --- Changelog.md | 1 + docs/using-the-compiler.rst | 20 +++++++++---------- libsolidity/interface/StandardCompiler.cpp | 12 +++++------ scripts/bytecodecompare/prepare_report.py | 6 ++---- scripts/bytecodecompare/storebytecode.sh | 6 ++---- .../input.json | 7 +++++-- .../input.json | 7 +++++-- .../input.json | 7 +++++-- .../input.json | 7 +++++-- .../input.json | 7 +++++-- .../input.json | 9 ++++++--- .../input.json | 9 ++++++--- .../input.json | 9 ++++++--- .../input.json | 7 +++++-- .../output.json | 2 +- 15 files changed, 70 insertions(+), 46 deletions(-) diff --git a/Changelog.md b/Changelog.md index 7d2095bb4..52d7e8234 100644 --- a/Changelog.md +++ b/Changelog.md @@ -13,6 +13,7 @@ Compiler Features: * SMTChecker: Support getters. * SMTChecker: Support named arguments in function calls. * SMTChecker: Support struct constructor. + * Standard-Json: Move the recently introduced ``modelCheckerSettings`` key to ``settings.modelChecker``. * Standard-Json: Properly filter the requested output artifacts. Bugfixes: diff --git a/docs/using-the-compiler.rst b/docs/using-the-compiler.rst index 8504f3e0f..b1ddc76c3 100644 --- a/docs/using-the-compiler.rst +++ b/docs/using-the-compiler.rst @@ -369,16 +369,16 @@ Input Description "MyContract": [ "abi", "evm.bytecode.opcodes" ] } }, - }, - "modelCheckerSettings": - { - // Choose which model checker engine to use: all (default), bmc, chc, none. - "engine": "chc", - // Timeout for each SMT query in milliseconds. - // If this option is not given, the SMTChecker will use a deterministic - // resource limit by default. - // A given timeout of 0 means no resource/time restrictions for any query. - "timeout": 20000 + "modelChecker": + { + // Choose which model checker engine to use: all (default), bmc, chc, none. + "engine": "chc", + // Timeout for each SMT query in milliseconds. + // If this option is not given, the SMTChecker will use a deterministic + // resource limit by default. + // A given timeout of 0 means no resource/time restrictions for any query. + "timeout": 20000 + } } } diff --git a/libsolidity/interface/StandardCompiler.cpp b/libsolidity/interface/StandardCompiler.cpp index d46a01701..9bf080b47 100644 --- a/libsolidity/interface/StandardCompiler.cpp +++ b/libsolidity/interface/StandardCompiler.cpp @@ -409,7 +409,7 @@ std::optional checkKeys(Json::Value const& _input, set cons std::optional checkRootKeys(Json::Value const& _input) { - static set keys{"auxiliaryInput", "language", "modelCheckerSettings", "settings", "sources"}; + static set keys{"auxiliaryInput", "language", "settings", "sources"}; return checkKeys(_input, keys, "root"); } @@ -427,14 +427,14 @@ std::optional checkAuxiliaryInputKeys(Json::Value const& _input) std::optional checkSettingsKeys(Json::Value const& _input) { - static set keys{"parserErrorRecovery", "debug", "evmVersion", "libraries", "metadata", "optimizer", "outputSelection", "remappings", "stopAfter", "viaIR"}; + static set keys{"parserErrorRecovery", "debug", "evmVersion", "libraries", "metadata", "modelChecker", "optimizer", "outputSelection", "remappings", "stopAfter", "viaIR"}; return checkKeys(_input, keys, "settings"); } std::optional checkModelCheckerSettingsKeys(Json::Value const& _input) { static set keys{"engine", "timeout"}; - return checkKeys(_input, keys, "modelCheckerSettings"); + return checkKeys(_input, keys, "modelChecker"); } std::optional checkOptimizerKeys(Json::Value const& _input) @@ -892,7 +892,7 @@ std::variant StandardCompiler: "Requested output selection conflicts with \"settings.stopAfter\"." ); - Json::Value const& modelCheckerSettings = _input.get("modelCheckerSettings", Json::Value()); + Json::Value const& modelCheckerSettings = settings.get("modelChecker", Json::Value()); if (auto result = checkModelCheckerSettingsKeys(modelCheckerSettings)) return *result; @@ -900,7 +900,7 @@ std::variant StandardCompiler: if (modelCheckerSettings.isMember("engine")) { if (!modelCheckerSettings["engine"].isString()) - return formatFatalError("JSONError", "modelCheckerSettings.engine must be a string."); + return formatFatalError("JSONError", "settings.modelChecker.engine must be a string."); std::optional engine = ModelCheckerEngine::fromString(modelCheckerSettings["engine"].asString()); if (!engine) return formatFatalError("JSONError", "Invalid model checker engine requested."); @@ -910,7 +910,7 @@ std::variant StandardCompiler: if (modelCheckerSettings.isMember("timeout")) { if (!modelCheckerSettings["timeout"].isUInt()) - return formatFatalError("JSONError", "modelCheckerSettings.timeout must be an unsigned integer."); + return formatFatalError("JSONError", "settings.modelChecker.timeout must be an unsigned integer."); ret.modelCheckerSettings.timeout = modelCheckerSettings["timeout"].asUInt(); } diff --git a/scripts/bytecodecompare/prepare_report.py b/scripts/bytecodecompare/prepare_report.py index 4f231d2d1..2697b940b 100755 --- a/scripts/bytecodecompare/prepare_report.py +++ b/scripts/bytecodecompare/prepare_report.py @@ -19,10 +19,8 @@ for optimize in [False, True]: 'optimizer': { 'enabled': optimize }, - 'outputSelection': {'*': {'*': ['evm.bytecode.object', 'metadata']}} - }, - 'modelCheckerSettings': { - "engine": 'none' + 'outputSelection': {'*': {'*': ['evm.bytecode.object', 'metadata']}}, + 'modelChecker': { "engine": 'none' } } } args = [SOLC_BIN, '--standard-json'] diff --git a/scripts/bytecodecompare/storebytecode.sh b/scripts/bytecodecompare/storebytecode.sh index d9b04ae54..bddc6aa56 100755 --- a/scripts/bytecodecompare/storebytecode.sh +++ b/scripts/bytecodecompare/storebytecode.sh @@ -66,10 +66,8 @@ for (var optimize of [false, true]) sources: inputs, settings: { optimizer: { enabled: optimize }, - outputSelection: { '*': { '*': ['evm.bytecode.object', 'metadata'] } } - }, - "modelCheckerSettings": { - "engine": "none" + outputSelection: { '*': { '*': ['evm.bytecode.object', 'metadata'] } }, + "modelChecker": { "engine": "none" } } } var result = JSON.parse(compiler.compile(JSON.stringify(input))) diff --git a/test/cmdlineTests/standard_model_checker_engine_all/input.json b/test/cmdlineTests/standard_model_checker_engine_all/input.json index 6dbf3647f..e39baccbc 100644 --- a/test/cmdlineTests/standard_model_checker_engine_all/input.json +++ b/test/cmdlineTests/standard_model_checker_engine_all/input.json @@ -7,8 +7,11 @@ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, - "modelCheckerSettings": + "settings": { - "engine": "all" + "modelChecker": + { + "engine": "all" + } } } diff --git a/test/cmdlineTests/standard_model_checker_engine_bmc/input.json b/test/cmdlineTests/standard_model_checker_engine_bmc/input.json index 7395c5b12..944d64147 100644 --- a/test/cmdlineTests/standard_model_checker_engine_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_engine_bmc/input.json @@ -7,8 +7,11 @@ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, - "modelCheckerSettings": + "settings": { - "engine": "bmc" + "modelChecker": + { + "engine": "bmc" + } } } diff --git a/test/cmdlineTests/standard_model_checker_engine_chc/input.json b/test/cmdlineTests/standard_model_checker_engine_chc/input.json index 1a46cb917..bda610936 100644 --- a/test/cmdlineTests/standard_model_checker_engine_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_engine_chc/input.json @@ -7,8 +7,11 @@ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, - "modelCheckerSettings": + "settings": { - "engine": "chc" + "modelChecker": + { + "engine": "chc" + } } } diff --git a/test/cmdlineTests/standard_model_checker_engine_none/input.json b/test/cmdlineTests/standard_model_checker_engine_none/input.json index a66a757ac..cbb146060 100644 --- a/test/cmdlineTests/standard_model_checker_engine_none/input.json +++ b/test/cmdlineTests/standard_model_checker_engine_none/input.json @@ -7,8 +7,11 @@ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, - "modelCheckerSettings": + "settings": { - "engine": "none" + "modelChecker": + { + "engine": "none" + } } } diff --git a/test/cmdlineTests/standard_model_checker_timeout_all/input.json b/test/cmdlineTests/standard_model_checker_timeout_all/input.json index a9c901b78..a0de7e267 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_all/input.json +++ b/test/cmdlineTests/standard_model_checker_timeout_all/input.json @@ -7,8 +7,11 @@ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test {\nfunction f(uint x, uint y, uint k) public pure {\nrequire(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}}" } }, - "modelCheckerSettings": + "settings": { - "timeout": 1000 + "modelChecker": + { + "timeout": 1000 + } } } diff --git a/test/cmdlineTests/standard_model_checker_timeout_bmc/input.json b/test/cmdlineTests/standard_model_checker_timeout_bmc/input.json index 83441ca59..0cf2c2182 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_timeout_bmc/input.json @@ -7,9 +7,12 @@ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test {\nfunction f(uint x, uint y, uint k) public pure {\nrequire(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}}" } }, - "modelCheckerSettings": + "settings": { - "engine": "bmc", - "timeout": 1000 + "modelChecker": + { + "engine": "bmc", + "timeout": 1000 + } } } diff --git a/test/cmdlineTests/standard_model_checker_timeout_chc/input.json b/test/cmdlineTests/standard_model_checker_timeout_chc/input.json index f88d1745b..2e54455fb 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_timeout_chc/input.json @@ -7,9 +7,12 @@ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test {\nfunction f(uint x, uint y, uint k) public pure {\nrequire(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}}" } }, - "modelCheckerSettings": + "settings": { - "engine": "chc", - "timeout": 1000 + "modelChecker": + { + "engine": "chc", + "timeout": 1000 + } } } diff --git a/test/cmdlineTests/standard_model_checker_timeout_wrong_key/input.json b/test/cmdlineTests/standard_model_checker_timeout_wrong_key/input.json index 7b1c26f56..b0196d3be 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_wrong_key/input.json +++ b/test/cmdlineTests/standard_model_checker_timeout_wrong_key/input.json @@ -7,9 +7,12 @@ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, - "modelCheckerSettings": + "settings": { - "engine": "chc", - "atimeout": 1 + "modelChecker": + { + "engine": "chc", + "atimeout": 1 + } } } diff --git a/test/cmdlineTests/standard_model_checker_timeout_wrong_value/input.json b/test/cmdlineTests/standard_model_checker_timeout_wrong_value/input.json index 21a5a2e73..86a17c1d9 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_wrong_value/input.json +++ b/test/cmdlineTests/standard_model_checker_timeout_wrong_value/input.json @@ -7,8 +7,11 @@ "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, - "modelCheckerSettings": + "settings": { - "timeout": "asd" + "modelChecker": + { + "timeout": "asd" + } } } diff --git a/test/cmdlineTests/standard_model_checker_timeout_wrong_value/output.json b/test/cmdlineTests/standard_model_checker_timeout_wrong_value/output.json index 4bd0dde9a..c3a54e514 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_wrong_value/output.json +++ b/test/cmdlineTests/standard_model_checker_timeout_wrong_value/output.json @@ -1 +1 @@ -{"errors":[{"component":"general","formattedMessage":"modelCheckerSettings.timeout must be an unsigned integer.","message":"modelCheckerSettings.timeout must be an unsigned integer.","severity":"error","type":"JSONError"}]} +{"errors":[{"component":"general","formattedMessage":"settings.modelChecker.timeout must be an unsigned integer.","message":"settings.modelChecker.timeout must be an unsigned integer.","severity":"error","type":"JSONError"}]} From 165cab9e9d563af3c4ddb5209eb26048cc8ad347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Wed, 2 Dec 2020 00:05:10 +0100 Subject: [PATCH 08/12] Switch the external tests back to the usual branches from solidity-external-tests --- test/externalTests/colony.sh | 2 +- test/externalTests/ens.sh | 2 +- test/externalTests/gnosis-v2.sh | 4 ++-- test/externalTests/gnosis.sh | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/externalTests/colony.sh b/test/externalTests/colony.sh index 87d96b463..6e29637cb 100755 --- a/test/externalTests/colony.sh +++ b/test/externalTests/colony.sh @@ -33,7 +33,7 @@ function colony_test OPTIMIZER_LEVEL=3 CONFIG="truffle.js" - truffle_setup "$SOLJSON" https://github.com/solidity-external-tests/colonyNetwork.git develop_070_new + truffle_setup "$SOLJSON" https://github.com/solidity-external-tests/colonyNetwork.git develop_070 run_install "$SOLJSON" install_fn cd lib diff --git a/test/externalTests/ens.sh b/test/externalTests/ens.sh index 907411b6d..72337f62c 100755 --- a/test/externalTests/ens.sh +++ b/test/externalTests/ens.sh @@ -33,7 +33,7 @@ function ens_test export OPTIMIZER_LEVEL=1 export CONFIG="truffle-config.js" - truffle_setup "$SOLJSON" https://github.com/solidity-external-tests/ens.git upgrade-0.8.0 + truffle_setup "$SOLJSON" https://github.com/solidity-external-tests/ens.git master_070 # Use latest Truffle. Older versions crash on the output from 0.8.0. force_truffle_version ^5.1.55 diff --git a/test/externalTests/gnosis-v2.sh b/test/externalTests/gnosis-v2.sh index 6f3563ca3..07b2e171a 100755 --- a/test/externalTests/gnosis-v2.sh +++ b/test/externalTests/gnosis-v2.sh @@ -35,8 +35,8 @@ function gnosis_safe_test truffle_setup "$SOLJSON" https://github.com/solidity-external-tests/safe-contracts.git v2_070 - sed -i 's|github:gnosis/mock-contract#sol_0_5_0|github:solidity-external-tests/mock-contract#master_070_new|g' package.json - sed -i -E 's|"@gnosis.pm/util-contracts": "[^"]+"|"@gnosis.pm/util-contracts": "github:solidity-external-tests/util-contracts#solc-7"|g' package.json + sed -i 's|github:gnosis/mock-contract#sol_0_5_0|github:solidity-external-tests/mock-contract#master_070|g' package.json + sed -i -E 's|"@gnosis.pm/util-contracts": "[^"]+"|"@gnosis.pm/util-contracts": "github:solidity-external-tests/util-contracts#solc-7_070"|g' package.json # Remove the lock file (if it exists) to prevent it from overriding our changes in package.json rm -f package-lock.json diff --git a/test/externalTests/gnosis.sh b/test/externalTests/gnosis.sh index 7ea76c067..ca2f6844a 100755 --- a/test/externalTests/gnosis.sh +++ b/test/externalTests/gnosis.sh @@ -33,9 +33,9 @@ function gnosis_safe_test OPTIMIZER_LEVEL=1 CONFIG="truffle-config.js" - truffle_setup "$SOLJSON" https://github.com/solidity-external-tests/safe-contracts.git development_070_new + truffle_setup "$SOLJSON" https://github.com/solidity-external-tests/safe-contracts.git development_070 - sed -i 's|github:gnosis/mock-contract#sol_0_5_0|github:solidity-external-tests/mock-contract#master_070_new|g' package.json + sed -i 's|github:gnosis/mock-contract#sol_0_5_0|github:solidity-external-tests/mock-contract#master_070|g' package.json # Remove the lock file (if it exists) to prevent it from overriding our changes in package.json rm -f package-lock.json From 2e3cba996ae20d11ccc714e12e2de741dc778be2 Mon Sep 17 00:00:00 2001 From: Bhargava Shastry Date: Wed, 9 Dec 2020 11:07:48 +0100 Subject: [PATCH 09/12] Isabelle abiv2 fuzzer: Add type string --- test/tools/ossfuzz/protoToAbiV2.cpp | 54 ++++++++++++++++++++++++++--- test/tools/ossfuzz/protoToAbiV2.h | 38 +++++++++++++++++++- 2 files changed, 86 insertions(+), 6 deletions(-) diff --git a/test/tools/ossfuzz/protoToAbiV2.cpp b/test/tools/ossfuzz/protoToAbiV2.cpp index cdd8c5c42..a454a2723 100644 --- a/test/tools/ossfuzz/protoToAbiV2.cpp +++ b/test/tools/ossfuzz/protoToAbiV2.cpp @@ -195,7 +195,10 @@ pair ProtoConverter::varDecl( typeStr, ((m_varCounter == 1) ? Delimiter::SKIP : Delimiter::ADD) ); - + appendToIsabelleTypeString( + tVisitor.isabelleTypeString(), + ((m_varCounter == 1) ? Delimiter::SKIP : Delimiter::ADD) + ); // Update dyn param only if necessary if (tVisitor.isLastDynParamRightPadded()) m_isLastDynParamRightPadded = true; @@ -352,6 +355,14 @@ void ProtoConverter::appendTypedParamsPublic( .render(); } +void ProtoConverter::appendToIsabelleTypeString( + std::string const& _typeString, + Delimiter _delimiter +) +{ + m_isabelleTypeString << delimiterToString(_delimiter) << _typeString; +} + std::string ProtoConverter::typedParametersAsString(CalleeType _calleeType) { switch (_calleeType) @@ -628,6 +639,15 @@ pragma experimental ABIEncoderV2;)"; .render(); } +string ProtoConverter::isabelleTypeString() const +{ + string typeString = m_isabelleTypeString.str(); + if (!typeString.empty()) + return "(" + typeString + ")"; + else + return typeString; +} + string ProtoConverter::contractToString(Contract const& _input) { visit(_input); @@ -635,27 +655,44 @@ string ProtoConverter::contractToString(Contract const& _input) } /// Type visitor +void TypeVisitor::StructTupleString::addTypeStringToTuple(string& _typeString) +{ + index++; + if (index > 1) + stream << ","; + stream << _typeString; +} + +void TypeVisitor::StructTupleString::addArrayBracketToType(string& _arrayBracket) +{ + stream << _arrayBracket; +} + string TypeVisitor::visit(BoolType const&) { m_baseType = "bool"; + m_structTupleString.addTypeStringToTuple(m_baseType); return m_baseType; } string TypeVisitor::visit(IntegerType const& _type) { m_baseType = getIntTypeAsString(_type); + m_structTupleString.addTypeStringToTuple(m_baseType); return m_baseType; } string TypeVisitor::visit(FixedByteType const& _type) { m_baseType = getFixedByteTypeAsString(_type); + m_structTupleString.addTypeStringToTuple(m_baseType); return m_baseType; } string TypeVisitor::visit(AddressType const& _type) { m_baseType = getAddressTypeAsString(_type); + m_structTupleString.addTypeStringToTuple(m_baseType); return m_baseType; } @@ -666,12 +703,13 @@ string TypeVisitor::visit(ArrayType const& _type) string baseType = visit(_type.t()); solAssert(!baseType.empty(), ""); - string arrayBraces = _type.is_static() ? + string arrayBracket = _type.is_static() ? string("[") + to_string(getStaticArrayLengthFromFuzz(_type.length())) + string("]") : string("[]"); - m_baseType += arrayBraces; + m_baseType += arrayBracket; + m_structTupleString.addArrayBracketToType(arrayBracket); // If we don't know yet if the array will be dynamically encoded, // check again. If we already know that it will be, there's no @@ -679,13 +717,14 @@ string TypeVisitor::visit(ArrayType const& _type) if (!m_isLastDynParamRightPadded) m_isLastDynParamRightPadded = DynParamVisitor().visit(_type); - return baseType + arrayBraces; + return baseType + arrayBracket; } string TypeVisitor::visit(DynamicByteArrayType const& _type) { m_isLastDynParamRightPadded = true; m_baseType = bytesArrayTypeAsString(_type); + m_structTupleString.addTypeStringToTuple(m_baseType); return m_baseType; } @@ -708,7 +747,8 @@ void TypeVisitor::structDefinition(StructType const& _type) to_string(m_structCounter) + " {" ); - + // Start tuple of types with parenthesis + m_structTupleString.start(); // Increase indentation for struct fields m_indentation++; for (auto const& t: _type.t()) @@ -731,9 +771,13 @@ void TypeVisitor::structDefinition(StructType const& _type) ("member", "m" + to_string(m_structFieldCounter++)) .render() ); + string isabelleTypeStr = tVisitor.isabelleTypeString(); + m_structTupleString.addTypeStringToTuple(isabelleTypeStr); } m_indentation--; structDef += lineString("}"); + // End tuple of types with parenthesis + m_structTupleString.end(); m_structCounter++; m_structDef << structDef; m_indentation = wasIndentation; diff --git a/test/tools/ossfuzz/protoToAbiV2.h b/test/tools/ossfuzz/protoToAbiV2.h index f75f5d7e4..ee50947bc 100644 --- a/test/tools/ossfuzz/protoToAbiV2.h +++ b/test/tools/ossfuzz/protoToAbiV2.h @@ -152,6 +152,7 @@ public: ProtoConverter(ProtoConverter const&) = delete; ProtoConverter(ProtoConverter&&) = delete; std::string contractToString(Contract const& _input); + std::string isabelleTypeString() const; private: enum class Delimiter { @@ -287,6 +288,13 @@ private: Delimiter _delimiter ); + /// Append type name to type string meant to be + /// passed to Isabelle coder API. + void appendToIsabelleTypeString( + std::string const& _typeString, + Delimiter _delimiter + ); + /// Returns a Solidity variable declaration statement /// @param _type: string containing Solidity type of the /// variable to be declared. @@ -369,6 +377,8 @@ private: /// Contains typed parameter list to be passed to callee functions std::ostringstream m_typedParamsExternal; std::ostringstream m_typedParamsPublic; + /// Contains type string to be passed to Isabelle API + std::ostringstream m_isabelleTypeString; /// Contains type stream to be used in returndata coder function /// signature std::ostringstream m_types; @@ -630,7 +640,31 @@ public: else return false; } + std::string isabelleTypeString() + { + return m_structTupleString.stream.str(); + } private: + struct StructTupleString + { + StructTupleString() = default; + unsigned index = 0; + std::ostringstream stream; + void start() + { + stream << "("; + } + void end() + { + stream << ")"; + } + std::string operator()() + { + return stream.str(); + } + void addTypeStringToTuple(std::string& _typeString); + void addArrayBracketToType(std::string& _arrayBracket); + }; void structDefinition(StructType const&); std::string indentation() @@ -641,9 +675,11 @@ private: { return indentation() + _line + "\n"; } - std::string m_baseType; std::ostringstream m_structDef; + /// Utility type for conveniently composing a tuple + /// string for struct types. + StructTupleString m_structTupleString; unsigned m_indentation; unsigned m_structCounter; unsigned m_structStartCounter; From 3c142e0e94541927cb6ff304906b4beadbcb6bcc Mon Sep 17 00:00:00 2001 From: Leonardo Alt Date: Wed, 2 Dec 2020 18:40:48 +0100 Subject: [PATCH 10/12] Move CHC counterexamples to primary location --- libsolidity/formal/CHC.cpp | 3 +-- .../cmdlineTests/model_checker_engine_all/err | 10 ++++---- .../cmdlineTests/model_checker_engine_chc/err | 10 ++++---- .../output.json | 9 ++++--- .../output.json | 9 ++++--- test/libsolidity/SMTCheckerTest.cpp | 25 +++++++++++++++++++ test/libsolidity/SMTCheckerTest.h | 4 +++ test/libsolidity/SyntaxTest.h | 2 +- .../array_members/array_pop_length_1.sol | 2 +- .../array_members/array_pop_length_2.sol | 2 +- .../array_members/array_pop_length_3.sol | 4 +-- .../array_members/array_pop_length_4.sol | 2 +- .../array_members/array_pop_length_5.sol | 2 +- .../array_members/array_pop_length_6.sol | 2 +- .../array_members/array_pop_length_8.sol | 2 +- .../array_members/length_basic.sol | 2 +- .../length_same_after_assignment_2_fail.sol | 6 ++--- .../length_same_after_assignment_3_fail.sol | 8 +++--- .../array_members/pop_1_unsafe.sol | 2 +- .../array_members/pop_2d_unsafe.sol | 2 +- .../array_members/pop_constructor_unsafe.sol | 2 +- .../array_members/pop_loop_unsafe.sol | 2 +- .../array_members/push_2d_arg_1_unsafe.sol | 2 ++ .../array_members/push_as_lhs_1d.sol | 2 +- .../array_members/push_as_lhs_2d.sol | 2 +- .../array_members/push_as_lhs_and_rhs_1d.sol | 2 +- .../push_as_lhs_and_rhs_2d_1.sol | 2 +- .../push_push_no_args_1_fail.sol | 4 +-- .../push_push_no_args_2_fail.sol | 6 ++--- .../push_storage_ref_safe_aliasing.sol | 2 ++ .../push_storage_ref_unsafe_aliasing.sol | 2 +- .../push_storage_ref_unsafe_length.sol | 4 +-- .../array_members/push_zero_2d_unsafe.sol | 2 +- .../array_members/push_zero_unsafe.sol | 2 +- .../array_members/storage_pointer_push_1.sol | 2 +- .../blockchain_state/transfer.sol | 2 +- .../complex/slither/const_state_variables.sol | 2 +- .../branches_inside_modifiers_1.sol | 2 +- .../branches_inside_modifiers_2.sol | 2 +- .../branches_inside_modifiers_3.sol | 2 +- .../branches_inside_modifiers_4.sol | 2 +- .../branches_in_modifiers.sol | 2 +- .../branches_in_modifiers_2.sol | 6 ++--- .../constructor_state_variable_init.sol | 8 +++--- ...or_state_variable_init_chain_alternate.sol | 2 +- ...onstructor_state_variable_init_diamond.sol | 16 ++++++------ .../branches_with_return/constructors.sol | 6 ++--- .../branches_with_return/nested_if.sol | 2 +- .../branches_with_return/simple_if2.sol | 2 +- .../branches_with_return/simple_if_array.sol | 2 +- .../simple_if_state_var.sol | 2 +- .../branches_with_return/simple_if_struct.sol | 2 +- .../simple_if_struct_2.sol | 2 +- .../branches_with_return/simple_if_tuple.sol | 4 +-- .../smtCheckerTests/control_flow/require.sol | 2 +- .../control_flow/return_1_fail.sol | 8 +++--- .../control_flow/return_2_fail.sol | 2 ++ .../smtCheckerTests/control_flow/revert.sol | 2 +- .../control_flow/revert_complex_flow.sol | 2 +- .../control_flow/short_circuit_and_fail.sol | 2 +- .../short_circuit_and_inside_branch.sol | 4 +-- .../short_circuit_and_need_both_fail.sol | 2 +- .../control_flow/short_circuit_or_fail.sol | 2 +- .../short_circuit_or_inside_branch.sol | 2 +- .../short_circuit_or_need_both_fail.sol | 2 +- .../ways_to_merge_variables_1.sol | 2 +- .../ways_to_merge_variables_2.sol | 2 +- .../ways_to_merge_variables_3.sol | 2 +- .../crypto_functions_compare_hashes.sol | 6 ++--- .../crypto/crypto_functions_fail.sol | 2 +- .../crypto/crypto_functions_not_same.sol | 2 +- .../external_calls/external.sol | 2 +- .../external_calls/external_hash.sol | 2 ++ .../external_hash_known_code_pure.sol | 2 ++ .../external_hash_known_code_state.sol | 2 +- ...ernal_hash_known_code_state_reentrancy.sol | 2 +- ...h_known_code_state_reentrancy_indirect.sol | 2 ++ ...ash_known_code_state_reentrancy_unsafe.sol | 2 ++ .../external_hash_known_code_state_unsafe.sol | 4 +-- .../external_calls/external_inc.sol | 2 +- .../external_calls/mutex_f_no_guard.sol | 2 +- .../function_selector/function_types_sig.sol | 4 +-- .../function_selector/homer.sol | 2 +- .../function_selector/selector_2.sol | 2 +- .../function_selector/selector_3.sol | 2 +- .../functions/constructor_hierarchy.sol | 2 +- .../functions/constructor_hierarchy_2.sol | 2 +- .../functions/constructor_hierarchy_3.sol | 2 ++ .../functions/constructor_hierarchy_4.sol | 4 +-- .../constructor_hierarchy_diamond.sol | 2 ++ .../constructor_hierarchy_diamond_2.sol | 4 +-- .../constructor_hierarchy_diamond_3.sol | 6 ++--- ...tructor_hierarchy_diamond_empty_middle.sol | 2 +- .../constructor_hierarchy_empty_chain.sol | 2 +- .../constructor_hierarchy_empty_middle.sol | 2 +- ...r_hierarchy_empty_middle_no_invocation.sol | 2 +- .../constructor_hierarchy_mixed_chain.sol | 2 +- ...uctor_hierarchy_mixed_chain_local_vars.sol | 2 +- ...ctor_hierarchy_mixed_chain_with_params.sol | 2 ++ ...or_hierarchy_mixed_chain_with_params_2.sol | 2 +- .../constructor_hierarchy_modifier.sol | 2 +- .../constructor_hierarchy_same_var.sol | 4 +-- .../functions/constructor_simple.sol | 2 ++ .../functions/constructor_state_value.sol | 2 +- .../constructor_state_value_inherited.sol | 2 +- .../constructor_state_value_parameter.sol | 4 +-- .../function_call_state_var_init.sol | 2 +- ...unction_inside_branch_modify_state_var.sol | 2 +- ...ction_inside_branch_modify_state_var_3.sol | 4 +-- .../functions/functions_bound_1_fail.sol | 2 +- .../functions/functions_external_4.sol | 2 +- .../functions/functions_identity_1_fail.sol | 2 +- .../functions/functions_identity_2_fail.sol | 2 +- .../functions_identity_as_tuple_fail.sol | 2 +- .../functions/functions_library_1_fail.sol | 2 +- .../functions_storage_var_1_fail.sol | 2 +- .../functions_storage_var_2_fail.sol | 2 +- .../functions/getters/address.sol | 4 +-- .../functions/getters/array_1.sol | 2 +- .../functions/getters/array_2.sol | 2 +- .../functions/getters/contract.sol | 2 +- .../functions/getters/double_access.sol | 2 +- .../functions/getters/enum.sol | 2 +- .../functions/getters/fixed_bytes.sol | 4 +-- .../functions/getters/function.sol | 4 +-- .../functions/getters/mapping_1.sol | 2 +- .../functions/getters/mapping_2.sol | 2 +- .../functions/getters/mapping_with_cast.sol | 2 +- .../getters/nested_arrays_mappings_1.sol | 2 +- .../getters/nested_arrays_mappings_10.sol | 2 +- .../getters/nested_arrays_mappings_2.sol | 2 +- .../getters/nested_arrays_mappings_5.sol | 2 +- .../getters/nested_arrays_mappings_7.sol | 2 +- .../getters/nested_arrays_mappings_8.sol | 2 +- .../getters/nested_arrays_mappings_9.sol | 2 +- .../functions/getters/static_array.sol | 2 +- .../functions/getters/struct_1.sol | 2 +- .../functions/getters/struct_2.sol | 2 +- .../functions/getters/struct_4.sol | 2 +- .../getters/struct_with_reassignment.sol | 4 +-- .../functions/getters/uint.sol | 2 +- .../functions/internal_call_inheritance.sol | 2 +- .../internal_call_with_assertion_1_fail.sol | 10 ++++---- ...call_with_assertion_inheritance_1_fail.sol | 6 ++--- ...l_multiple_calls_with_assertion_1_fail.sol | 6 ++--- .../functions/library_constant.sol | 6 ++--- .../functions/this_external_call_2.sol | 2 +- .../functions/this_external_call_sender.sol | 2 ++ .../smtCheckerTests/functions/this_fake.sol | 2 +- .../smtCheckerTests/imports/import_base.sol | 2 +- .../imports/import_library.sol | 2 +- .../imports/imported_fail_1.sol | 20 +++++++-------- .../imports/imported_fail_2.sol | 22 ++++++++-------- .../imports/imported_fail_3.sol | 20 +++++++-------- .../simple_imported_fail_no_pragma.sol | 10 ++++---- .../simple_imported_fail_two_pragmas.sol | 12 ++++----- ...chy_base_calls_inheritance_specifier_1.sol | 4 +-- ...chy_base_calls_inheritance_specifier_2.sol | 4 +-- ...erarchy_base_calls_with_side_effects_1.sol | 2 ++ ...erarchy_base_calls_with_side_effects_2.sol | 2 +- ...erarchy_base_calls_with_side_effects_3.sol | 2 ++ ...erarchy_base_calls_with_side_effects_4.sol | 2 ++ ...erarchy_base_calls_with_side_effects_5.sol | 2 +- ...erarchy_base_calls_with_side_effects_6.sol | 2 +- ...erarchy_base_calls_with_side_effects_7.sol | 2 +- ...erarchy_base_calls_with_side_effects_8.sol | 4 +-- ...erarchy_base_calls_with_side_effects_9.sol | 6 ++--- ...ctor_hierarchy_mixed_chain_with_params.sol | 2 ++ .../constructor_state_variable_init.sol | 2 +- ...onstructor_state_variable_init_asserts.sol | 8 +++--- .../constructor_state_variable_init_base.sol | 2 +- .../constructor_state_variable_init_chain.sol | 2 +- ...or_state_variable_init_chain_alternate.sol | 2 +- ...ctor_state_variable_init_chain_run_all.sol | 3 ++- ...or_state_variable_init_chain_run_all_2.sol | 3 ++- ...tructor_state_variable_init_chain_tree.sol | 4 +-- ...onstructor_state_variable_init_diamond.sol | 2 +- ...tor_state_variable_init_diamond_middle.sol | 4 +-- .../smtCheckerTests/inheritance/fallback.sol | 6 ++--- .../inheritance/fallback_receive.sol | 6 ++--- .../inheritance/functions_1.sol | 6 ++--- .../inheritance/functions_2.sol | 6 ++--- .../inheritance/functions_3.sol | 12 ++++----- .../smtCheckerTests/inheritance/receive.sol | 6 ++--- .../inheritance/receive_fallback.sol | 6 ++--- .../smtCheckerTests/loops/do_while_1_fail.sol | 2 +- .../loops/do_while_break_2_fail.sol | 2 +- .../loops/do_while_break_fail.sol | 2 +- .../loops/for_1_break_fail.sol | 2 +- .../loops/for_1_continue_fail.sol | 2 +- .../smtCheckerTests/loops/for_1_fail.sol | 2 +- .../smtCheckerTests/loops/for_loop_4.sol | 2 +- .../smtCheckerTests/loops/for_loop_5.sol | 2 +- ...or_loop_array_assignment_memory_memory.sol | 2 ++ ...r_loop_array_assignment_storage_memory.sol | 2 +- ..._loop_array_assignment_storage_storage.sol | 4 +-- .../loops/while_1_break_fail.sol | 2 +- .../loops/while_1_continue_fail.sol | 2 +- .../smtCheckerTests/loops/while_1_fail.sol | 2 +- .../loops/while_2_break_fail.sol | 2 +- ...le_loop_array_assignment_memory_memory.sol | 1 + ..._loop_array_assignment_storage_storage.sol | 4 +-- .../loops/while_loop_simple_1.sol | 2 +- .../loops/while_loop_simple_3.sol | 2 +- .../loops/while_loop_simple_5.sol | 2 +- .../loops/while_nested_break_fail.sol | 4 +-- .../loops/while_nested_continue_fail.sol | 4 +-- .../smtCheckerTests/math/addmod_1.sol | 6 ++--- .../math/addmod_mulmod_zero.sol | 8 +++--- .../smtCheckerTests/math/mulmod_1.sol | 6 ++--- .../modifier_code_after_placeholder.sol | 4 +-- .../modifiers/modifier_control_flow.sol | 2 +- .../modifier_inside_branch_assignment.sol | 2 +- ...nside_branch_assignment_multi_branches.sol | 2 +- .../modifiers/modifier_multi.sol | 2 +- .../modifiers/modifier_multi_functions.sol | 2 +- .../modifiers/modifier_multi_parameters.sol | 2 +- .../modifiers/modifier_parameter_copy.sol | 2 +- .../modifier_same_local_variables.sol | 2 +- .../modifiers/modifier_two_invocations_2.sol | 2 +- .../modifiers/modifier_two_placeholders.sol | 2 +- .../assignment_contract_member_variable.sol | 4 +-- ...ignment_contract_member_variable_array.sol | 2 +- ...gnment_module_contract_member_variable.sol | 4 +-- .../operators/bitwise_and_fixed_bytes.sol | 2 +- .../operators/bitwise_and_int.sol | 2 +- .../operators/bitwise_and_rational.sol | 2 +- .../operators/bitwise_and_uint.sol | 6 ++--- .../operators/bitwise_not_fixed_bytes.sol | 2 +- .../operators/bitwise_not_int.sol | 8 +++--- .../operators/bitwise_not_uint.sol | 4 +-- .../operators/bitwise_or_fixed_bytes.sol | 2 +- .../operators/bitwise_or_int.sol | 4 +-- .../operators/bitwise_or_uint.sol | 4 +-- .../operators/bitwise_rational_2.sol | 2 +- .../operators/bitwise_xor_fixed_bytes.sol | 2 +- .../operators/bitwise_xor_int.sol | 4 +-- .../operators/bitwise_xor_uint.sol | 4 +-- .../operators/compound_add.sol | 2 +- .../operators/compound_add_array_index.sol | 2 +- .../operators/compound_add_mapping.sol | 2 +- .../compound_assignment_division_1.sol | 2 +- .../compound_assignment_division_2.sol | 2 +- .../compound_assignment_division_3.sol | 2 +- .../compound_bitwise_and_fixed_bytes.sol | 2 +- .../operators/compound_bitwise_and_int.sol | 2 +- .../operators/compound_bitwise_and_uint.sol | 6 ++--- .../compound_bitwise_or_fixed_bytes.sol | 2 +- .../operators/compound_bitwise_or_int.sol | 2 +- .../operators/compound_bitwise_or_uint.sol | 6 ++--- .../compound_bitwise_string_literal_2.sol | 2 +- .../compound_bitwise_string_literal_3.sol | 4 +-- .../compound_bitwise_xor_fixed_bytes.sol | 2 +- .../operators/compound_bitwise_xor_int.sol | 2 +- .../operators/compound_bitwise_xor_uint.sol | 6 ++--- .../operators/compound_mul.sol | 2 +- .../operators/compound_mul_array_index.sol | 2 +- .../operators/compound_mul_mapping.sol | 2 +- .../operators/compound_sub.sol | 2 +- .../operators/compound_sub_array_index.sol | 2 +- .../operators/compound_sub_mapping.sol | 2 +- .../operators/conditional_assignment_1.sol | 2 +- .../operators/conditional_assignment_2.sol | 2 +- .../operators/conditional_assignment_3.sol | 2 +- .../operators/conditional_assignment_5.sol | 2 +- .../conditional_assignment_always_true.sol | 2 +- .../conditional_assignment_function_1.sol | 2 +- .../conditional_assignment_function_2.sol | 4 ++- .../conditional_assignment_nested_unsafe.sol | 2 +- .../operators/delete_array_index_2d.sol | 2 +- .../operators/delete_array_push.sol | 4 +-- .../operators/delete_multid_array.sol | 2 ++ .../smtCheckerTests/operators/div_zero.sol | 2 +- .../smtCheckerTests/operators/division_1.sol | 2 +- .../smtCheckerTests/operators/division_3.sol | 2 +- .../smtCheckerTests/operators/exp.sol | 2 +- .../function_call_named_arguments.sol | 2 +- .../operators/index_access_for_bytes.sol | 2 +- .../operators/index_access_for_string.sol | 2 +- .../operators/index_access_side_effect.sol | 2 ++ .../operators/shifts/shift_cleanup.sol | 2 ++ .../shifts/shift_left_larger_type.sol | 2 +- .../smtCheckerTests/operators/unary_add.sol | 2 +- .../operators/unary_add_array.sol | 2 +- .../operators/unary_add_mapping.sol | 2 +- .../operators/unary_operators_tuple_3.sol | 2 +- .../smtCheckerTests/operators/unary_sub.sol | 2 +- .../operators/unary_sub_array.sol | 2 +- .../operators/unary_sub_mapping.sol | 2 +- .../smtCheckerTests/overflow/overflow_mul.sol | 4 +-- .../overflow/overflow_mul_cex_with_array.sol | 2 +- .../overflow/overflow_mul_signed.sol | 4 +-- .../smtCheckerTests/overflow/overflow_sum.sol | 6 ++--- .../overflow/overflow_sum_signed.sol | 6 ++--- .../smtCheckerTests/overflow/safe_add_1.sol | 2 +- .../smtCheckerTests/overflow/safe_add_2.sol | 2 +- .../overflow/signed_div_overflow.sol | 2 +- .../overflow/signed_guard_sub_overflow.sol | 2 +- .../overflow/signed_guard_sum_overflow.sol | 6 ++--- .../overflow/signed_mod_overflow.sol | 2 +- .../overflow/signed_mul_overflow.sol | 4 +-- .../overflow/signed_sub_overflow.sol | 4 +-- .../overflow/signed_sum_overflow.sol | 4 +-- .../overflow/simple_overflow.sol | 2 +- .../overflow/underflow_sub.sol | 4 +-- .../overflow/underflow_sub_signed.sol | 6 ++--- .../overflow/unsigned_div_overflow.sol | 2 +- .../overflow/unsigned_guard_sum_overflow.sol | 2 +- .../overflow/unsigned_mod_overflow.sol | 2 +- .../overflow/unsigned_mul_overflow.sol | 2 +- .../overflow/unsigned_sub_overflow.sol | 2 +- .../overflow/unsigned_sum_overflow.sol | 2 +- .../abi_decode_memory_v2_value_types.sol | 2 +- .../special/abi_decode_simple.sol | 4 +-- .../smtCheckerTests/special/blockhash.sol | 4 +-- .../smtCheckerTests/special/difficulty.sol | 2 +- .../smtCheckerTests/special/ether_units.sol | 6 ++--- .../smtCheckerTests/special/event.sol | 2 +- .../smtCheckerTests/special/gasleft.sol | 4 +-- .../smtCheckerTests/special/log.sol | 2 +- .../smtCheckerTests/special/many.sol | 18 ++++++------- .../smtCheckerTests/special/msg_data.sol | 4 +-- .../special/msg_sender_fail_1.sol | 2 +- .../smtCheckerTests/special/msg_sig.sol | 6 ++--- .../smtCheckerTests/special/this.sol | 2 +- .../smtCheckerTests/special/time_units.sol | 10 ++++---- .../special/tx_data_gasleft_changes.sol | 4 +-- .../special/tx_data_immutable_fail.sol | 2 ++ .../typecast/address_literal.sol | 2 +- .../typecast/cast_larger_2_fail.sol | 2 +- .../typecast/cast_larger_3.sol | 2 +- ...unction_type_to_function_type_external.sol | 2 +- ...unction_type_to_function_type_internal.sol | 4 +-- .../implicit_cast_string_literal_byte.sol | 2 +- .../string_literal_to_dynamic_bytes.sol | 2 +- ...g_literal_to_fixed_bytes_function_call.sol | 4 +-- ...string_literal_to_fixed_bytes_modifier.sol | 2 +- .../string_literal_to_fixed_bytes_return.sol | 2 +- ...ng_literal_to_fixed_bytes_return_multi.sol | 2 +- .../string_literal_to_fixed_bytes_upcast.sol | 2 +- .../smtCheckerTests/types/address_balance.sol | 4 +-- .../smtCheckerTests/types/address_call.sol | 8 +++--- .../types/address_delegatecall.sol | 8 +++--- .../types/address_staticcall.sol | 2 +- .../types/address_transfer.sol | 2 +- .../types/address_transfer_2.sol | 2 +- .../types/address_transfer_insufficient.sol | 2 +- .../types/array_aliasing_storage_2.sol | 2 +- .../types/array_aliasing_storage_3.sol | 2 ++ .../types/array_aliasing_storage_4.sol | 4 +-- .../types/array_aliasing_storage_5.sol | 2 +- .../smtCheckerTests/types/array_branch_1d.sol | 2 +- .../smtCheckerTests/types/array_branch_2d.sol | 2 +- .../smtCheckerTests/types/array_branch_3d.sol | 2 +- .../types/array_dynamic_1_fail.sol | 2 +- .../types/array_dynamic_2_fail.sol | 2 +- .../types/array_dynamic_3_fail.sol | 2 +- .../types/array_dynamic_parameter_1_fail.sol | 2 +- .../smtCheckerTests/types/array_literal_2.sol | 2 +- .../smtCheckerTests/types/array_literal_3.sol | 2 +- .../smtCheckerTests/types/array_literal_5.sol | 2 +- .../smtCheckerTests/types/array_literal_6.sol | 4 +-- .../smtCheckerTests/types/array_literal_7.sol | 4 +-- .../types/array_mapping_aliasing_1.sol | 2 +- .../types/array_mapping_aliasing_2.sol | 2 ++ .../types/array_static_1_fail.sol | 2 +- .../types/array_static_2_fail.sol | 2 +- .../types/array_static_3_fail.sol | 2 +- .../types/array_static_aliasing_storage_5.sol | 2 ++ .../types/array_static_mapping_aliasing_1.sol | 2 +- .../types/array_static_mapping_aliasing_2.sol | 2 +- .../smtCheckerTests/types/bool_simple_1.sol | 2 +- .../smtCheckerTests/types/bool_simple_2.sol | 2 +- .../smtCheckerTests/types/bytes_2_fail.sol | 2 +- .../smtCheckerTests/types/contract.sol | 2 +- .../smtCheckerTests/types/contract_2.sol | 2 +- .../types/contract_address_conversion.sol | 2 +- .../types/enum_explicit_values_2.sol | 2 +- .../types/enum_in_library_2.sol | 2 +- .../smtCheckerTests/types/enum_storage_eq.sol | 2 +- .../smtCheckerTests/types/fixed_bytes_1.sol | 4 +-- .../smtCheckerTests/types/fixed_bytes_2.sol | 2 +- .../types/fixed_bytes_access_2.sol | 2 +- .../types/fixed_bytes_access_4.sol | 2 +- .../types/fixed_bytes_access_5.sol | 6 ++--- .../types/fixed_bytes_access_7.sol | 6 ++--- .../smtCheckerTests/types/mapping_1_fail.sol | 2 +- .../smtCheckerTests/types/mapping_2.sol | 2 +- .../types/mapping_2d_1_fail.sol | 2 +- .../types/mapping_3d_1_fail.sol | 2 +- .../smtCheckerTests/types/mapping_5.sol | 2 +- .../types/mapping_aliasing_1.sol | 2 +- .../types/mapping_aliasing_2.sol | 4 +-- .../types/mapping_as_local_var_1.sol | 4 +-- .../types/mapping_as_parameter_1.sol | 2 +- .../types/mapping_equal_keys_2.sol | 2 +- .../types/rational_large_1.sol | 2 +- .../types/storage_value_vars_1.sol | 2 +- .../types/storage_value_vars_2.sol | 2 +- .../types/storage_value_vars_4.sol | 2 +- .../smtCheckerTests/types/string_1.sol | 2 +- .../types/string_literal_assignment_1.sol | 2 +- .../types/string_literal_assignment_2.sol | 2 +- .../types/string_literal_assignment_3.sol | 2 +- .../types/string_literal_assignment_4.sol | 2 +- .../types/string_literal_assignment_5.sol | 2 +- .../types/string_literal_comparison_1.sol | 2 +- .../types/string_literal_comparison_2.sol | 4 +-- .../types/struct/struct_aliasing_memory.sol | 2 ++ .../types/struct/struct_aliasing_storage.sol | 2 +- ...uct_array_struct_array_memory_unsafe_1.sol | 10 ++++---- ...ct_array_struct_array_storage_unsafe_1.sol | 10 ++++---- .../struct/struct_constructor_named_args.sol | 2 +- .../struct_constructor_named_args_2.sol | 2 +- .../types/struct/struct_delete_memory.sol | 2 ++ .../types/struct/struct_delete_storage.sol | 2 ++ .../struct/struct_nested_constructor.sol | 2 +- .../types/struct/struct_recursive_1.sol | 4 +-- .../types/struct/struct_recursive_2.sol | 6 ++--- .../types/struct/struct_recursive_3.sol | 10 ++++---- .../types/struct/struct_recursive_4.sol | 6 ++--- .../types/struct/struct_recursive_5.sol | 2 +- .../types/struct/struct_recursive_6.sol | 8 +++--- .../struct/struct_recursive_indirect_1.sol | 4 +-- .../struct/struct_recursive_indirect_2.sol | 2 +- .../types/struct/struct_return.sol | 2 +- .../types/struct/struct_state_var.sol | 2 +- .../struct/struct_state_var_array_pop_1.sol | 4 +-- .../struct/struct_state_var_array_pop_2.sol | 4 +-- .../types/struct/struct_unary_add.sol | 2 +- .../types/struct/struct_unary_sub.sol | 2 +- .../types/tuple_array_pop_1.sol | 2 +- .../types/tuple_array_pop_2.sol | 2 +- .../types/tuple_assignment_array_empty.sol | 2 +- .../types/tuple_assignment_compound.sol | 2 +- .../types/tuple_assignment_empty.sol | 2 +- .../tuple_declarations_function_empty.sol | 2 +- .../tuple_different_count_assignment_1.sol | 2 +- .../tuple_different_count_assignment_2.sol | 2 +- .../smtCheckerTests/types/tuple_function.sol | 4 +-- .../types/tuple_function_2.sol | 2 +- .../types/tuple_function_3.sol | 4 +-- .../types/type_interfaceid.sol | 4 +-- .../types/type_meta_unsupported.sol | 6 ++--- .../smtCheckerTests/types/type_minmax.sol | 2 +- .../verification_target/simple_assert.sol | 2 +- 446 files changed, 753 insertions(+), 664 deletions(-) diff --git a/libsolidity/formal/CHC.cpp b/libsolidity/formal/CHC.cpp index ab15c4bc0..cf96384bf 100644 --- a/libsolidity/formal/CHC.cpp +++ b/libsolidity/formal/CHC.cpp @@ -1387,8 +1387,7 @@ void CHC::checkAndReportTarget( m_errorReporter.warning( _errorReporterId, location, - "CHC: " + _satMsg, - SecondarySourceLocation().append("Counterexample:\n" + *cex, SourceLocation{}) + "CHC: " + _satMsg + "\nCounterexample:\n" + *cex ); else m_errorReporter.warning( diff --git a/test/cmdlineTests/model_checker_engine_all/err b/test/cmdlineTests/model_checker_engine_all/err index f3f9a6586..0707adfd8 100644 --- a/test/cmdlineTests/model_checker_engine_all/err +++ b/test/cmdlineTests/model_checker_engine_all/err @@ -1,9 +1,5 @@ Warning: CHC: Assertion violation happens here. - --> model_checker_engine_all/input.sol:6:3: - | -6 | assert(x > 0); - | ^^^^^^^^^^^^^ -Note: Counterexample: +Counterexample: x = 0 @@ -11,3 +7,7 @@ x = 0 Transaction trace: constructor() f(0) + --> model_checker_engine_all/input.sol:6:3: + | +6 | assert(x > 0); + | ^^^^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_engine_chc/err b/test/cmdlineTests/model_checker_engine_chc/err index e3edf380f..69abcd82c 100644 --- a/test/cmdlineTests/model_checker_engine_chc/err +++ b/test/cmdlineTests/model_checker_engine_chc/err @@ -1,9 +1,5 @@ Warning: CHC: Assertion violation happens here. - --> model_checker_engine_chc/input.sol:6:3: - | -6 | assert(x > 0); - | ^^^^^^^^^^^^^ -Note: Counterexample: +Counterexample: x = 0 @@ -11,3 +7,7 @@ x = 0 Transaction trace: constructor() f(0) + --> model_checker_engine_chc/input.sol:6:3: + | +6 | assert(x > 0); + | ^^^^^^^^^^^^^ diff --git a/test/cmdlineTests/standard_model_checker_engine_all/output.json b/test/cmdlineTests/standard_model_checker_engine_all/output.json index c8e59e0d8..2f50c334d 100644 --- a/test/cmdlineTests/standard_model_checker_engine_all/output.json +++ b/test/cmdlineTests/standard_model_checker_engine_all/output.json @@ -1,6 +1,4 @@ {"errors":[{"component":"general","errorCode":"6328","formattedMessage":"A:4:47: Warning: CHC: Assertion violation happens here. -contract C { function f(uint x) public pure { assert(x > 0); } } - ^-----------^ Counterexample: x = 0 @@ -9,11 +7,14 @@ x = 0 Transaction trace: constructor() f(0) -","message":"CHC: Assertion violation happens here.","secondarySourceLocations":[{"message":"Counterexample: +contract C { function f(uint x) public pure { assert(x > 0); } } + ^-----------^ +","message":"CHC: Assertion violation happens here. +Counterexample: x = 0 Transaction trace: constructor() -f(0)"}],"severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}} +f(0)","severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_engine_chc/output.json b/test/cmdlineTests/standard_model_checker_engine_chc/output.json index c8e59e0d8..2f50c334d 100644 --- a/test/cmdlineTests/standard_model_checker_engine_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_engine_chc/output.json @@ -1,6 +1,4 @@ {"errors":[{"component":"general","errorCode":"6328","formattedMessage":"A:4:47: Warning: CHC: Assertion violation happens here. -contract C { function f(uint x) public pure { assert(x > 0); } } - ^-----------^ Counterexample: x = 0 @@ -9,11 +7,14 @@ x = 0 Transaction trace: constructor() f(0) -","message":"CHC: Assertion violation happens here.","secondarySourceLocations":[{"message":"Counterexample: +contract C { function f(uint x) public pure { assert(x > 0); } } + ^-----------^ +","message":"CHC: Assertion violation happens here. +Counterexample: x = 0 Transaction trace: constructor() -f(0)"}],"severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}} +f(0)","severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/libsolidity/SMTCheckerTest.cpp b/test/libsolidity/SMTCheckerTest.cpp index 08efb44c6..bdc408b9f 100644 --- a/test/libsolidity/SMTCheckerTest.cpp +++ b/test/libsolidity/SMTCheckerTest.cpp @@ -53,6 +53,14 @@ SMTCheckerTest::SMTCheckerTest(string const& _filename): SyntaxTest(_filename, E if (m_enabledSolvers.none() || m_modelCheckerSettings.engine.none()) m_shouldRun = false; + + auto const& ignoreCex = m_reader.stringSetting("SMTIgnoreCex", "no"); + if (ignoreCex == "no") + m_ignoreCex = false; + else if (ignoreCex == "yes") + m_ignoreCex = true; + else + BOOST_THROW_EXCEPTION(runtime_error("Invalid SMT counterexample choice.")); } TestCase::TestResult SMTCheckerTest::run(ostream& _stream, string const& _linePrefix, bool _formatted) @@ -65,3 +73,20 @@ TestCase::TestResult SMTCheckerTest::run(ostream& _stream, string const& _linePr return conclude(_stream, _linePrefix, _formatted); } + +void SMTCheckerTest::filterObtainedErrors() +{ + SyntaxTest::filterObtainedErrors(); + + static auto removeCex = [](vector& errors) { + for (auto& e: errors) + if ( + auto cexPos = e.message.find("\\nCounterexample"); + cexPos != string::npos + ) + e.message = e.message.substr(0, cexPos); + }; + + if (m_ignoreCex) + removeCex(m_errorList); +} diff --git a/test/libsolidity/SMTCheckerTest.h b/test/libsolidity/SMTCheckerTest.h index 45c8dff06..b65005e98 100644 --- a/test/libsolidity/SMTCheckerTest.h +++ b/test/libsolidity/SMTCheckerTest.h @@ -40,6 +40,8 @@ public: TestResult run(std::ostream& _stream, std::string const& _linePrefix = "", bool _formatted = false) override; + void filterObtainedErrors() override; + protected: /// This contains engine and timeout. /// The engine can be set via option SMTEngine in the test. @@ -51,6 +53,8 @@ protected: /// The possible options are `all`, `z3`, `cvc4`, `none`, /// where if none is given the default used option is `all`. smtutil::SMTSolverChoice m_enabledSolvers; + + bool m_ignoreCex = false; }; } diff --git a/test/libsolidity/SyntaxTest.h b/test/libsolidity/SyntaxTest.h index b71691bea..0df95f7a6 100644 --- a/test/libsolidity/SyntaxTest.h +++ b/test/libsolidity/SyntaxTest.h @@ -52,7 +52,7 @@ public: protected: void setupCompiler(); void parseAndAnalyze() override; - void filterObtainedErrors(); + virtual void filterObtainedErrors(); bool m_optimiseYul = true; bool m_parserErrorRecovery = false; 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 f0f5e7a64..0d5c23650 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_1.sol @@ -8,4 +8,4 @@ contract C { } } // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here. +// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() 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 b5af63dc3..e6d298861 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_2.sol @@ -8,4 +8,4 @@ contract C { } } // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here. +// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() 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 3e73eb4e2..a1b9717d7 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_3.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_3.sol @@ -8,5 +8,5 @@ contract C { } } // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here. -// Warning 2529: (93-100): CHC: Empty array "pop" happens here. +// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() +// Warning 2529: (93-100): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() 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 242942b23..d05081d5d 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_4.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_4.sol @@ -8,4 +8,4 @@ contract C { } } // ---- -// Warning 2529: (94-101): CHC: Empty array "pop" happens here. +// Warning 2529: (94-101): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() 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 ccd5aaf11..37c21e620 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_5.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_5.sol @@ -11,4 +11,4 @@ contract C { } } // ---- -// Warning 2529: (122-129): CHC: Empty array "pop" happens here. +// Warning 2529: (122-129): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() 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 28370af59..ccc5523d8 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_6.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_6.sol @@ -11,4 +11,4 @@ contract C { } } // ---- -// Warning 2529: (127-134): CHC: Empty array "pop" happens here. +// Warning 2529: (127-134): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() 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 ec96a274d..bc44acc10 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_8.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_8.sol @@ -13,4 +13,4 @@ contract C { } } // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here. +// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() diff --git a/test/libsolidity/smtCheckerTests/array_members/length_basic.sol b/test/libsolidity/smtCheckerTests/array_members/length_basic.sol index 3426a0c6b..99f01621d 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_basic.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_basic.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (153-176): CHC: Assertion violation happens here. +// Warning 6328: (153-176): CHC: Assertion violation happens here.\nCounterexample:\narr = []\n\n\n\nTransaction trace:\nconstructor()\nState: arr = []\nf() 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 2472aceb6..1c32c48af 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 @@ -14,6 +14,6 @@ contract C { } } // ---- -// Warning 6328: (198-224): CHC: Assertion violation happens here. -// Warning 6328: (228-254): CHC: Assertion violation happens here. -// Warning 6328: (258-281): CHC: Assertion violation happens here. +// Warning 6328: (198-224): CHC: Assertion violation happens here.\nCounterexample:\narr = [], arr2 = []\n\n\n\nTransaction trace:\nconstructor()\nState: arr = [], arr2 = []\nf() +// Warning 6328: (228-254): CHC: Assertion violation happens here.\nCounterexample:\narr = [], arr2 = []\n\n\n\nTransaction trace:\nconstructor()\nState: arr = [], arr2 = []\nf() +// Warning 6328: (258-281): CHC: Assertion violation happens here.\nCounterexample:\narr = [], arr2 = []\n\n\n\nTransaction trace:\nconstructor()\nState: arr = [], arr2 = []\nf() 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 91418c910..dbab6795f 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 @@ -16,7 +16,7 @@ contract C { } } // ---- -// Warning 6328: (222-248): CHC: Assertion violation happens here. -// Warning 6328: (252-278): CHC: Assertion violation happens here. -// Warning 6328: (282-305): CHC: Assertion violation happens here. -// Warning 6328: (309-335): CHC: Assertion violation happens here. +// Warning 6328: (222-248): CHC: Assertion violation happens here.\nCounterexample:\narr = [], arr2 = []\n\n\n\nTransaction trace:\nconstructor()\nState: arr = [], arr2 = []\nf() +// Warning 6328: (252-278): CHC: Assertion violation happens here.\nCounterexample:\narr = [], arr2 = []\n\n\n\nTransaction trace:\nconstructor()\nState: arr = [], arr2 = []\nf() +// Warning 6328: (282-305): CHC: Assertion violation happens here.\nCounterexample:\narr = [], arr2 = []\n\n\n\nTransaction trace:\nconstructor()\nState: arr = [], arr2 = []\nf() +// Warning 6328: (309-335): CHC: Assertion violation happens here.\nCounterexample:\narr = [], arr2 = []\n\n\n\nTransaction trace:\nconstructor()\nState: arr = [], arr2 = []\nf() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol index 6aebb6104..4da5ef8e8 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol @@ -7,4 +7,4 @@ contract C { } } // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here. +// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol index da299e5e8..160da0d09 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 2529: (111-121): CHC: Empty array "pop" happens here. +// Warning 2529: (111-121): CHC: Empty array "pop" happens here.\nCounterexample:\na = [[0]]\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol index 055167bd8..bb8f14f0c 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol @@ -7,4 +7,4 @@ contract C { } } // ---- -// Warning 2529: (76-83): CHC: Empty array "pop" happens here. +// Warning 2529: (76-83): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol index a12e8098f..3151df0dc 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol @@ -11,4 +11,4 @@ contract C { } } // ---- -// Warning 2529: (150-157): CHC: Empty array "pop" happens here. +// Warning 2529: (150-157): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\nl = 0\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf(0) 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 9d5559e78..8e54d1166 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 @@ -9,6 +9,8 @@ contract C { assert(a[0][a[0].length - 1] == y); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 3944: (162-177): CHC: Underflow (resulting value less than 0) happens here. // Warning 6328: (150-184): CHC: Assertion violation happens here. 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 bf2cab345..752a83d55 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_1d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_1d.sol @@ -18,4 +18,4 @@ contract C { } // ---- -// Warning 6328: (232-262): CHC: Assertion violation happens here. +// Warning 6328: (232-262): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\n\n\n\nTransaction trace:\nconstructor()\nState: b = []\ng() 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 5eebd74a1..69ec4f516 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d.sol @@ -21,4 +21,4 @@ contract C { } } // ---- -// Warning 6328: (395-453): CHC: Assertion violation happens here. +// Warning 6328: (395-453): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\n\n\n\nTransaction trace:\nconstructor()\nState: c = []\ng() 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 cf7aebd4f..9ef18c2ac 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 @@ -13,4 +13,4 @@ contract C { } } // ---- -// Warning 6328: (237-263): CHC: Assertion violation happens here. +// Warning 6328: (237-263): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\n\n\n\nTransaction trace:\nconstructor()\nState: b = []\nf() 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 3cffe84b3..1596cfb0a 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 @@ -16,4 +16,4 @@ contract C { } } // ---- -// Warning 6328: (317-343): CHC: Assertion violation happens here. +// Warning 6328: (317-343): CHC: Assertion violation happens here.\nCounterexample:\nb = [[0], [0]]\n\n\n\nTransaction trace:\nconstructor()\nState: b = []\nf() 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 4ab8f23f6..a57ec7031 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 @@ -8,5 +8,5 @@ contract C { } } // ---- -// Warning 6328: (113-139): CHC: Assertion violation happens here. -// Warning 6328: (143-189): CHC: Assertion violation happens here. +// Warning 6328: (113-139): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\n\n\nTransaction trace:\nconstructor()\nState: array2d = []\nl() +// Warning 6328: (143-189): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\n\n\nTransaction trace:\nconstructor()\nState: array2d = []\nl() 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 48697f548..f15b25e0f 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 @@ -10,6 +10,6 @@ contract C { } } // ---- -// Warning 6328: (122-148): CHC: Assertion violation happens here. -// Warning 6328: (202-218): CHC: Assertion violation happens here. -// Warning 6328: (222-278): CHC: Assertion violation happens here. +// Warning 6328: (122-148): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\n\n\n\nTransaction trace:\nconstructor()\nState: array2d = []\nl() +// Warning 6328: (202-218): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\n\n\n\nTransaction trace:\nconstructor()\nState: array2d = []\nl() +// Warning 6328: (222-278): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\n\n\n\nTransaction trace:\nconstructor()\nState: array2d = []\nl() 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 c402df250..3e984a624 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 @@ -11,6 +11,8 @@ contract C { assert(a[0][a[0].length - 1] == 8); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 3944: (217-232): CHC: Underflow (resulting value less than 0) happens here. // Warning 6328: (205-239): 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 9849ab325..0b2955154 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 @@ -12,4 +12,4 @@ contract C { } } // ---- -// Warning 6328: (167-188): CHC: Assertion violation happens here. +// Warning 6328: (167-188): CHC: Assertion violation happens here.\nCounterexample:\na = [[17, 12, 12, 12, 12], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15]]\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() 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 97b225b28..5fff9d312 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 @@ -19,5 +19,5 @@ contract C { } } // ---- -// Warning 6328: (193-217): CHC: Assertion violation happens here. -// Warning 6328: (309-333): CHC: Assertion violation happens here. +// Warning 6328: (193-217): CHC: Assertion violation happens here.\nCounterexample:\na = [[12, 12, 12, 12, 12, 12, 12, 6, 12, 8, 12, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15], [15, 15]], c = [], d = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = [], c = [], d = []\nf() +// Warning 6328: (309-333): CHC: Assertion violation happens here.\nCounterexample:\na = [[24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 24, 24, 24, 24, 24, 24, 16, 24, 24, 19, 24, 21, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27], [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27]], c = [[[3, 15, 15, 15, 15, 15], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36], [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]], [[42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42], [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]]], d = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = [], c = [], d = []\nf() 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 7ca3db4e6..6dd053028 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_unsafe.sol @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (111-144): CHC: Assertion violation happens here. +// Warning 6328: (111-144): CHC: Assertion violation happens here.\nCounterexample:\na = [[0]]\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol index 0e9f80342..d99bc7ce2 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol @@ -8,4 +8,4 @@ contract C { } } // ---- -// Warning 6328: (94-124): CHC: Assertion violation happens here. +// Warning 6328: (94-124): CHC: Assertion violation happens here.\nCounterexample:\na = [0]\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() 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 fe4daf407..43390ad3b 100644 --- a/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1.sol @@ -15,4 +15,4 @@ contract C { } } // ---- -// Warning 6328: (184-213): CHC: Assertion violation happens here. +// Warning 6328: (184-213): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [], []]\n\n\n\nTransaction trace:\nconstructor()\nState: array2d = []\nl() diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol b/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol index 90dc1e957..3f8296d46 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (199-234): CHC: Assertion violation happens here. +// Warning 6328: (199-234): CHC: Assertion violation happens here.\nCounterexample:\n\na = 2437\n\n\nTransaction trace:\nconstructor()\nf(2437) diff --git a/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol b/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol index e7ca8a8af..280632f1f 100644 --- a/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol +++ b/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol @@ -53,4 +53,4 @@ contract MyConc{ // ---- // 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 4984: (985-1002): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nA = 1, should_be_constant = 0, should_be_constant_2 = 2, not_constant = 0, not_constant_2 = 115792089237316195423570985008687907853269984665640564039457584007913129639926, not_constant_3 = 0\n\nTransaction trace:\nconstructor() 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 151ea9216..252686135 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_1.sol @@ -21,4 +21,4 @@ contract C { } } // ---- -// Warning 6328: (359-373): CHC: Assertion violation happens here. +// Warning 6328: (359-373): CHC: Assertion violation happens here.\nCounterexample:\nx = 7\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() 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 e1c66050d..61763bd76 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_2.sol @@ -21,4 +21,4 @@ contract C { } } // ---- -// Warning 6328: (365-379): CHC: Assertion violation happens here. +// Warning 6328: (365-379): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() 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 816ffc600..57e9af531 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_3.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_3.sol @@ -21,4 +21,4 @@ contract C { } } // ---- -// Warning 6328: (358-372): CHC: Assertion violation happens here. +// Warning 6328: (358-372): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() 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 2817f16d2..6fd732d88 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_4.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_4.sol @@ -21,4 +21,4 @@ contract C { } } // ---- -// Warning 6328: (365-379): CHC: Assertion violation happens here. +// Warning 6328: (365-379): CHC: Assertion violation happens here.\nCounterexample:\nx = 7\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() 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 582a73d9a..03d7ceab4 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 @@ -23,4 +23,4 @@ contract C { } } // ---- -// Warning 6328: (103-117): CHC: Assertion violation happens here. +// Warning 6328: (103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ntest() 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 42f214c79..aaa57aa46 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 @@ -42,6 +42,6 @@ contract C { } } // ---- -// Warning 6328: (384-398): CHC: Assertion violation happens here. -// Warning 6328: (635-652): CHC: Assertion violation happens here. -// Warning 6328: (781-795): CHC: Assertion violation happens here. +// Warning 6328: (384-398): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ntest() +// Warning 6328: (635-652): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nset(1)\nState: x = 1\ntest() +// Warning 6328: (781-795): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nset(10)\nState: x = 10\ntest() 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 a59bf874a..891dc8665 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 @@ -35,7 +35,7 @@ contract C is B { } } // ---- -// Warning 6328: (330-344): CHC: Assertion violation happens here. -// Warning 6328: (422-445): CHC: Assertion violation happens here. -// Warning 6328: (522-546): CHC: Assertion violation happens here. -// Warning 6328: (566-579): CHC: Assertion violation happens here. +// Warning 6328: (330-344): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\n\nTransaction trace:\nconstructor(1) +// Warning 6328: (422-445): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\n\nTransaction trace:\nconstructor(1) +// Warning 6328: (522-546): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\n\nTransaction trace:\nconstructor(0) +// Warning 6328: (566-579): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\n\nTransaction trace:\nconstructor(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 43f1e5fde..f82b7de23 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 @@ -25,4 +25,4 @@ contract D is C { } } // ---- -// Warning 6328: (319-333): CHC: Assertion violation happens here. +// Warning 6328: (319-333): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\na = 0\n\n\nTransaction trace:\nconstructor(0) 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 dc649b89d..b93bb6b2f 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 @@ -60,11 +60,11 @@ contract D4 is B, C { } } // ---- -// Warning 6328: (370-384): CHC: Assertion violation happens here. -// Warning 6328: (403-418): CHC: Assertion violation happens here. -// Warning 6328: (493-507): CHC: Assertion violation happens here. -// Warning 6328: (526-540): CHC: Assertion violation happens here. -// Warning 6328: (703-717): CHC: Assertion violation happens here. -// Warning 6328: (769-784): CHC: Assertion violation happens here. -// Warning 6328: (860-874): CHC: Assertion violation happens here. -// Warning 6328: (893-907): CHC: Assertion violation happens here. +// Warning 6328: (370-384): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 1, x = 0\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (403-418): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 1, x = 0\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (493-507): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 1, x = (- 1)\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (526-540): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 1, x = (- 1)\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (703-717): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 2, x = 1\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (769-784): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 2, x = 1\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (860-874): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 2, x = (- 1)\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (893-907): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 2, x = (- 1)\n\n\n\nTransaction trace:\nconstructor() 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 6192e102a..2a014ecc7 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructors.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructors.sol @@ -26,6 +26,6 @@ contract C is B { } // ---- // Warning 5740: (152-157): Unreachable code. -// Warning 6328: (310-324): CHC: Assertion violation happens here. -// Warning 6328: (343-357): CHC: Assertion violation happens here. -// Warning 6328: (376-390): CHC: Assertion violation happens here. +// Warning 6328: (310-324): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 1\n\n\nTransaction trace:\nconstructor(1) +// Warning 6328: (343-357): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 1\n\n\nTransaction trace:\nconstructor(1) +// Warning 6328: (376-390): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\na = 0\n\n\nTransaction trace:\nconstructor(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 6bfb651f8..3f7c2dd1b 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 @@ -22,5 +22,5 @@ contract C { } } // ---- -// Warning 6328: (147-174): CHC: Assertion violation happens here. +// Warning 6328: (147-174): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\nb = 2\n\n\nTransaction trace:\nconstructor()\ntest(0, 2) // Warning 6838: (332-348): BMC: Condition is always false. 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 e3f56b43c..69eb57c8d 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 @@ -14,4 +14,4 @@ contract C { } } // ---- -// Warning 6328: (89-114): CHC: Assertion violation happens here. +// Warning 6328: (89-114): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\n\nTransaction trace:\nconstructor()\ntest(0) 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 5c17d58c6..2333c8b47 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 @@ -25,4 +25,4 @@ contract C { } } // ---- -// Warning 6328: (205-222): CHC: Assertion violation happens here. +// Warning 6328: (205-222): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\n\n\n\nTransaction trace:\nconstructor()\nState: a = [0, 0]\ncheck() 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 11db7afbb..52d1b3ad7 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 @@ -19,4 +19,4 @@ contract C { } } // ---- -// Warning 6328: (132-146): CHC: Assertion violation happens here. +// Warning 6328: (132-146): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ncheck() 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 f92dac6b7..37e3d1d95 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 @@ -22,4 +22,4 @@ contract C { } } // ---- -// Warning 6328: (156-172): CHC: Assertion violation happens here. +// Warning 6328: (156-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\n\n\nTransaction trace:\nconstructor()\nState: s = {x: 0}\ncheck() 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 2631383b2..4ec0f8d7c 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 @@ -22,4 +22,4 @@ contract C { } } // ---- -// Warning 6328: (156-172): CHC: Assertion violation happens here. +// Warning 6328: (156-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\n\n\nTransaction trace:\nconstructor()\nState: s = {x: 0}\ncheck() 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 2474f9bb8..33c63368e 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 @@ -23,5 +23,5 @@ contract C { } } // ---- -// Warning 6328: (160-174): CHC: Assertion violation happens here. -// Warning 6328: (194-208): CHC: Assertion violation happens here. +// Warning 6328: (160-174): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\ncheck() +// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\ncheck() diff --git a/test/libsolidity/smtCheckerTests/control_flow/require.sol b/test/libsolidity/smtCheckerTests/control_flow/require.sol index 55ee33b33..7672a7418 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/require.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/require.sol @@ -31,4 +31,4 @@ contract C { } // ---- // 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. +// Warning 6328: (448-465): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\n\n\nTransaction trace:\nconstructor()\nState: x = false\ni() diff --git a/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol index c76b67dae..21c655980 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol @@ -19,8 +19,8 @@ contract C { } } // ---- -// 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: (244-270): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (274-300): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (304-330): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (334-362): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // Warning 2661: (158-161): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol index d0a3aee4c..8ec948345 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol @@ -27,6 +27,8 @@ contract C { assert(c != 0xffffffff); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (303-329): CHC: Assertion violation happens here. // Warning 6328: (333-350): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/control_flow/revert.sol b/test/libsolidity/smtCheckerTests/control_flow/revert.sol index 18650e5ff..828c9eae0 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/revert.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/revert.sol @@ -33,4 +33,4 @@ contract C { // 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. +// Warning 6328: (427-444): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\n\n\nTransaction trace:\nconstructor()\nState: x = false\ni() diff --git a/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol b/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol index 5c4b74e13..1aa461d58 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol @@ -14,5 +14,5 @@ contract C { } } // ---- -// Warning 6328: (183-197): CHC: Assertion violation happens here. +// Warning 6328: (183-197): CHC: Assertion violation happens here.\nCounterexample:\n\nb = false\na = 0\n\n\nTransaction trace:\nconstructor()\nf(false, 0) // Warning 6838: (155-156): BMC: Condition is always false. 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 d4aef2c83..922e676f7 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_fail.sol @@ -15,4 +15,4 @@ contract c { } } // ---- -// Warning 6328: (227-236): CHC: Assertion violation happens here. +// Warning 6328: (227-236): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n = false\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() 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 14023d2c7..f82d2157c 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 @@ -17,5 +17,5 @@ contract c { } } // ---- -// Warning 6328: (202-218): CHC: Assertion violation happens here. -// Warning 6328: (242-252): CHC: Assertion violation happens here. +// Warning 6328: (202-218): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n\n = false\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() +// Warning 6328: (242-252): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n\n = false\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() 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 81cb5c820..6a9c7c48b 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 @@ -15,4 +15,4 @@ contract c { } } // ---- -// Warning 6328: (225-235): CHC: Assertion violation happens here. +// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\n = false\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() 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 07bee8ab7..07127b976 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_fail.sol @@ -15,4 +15,4 @@ contract c { } } // ---- -// Warning 6328: (225-235): CHC: Assertion violation happens here. +// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n = false\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() 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 ead105285..ba1536a5c 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 @@ -24,4 +24,4 @@ contract c { } } // ---- -// Warning 6328: (360-370): CHC: Assertion violation happens here. +// Warning 6328: (360-370): CHC: Assertion violation happens here.\nCounterexample:\nx = 102\na = false\n = false\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(false) 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 e60c94d86..bddbd8e00 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 @@ -15,4 +15,4 @@ contract c { } } // ---- -// Warning 6328: (225-235): CHC: Assertion violation happens here. +// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\n = false\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() 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 70c8eb1f6..c297471db 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 @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (159-173): CHC: Assertion violation happens here. +// Warning 6328: (159-173): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\n\n\nTransaction trace:\nconstructor()\nf(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 dc051dad3..1809fe1c0 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 @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (159-173): CHC: Assertion violation happens here. +// Warning 6328: (159-173): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\n\n\nTransaction trace:\nconstructor()\nf(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 0faff5b29..77a739f0a 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 @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (161-175): CHC: Assertion violation happens here. +// Warning 6328: (161-175): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\n\n\nTransaction trace:\nconstructor()\nf(11) diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol index 48b5b9151..6e2534e20 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol @@ -11,6 +11,6 @@ contract C { } } // ---- -// 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: (183-197): CHC: Assertion violation happens here.\nCounterexample:\n\ndata = [7, 7]\n\n\nTransaction trace:\nconstructor()\nf([7, 7]) +// Warning 6328: (201-215): CHC: Assertion violation happens here.\nCounterexample:\n\ndata = [9, 9]\n\n\nTransaction trace:\nconstructor()\nf([9, 9]) +// Warning 6328: (219-233): CHC: Assertion violation happens here.\nCounterexample:\n\ndata = [7, 7]\n\n\nTransaction trace:\nconstructor()\nf([7, 7]) diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol index 36e34cc4d..34ff43ccd 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol @@ -29,7 +29,7 @@ contract C { // Warning 6328: (305-321): CHC: Assertion violation might happen here. // Warning 1218: (448-464): CHC: Error trying to invoke SMT solver. // Warning 6328: (448-464): CHC: Assertion violation might happen here. -// Warning 6328: (673-689): CHC: Assertion violation happens here. +// Warning 6328: (673-689): CHC: Assertion violation happens here.\nCounterexample:\n\nh0 = 21238\nv0 = 173\nr0 = 30612\ns0 = 32285\nh1 = 7719\nv1 = 21\nr1 = 10450\ns1 = 8855\n\n\nTransaction trace:\nconstructor()\ne(21238, 173, 30612, 32285, 7719, 21, 10450, 8855) // Warning 4661: (168-184): BMC: Assertion violation happens here. // Warning 4661: (305-321): BMC: Assertion violation happens here. // Warning 4661: (448-464): 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 c36a15864..13537a23d 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_not_same.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_not_same.sol @@ -11,4 +11,4 @@ contract C { } } // ---- -// Warning 6328: (229-243): CHC: Assertion violation happens here. +// Warning 6328: (229-243): CHC: Assertion violation happens here.\nCounterexample:\n\ndata = [7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]\n\n\nTransaction trace:\nconstructor()\nf([7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]) diff --git a/test/libsolidity/smtCheckerTests/external_calls/external.sol b/test/libsolidity/smtCheckerTests/external_calls/external.sol index b34eeae96..2f0b82215 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external.sol @@ -17,4 +17,4 @@ contract C { } } // ---- -// Warning 6328: (200-214): CHC: Assertion violation happens here. +// Warning 6328: (200-214): CHC: Assertion violation happens here.\nCounterexample:\nx = 10, d = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, d = 0\nf()\nState: x = 1, d = 0\nf()\nState: x = 2, d = 0\ng() diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol index 45df8282e..be0a13abc 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol @@ -25,5 +25,7 @@ contract C { assert(sig_1 == sig_2); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (423-445): 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 5e6f18f27..0f488aa99 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 @@ -27,5 +27,7 @@ contract C { assert(sig_1 == sig_2); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (431-453): 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 eb0e64777..b006f4b6e 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 @@ -34,4 +34,4 @@ contract C { } } // ---- -// Warning 6328: (528-565): CHC: Assertion violation happens here. +// Warning 6328: (528-565): CHC: Assertion violation happens here.\nCounterexample:\nowner = 1, y = 0, z = 0, s = 0\n\n\n\nTransaction trace:\nconstructor()\nState: owner = 1, y = 0, z = 0, s = 0\ninv() 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 3c5da807c..e92f63559 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 @@ -29,4 +29,4 @@ contract C { } } // ---- -// Warning 6328: (299-313): CHC: Assertion violation happens here. +// Warning 6328: (299-313): CHC: Assertion violation happens here.\nCounterexample:\nowner = 0, y = 0, s = 0\n\n\n\nTransaction trace:\nconstructor()\nState: owner = 0, y = 0, s = 0\nf() 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 5f7e68b45..f07a45302 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 @@ -41,6 +41,8 @@ contract C { return y; } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (452-466): CHC: Assertion violation happens here. // Warning 6328: (470-496): 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 355fdbd8b..ea70f99c5 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 @@ -33,6 +33,8 @@ contract C { return y; } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (381-395): CHC: Assertion violation happens here. // Warning 6328: (399-425): 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 d1511e569..3d513a34e 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 @@ -38,5 +38,5 @@ contract C { } } // ---- -// Warning 6328: (435-461): CHC: Assertion violation happens here. -// Warning 6328: (594-631): CHC: Assertion violation happens here. +// Warning 6328: (435-461): CHC: Assertion violation happens here.\nCounterexample:\nowner = 1, y = 0, z = 0, s = 0\n\n\n\nTransaction trace:\nconstructor()\nState: owner = 0, y = 0, z = 0, s = 0\nf() +// Warning 6328: (594-631): CHC: Assertion violation happens here.\nCounterexample:\nowner = 1, y = 0, z = 0, s = 0\n\n\n\nTransaction trace:\nconstructor()\nState: owner = 1, y = 0, z = 0, s = 0\ninv() diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol b/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol index e0e66ad67..9f6ce11a8 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol @@ -18,5 +18,5 @@ contract C { } } // ---- -// Warning 6328: (189-203): CHC: Assertion violation happens here. +// Warning 6328: (189-203): CHC: Assertion violation happens here.\nCounterexample:\nx = 10, d = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, d = 0\ninc()\nState: x = 1, d = 0\nf() // Warning 2661: (146-149): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. 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 5f2132898..371ab10f8 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/mutex_f_no_guard.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/mutex_f_no_guard.sol @@ -27,4 +27,4 @@ contract C { } } // ---- -// Warning 6328: (307-321): CHC: Assertion violation happens here. +// Warning 6328: (307-321): CHC: Assertion violation happens here.\nCounterexample:\nx = 1, d = 0, lock = false\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, d = 0, lock = false\nf() diff --git a/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol b/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol index 2aa2ba857..c498790b6 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol @@ -26,8 +26,8 @@ contract C { // ---- // Warning 6031: (261-267): Internal error: Expression undefined for SMT solver. // Warning 7650: (284-296): Assertion checker does not yet support this expression. -// Warning 6328: (470-495): CHC: Assertion violation happens here. -// Warning 6328: (540-565): CHC: Assertion violation happens here. +// Warning 6328: (470-495): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ncheck() +// Warning 6328: (540-565): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ncheck() // Warning 6031: (261-267): Internal error: Expression undefined for SMT solver. // Warning 7650: (284-296): Assertion checker does not yet support this expression. // Warning 7650: (284-296): 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 a858a7714..db186029d 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/homer.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/homer.sol @@ -43,4 +43,4 @@ contract Homer is ERC165, Simpson { // ---- -// Warning 6328: (1373-1428): CHC: Assertion violation happens here. +// Warning 6328: (1373-1428): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ncheck() diff --git a/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol b/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol index beaf88465..d5f6d53d2 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (125-159): CHC: Assertion violation happens here. +// Warning 6328: (125-159): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol b/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol index 072113553..04861ed43 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol @@ -11,4 +11,4 @@ contract C { } } // ---- -// Warning 6328: (175-217): CHC: Assertion violation happens here. +// Warning 6328: (175-217): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol index 82250de96..56f6a727f 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol @@ -13,4 +13,4 @@ contract A is C { } } // ---- -// Warning 6328: (152-166): CHC: Assertion violation happens here. +// Warning 6328: (152-166): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\n\n\nTransaction trace:\nconstructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol index aeb1aefcf..7591daf7a 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol @@ -4,4 +4,4 @@ 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); } } // ---- -// Warning 6328: (243-257): CHC: Assertion violation happens here. +// Warning 6328: (243-257): CHC: Assertion violation happens here.\nCounterexample:\na = 3\n\n\n\nTransaction trace:\nconstructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol index d48e56b54..23889a3e7 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol @@ -18,6 +18,8 @@ contract A is B { assert(a == x + 1); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 4984: (244-249): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 6328: (232-250): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol index 824f79cec..2af4d4669 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol @@ -19,5 +19,5 @@ contract A is B { } // ---- // Warning 4984: (230-235): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (207-212): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (198-203): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (207-212): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\n\nTransaction trace:\nconstructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) +// Warning 4984: (198-203): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\n\nTransaction trace:\nconstructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol index ad8789a94..09cad9885 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol @@ -24,6 +24,8 @@ contract A is B2, B1 { assert(a == x + 1); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 4984: (200-205): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 4984: (314-319): CHC: Overflow (resulting value larger than 2**256 - 1) 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 b35d268e2..1b02db694 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_2.sol @@ -25,6 +25,6 @@ contract A is B2, B1 { } } // ---- -// Warning 4984: (200-205): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (200-205): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639934\n\n\nTransaction trace:\nconstructor(115792089237316195423570985008687907853269984665640564039457584007913129639934) // Warning 4984: (314-319): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (302-320): CHC: Assertion violation happens here. +// Warning 6328: (302-320): CHC: Assertion violation happens here.\nCounterexample:\na = 0\nx = 0\n\n\nTransaction trace:\nconstructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol index 8d8c1f837..c8412f96d 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol @@ -27,7 +27,7 @@ contract A is B2, B1 { } } // ---- -// Warning 4984: (160-165): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// 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 4984: (160-165): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nb1 = 0, a = 115792089237316195423570985008687907853269984665640564039457584007913129639935\nx = 1\n\n\nTransaction trace:\nconstructor(1) +// Warning 4984: (241-246): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nb2 = 0, a = 1\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\n\nTransaction trace:\nconstructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) +// Warning 4984: (225-230): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nb2 = 0, a = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639934\n\n\nTransaction trace:\nconstructor(115792089237316195423570985008687907853269984665640564039457584007913129639934) // Warning 6328: (334-350): 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 9c061859d..8ec4c327d 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle.sol @@ -20,4 +20,4 @@ contract A is B, B2 { } // ---- // 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. +// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\n\nTransaction trace:\nconstructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol index c930a45ec..f53857f6a 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol @@ -19,4 +19,4 @@ contract A is B { } // ---- // 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. +// Warning 6328: (224-238): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\n\nTransaction trace:\nconstructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol index caaf7fbca..f11aa2f8d 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol @@ -17,4 +17,4 @@ contract A is B { } // ---- // 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. +// Warning 6328: (172-186): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\n\nTransaction trace:\nconstructor(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 f208ec8d0..2a2429825 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 @@ -16,4 +16,4 @@ contract A is B { } // ---- // 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. +// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\n\nTransaction trace:\nconstructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol index 289cfbd76..36fd55d47 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol @@ -27,4 +27,4 @@ contract A is B { } // ---- // 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. +// Warning 6328: (284-298): CHC: Assertion violation happens here.\nCounterexample:\na = 4\nx = 0\n\n\nTransaction trace:\nconstructor(0) 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 00e581d07..5541b64ee 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 @@ -32,4 +32,4 @@ contract A is B { } // ---- // 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. +// Warning 6328: (357-372): CHC: Assertion violation happens here.\nCounterexample:\na = 4\nx = 0\n\n\nTransaction trace:\nconstructor(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 92606cbca..61a77682a 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 @@ -24,6 +24,8 @@ contract A is B { assert(a == 4); } } +// ==== +// 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. 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 bb2f93747..4cd07eeaf 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 @@ -23,4 +23,4 @@ contract B is C { contract A is B { } // ---- -// Warning 6328: (266-280): CHC: Assertion violation happens here. +// Warning 6328: (266-280): CHC: Assertion violation happens here.\nCounterexample:\na = 3\n\n\n\nTransaction trace:\nconstructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol index 451a1c2a0..92d861889 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol @@ -14,4 +14,4 @@ contract A is C { } } // ---- -// Warning 6328: (188-202): CHC: Assertion violation happens here. +// Warning 6328: (188-202): CHC: Assertion violation happens here.\nCounterexample:\na = 7\n\n\n\nTransaction trace:\nconstructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol index 4dc2d368d..052b5ce0c 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol @@ -13,5 +13,5 @@ contract A is C { } } // ---- -// Warning 6328: (134-148): CHC: Assertion violation happens here. -// Warning 6328: (152-168): CHC: Assertion violation happens here. +// Warning 6328: (134-148): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (152-168): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\n\n\nTransaction trace:\nconstructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol b/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol index 2cdf9eca7..0870ba496 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol @@ -12,5 +12,7 @@ contract C { assert(y == x); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (141-155): 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 4f539e8a6..8c6ee5517 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_state_value.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_state_value.sol @@ -13,4 +13,4 @@ contract C { } } // ---- -// Warning 6328: (145-159): CHC: Assertion violation happens here. +// Warning 6328: (145-159): CHC: Assertion violation happens here.\nCounterexample:\nx = 10\ny = 11\n\n\nTransaction trace:\nconstructor()\nState: x = 10\nf(11) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol index 752286497..100183012 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol @@ -15,4 +15,4 @@ contract C is B { } } // ---- -// Warning 6328: (165-179): CHC: Assertion violation happens here. +// Warning 6328: (165-179): CHC: Assertion violation happens here.\nCounterexample:\nx = 10\ny = 9\n\n\nTransaction trace:\nconstructor()\nState: x = 10\nf(9) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol index 121611dc3..faee3d0cf 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol @@ -13,5 +13,5 @@ contract C { } } // ---- -// 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: (162-176): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\ny = 0\n\n\nTransaction trace:\nconstructor(1, 0)\nState: x = 1\nf(0) +// Warning 4984: (115-120): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 5\na = 1\nb = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\n\nTransaction trace:\nconstructor(1, 115792089237316195423570985008687907853269984665640564039457584007913129639935) 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 233022784..2151b1288 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_call_state_var_init.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_call_state_var_init.sol @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (116-132): CHC: Assertion violation happens here. +// Warning 6328: (116-132): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nconstructor() 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 6b94ea0c3..f96145adf 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 @@ -16,4 +16,4 @@ contract C } } // ---- -// Warning 6328: (209-223): CHC: Assertion violation happens here. +// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(true) 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 21bfa18ad..772287456 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 @@ -24,5 +24,5 @@ contract C } // ---- -// Warning 6328: (209-223): CHC: Assertion violation happens here. -// Warning 6328: (321-335): CHC: Assertion violation happens here. +// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(true) +// Warning 6328: (321-335): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = false\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nh(false) diff --git a/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol index 1bc8ed85b..82b9171f9 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol @@ -18,4 +18,4 @@ contract C } } // ---- -// Warning 6328: (261-277): CHC: Assertion violation happens here. +// Warning 6328: (261-277): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\n\nTransaction trace:\nconstructor()\nf(1) diff --git a/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol b/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol index 7859523be..2b0eaa86e 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol @@ -16,4 +16,4 @@ contract D } } // ---- -// Warning 6328: (191-206): CHC: Assertion violation happens here. +// Warning 6328: (191-206): CHC: Assertion violation happens here.\nCounterexample:\nc = 0\n_y = 0\n\n\nTransaction trace:\nconstructor()\nState: c = 0\ng(0) diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol index 38a57e3b7..90fa3a452 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol @@ -12,4 +12,4 @@ contract C } // ---- -// Warning 6328: (161-174): CHC: Assertion violation happens here. +// Warning 6328: (161-174): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol index ddfa6c054..5ad96ae9c 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol @@ -16,4 +16,4 @@ contract C } // ---- -// Warning 6328: (229-242): CHC: Assertion violation happens here. +// Warning 6328: (229-242): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() 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 f1a9bda36..061e1c688 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple_fail.sol @@ -12,4 +12,4 @@ contract C } // ---- -// Warning 6328: (163-176): CHC: Assertion violation happens here. +// Warning 6328: (163-176): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() diff --git a/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol index 32c18abc6..5b8c74f68 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol @@ -17,4 +17,4 @@ contract C } } // ---- -// Warning 6328: (245-261): CHC: Assertion violation happens here. +// Warning 6328: (245-261): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\n\nTransaction trace:\nconstructor()\nf(1) 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 bb6181a75..a4df06cfd 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1_fail.sol @@ -13,4 +13,4 @@ contract C } // ---- -// Warning 6328: (144-157): CHC: Assertion violation happens here. +// Warning 6328: (144-157): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\n\n\nTransaction trace:\nconstructor()\nState: a = 0\ng() 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 517176612..0adc0a97d 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2_fail.sol @@ -14,4 +14,4 @@ contract C } // ---- -// Warning 6328: (152-165): CHC: Assertion violation happens here. +// Warning 6328: (152-165): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\n\n\nTransaction trace:\nconstructor()\nState: a = 0\ng() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/address.sol b/test/libsolidity/smtCheckerTests/functions/getters/address.sol index 88b435cb7..89b36e446 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/address.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/address.sol @@ -14,5 +14,5 @@ contract C { } } // ---- -// Warning 6328: (204-230): CHC: Assertion violation happens here. -// Warning 6328: (282-308): CHC: Assertion violation happens here. +// Warning 6328: (204-230): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\nf() +// Warning 6328: (282-308): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol index c8c0c4675..8e3dd59ee 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (153-167): CHC: Assertion violation happens here. +// Warning 6328: (153-167): CHC: Assertion violation happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol index 4d6796dc8..81d23d974 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (160-174): CHC: Assertion violation happens here. +// Warning 6328: (160-174): CHC: Assertion violation happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/contract.sol b/test/libsolidity/smtCheckerTests/functions/getters/contract.sol index af5f4963e..93d5c8373 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/contract.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/contract.sol @@ -12,4 +12,4 @@ contract C { } } // ---- -// Warning 6328: (156-191): CHC: Assertion violation happens here. +// Warning 6328: (156-191): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n\n\n\nTransaction trace:\nconstructor()\nState: d = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol b/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol index 315853245..1e2977f85 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol @@ -16,4 +16,4 @@ contract C { } } // ---- -// Warning 6328: (226-240): CHC: Assertion violation happens here. +// Warning 6328: (226-240): CHC: Assertion violation happens here.\nCounterexample:\ns = {u: 0}\n\n\n\nTransaction trace:\nconstructor()\nState: s = {u: 0}\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/enum.sol b/test/libsolidity/smtCheckerTests/functions/getters/enum.sol index 28a7fd8d9..c0bf70ec5 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/enum.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/enum.sol @@ -12,4 +12,4 @@ contract C { } } // ---- -// Warning 6328: (243-278): CHC: Assertion violation happens here. +// Warning 6328: (243-278): CHC: Assertion violation happens here.\nCounterexample:\nchoice = 0\n\n\n\nTransaction trace:\nconstructor()\nState: choice = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol b/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol index bb7659267..0109b8fde 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol @@ -14,5 +14,5 @@ contract C { } } // ---- -// Warning 6328: (188-204): CHC: Assertion violation happens here. -// Warning 6328: (256-274): CHC: Assertion violation happens here. +// Warning 6328: (188-204): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\nf() +// Warning 6328: (256-274): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/function.sol b/test/libsolidity/smtCheckerTests/functions/getters/function.sol index 51b5eb2a6..58c9a4c2e 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/function.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/function.sol @@ -15,5 +15,5 @@ contract C { } } // ---- -// Warning 6328: (185-203): CHC: Assertion violation happens here. -// Warning 6328: (295-311): CHC: Assertion violation happens here. +// Warning 6328: (185-203): CHC: Assertion violation happens here.\nCounterexample:\ng = 0\n\n\n\nTransaction trace:\nconstructor()\nState: g = 0\nf() +// Warning 6328: (295-311): CHC: Assertion violation happens here.\nCounterexample:\ng = 0\n\n\n\nTransaction trace:\nconstructor()\nState: g = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol index ae7476c0f..8b3d6fc02 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (175-189): CHC: Assertion violation happens here. +// Warning 6328: (175-189): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol index 905c143bc..a7b99f816 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (199-213): CHC: Assertion violation happens here. +// Warning 6328: (199-213): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol b/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol index f515e1d36..4fb02cd7a 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (180-194): CHC: Assertion violation happens here. +// Warning 6328: (180-194): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 1a39d5d6b..999df8444 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_1.sol @@ -16,4 +16,4 @@ contract C { } } // ---- -// Warning 6328: (243-257): CHC: Assertion violation happens here. +// Warning 6328: (243-257): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 5d7d75b9f..c08fe84f8 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_10.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_10.sol @@ -18,4 +18,4 @@ contract C { } } // ---- -// Warning 6328: (289-303): CHC: Assertion violation happens here. +// Warning 6328: (289-303): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 2717dac17..412c70e54 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_2.sol @@ -19,4 +19,4 @@ contract C { } } // ---- -// Warning 6328: (307-321): CHC: Assertion violation happens here. +// Warning 6328: (307-321): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 442efc47e..5fbc0ceb8 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_5.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_5.sol @@ -21,4 +21,4 @@ contract C { } } // ---- -// Warning 6328: (387-401): CHC: Assertion violation happens here. +// Warning 6328: (387-401): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 a2a18d815..6699b1b3b 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_7.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_7.sol @@ -15,4 +15,4 @@ contract C { } } // ---- -// Warning 6328: (225-239): CHC: Assertion violation happens here. +// Warning 6328: (225-239): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 da0932c21..7d79be24d 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_8.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_8.sol @@ -17,4 +17,4 @@ contract C { } } // ---- -// Warning 6328: (265-279): CHC: Assertion violation happens here. +// Warning 6328: (265-279): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 6e43e3902..c7120cc3e 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_9.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_9.sol @@ -15,4 +15,4 @@ contract C { } } // ---- -// Warning 6328: (251-265): CHC: Assertion violation happens here. +// Warning 6328: (251-265): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol b/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol index f887e572d..607852c42 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol @@ -12,4 +12,4 @@ contract C { } } // ---- -// Warning 6328: (195-217): CHC: Assertion violation happens here. +// Warning 6328: (195-217): CHC: Assertion violation happens here.\nCounterexample:\nx = [42, 1]\n\n\n\nTransaction trace:\nconstructor()\nState: x = [42, 1]\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol index d03617a0a..328cf797c 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol @@ -26,4 +26,4 @@ contract C { } } // ---- -// Warning 6328: (370-387): CHC: Assertion violation happens here. +// Warning 6328: (370-387): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0, t: {t: 0}, b: false, a: []}\n\n\n\nTransaction trace:\nconstructor()\nState: s = {x: 0, t: {t: 0}, b: false, a: []}\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol index 39344c661..5a47d0d77 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol @@ -16,4 +16,4 @@ contract C { } } // ---- -// Warning 6328: (207-221): CHC: Assertion violation happens here. +// Warning 6328: (207-221): CHC: Assertion violation happens here.\nCounterexample:\ns = {a: [0, 0], u: 0}\n\n\n\nTransaction trace:\nconstructor()\nState: s = {a: [0, 0], u: 0}\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol index 709cdf51e..6a70d9583 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol @@ -19,4 +19,4 @@ contract C { } // ---- // Warning 2072: (179-216): Unused local variable. -// Warning 6328: (267-302): CHC: Assertion violation happens here. +// Warning 6328: (267-302): CHC: Assertion violation happens here.\nCounterexample:\ns = {d: 0, f: 0}\n\n\n\nTransaction trace:\nconstructor()\nState: s = {d: 0, f: 0}\ntest() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol index 91e685d28..dde5781a6 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol @@ -28,5 +28,5 @@ contract C { } } // ---- -// Warning 6328: (288-305): CHC: Assertion violation happens here. -// Warning 6328: (410-424): CHC: Assertion violation happens here. +// Warning 6328: (288-305): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 1, b: false}\n\n\n\nTransaction trace:\nconstructor()\nState: s = {x: 1, b: false}\nf() +// Warning 6328: (410-424): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 42, b: false}\n\n\n\nTransaction trace:\nconstructor()\nState: s = {x: 1, b: false}\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/uint.sol b/test/libsolidity/smtCheckerTests/functions/getters/uint.sol index 8e0b14fe8..7a5cb426b 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/uint.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/uint.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (147-161): CHC: Assertion violation happens here. +// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol index ddad55554..1b25e07be 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol @@ -17,4 +17,4 @@ contract A is B { } } // ---- -// Warning 6328: (254-268): CHC: Assertion violation happens here. +// Warning 6328: (254-268): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\na() 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 ffd6fe24a..dae611717 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 @@ -21,10 +21,10 @@ contract C{ } // ---- // 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. -// Warning 6328: (170-184): CHC: Assertion violation happens here. -// Warning 6328: (220-234): CHC: Assertion violation happens here. -// Warning 6328: (245-259): CHC: Assertion violation happens here. -// Warning 6328: (82-96): CHC: Assertion violation happens here. +// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nconstructor(0)\nState: x = 1\nf() +// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nconstructor(0)\nState: x = 1\nf() +// Warning 6328: (220-234): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\n\n\nTransaction trace:\nconstructor(0)\nState: x = 1\nf() +// Warning 6328: (245-259): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nconstructor(0)\nState: x = 1\nf() +// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\n\nTransaction trace:\nconstructor(0) // Warning 2661: (156-159): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 4144: (238-241): BMC: Underflow (resulting value less than 0) happens here. 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 ad6d84ed6..303f72504 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 @@ -17,8 +17,8 @@ contract C is A { } } // ---- -// Warning 6328: (82-96): CHC: Assertion violation happens here. -// Warning 6328: (148-162): CHC: Assertion violation happens here. -// Warning 6328: (180-194): CHC: Assertion violation happens here. +// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (148-162): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (180-194): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor() // Warning 4144: (100-103): BMC: Underflow (resulting value less than 0) happens here. // Warning 4144: (100-103): BMC: Underflow (resulting value less than 0) happens here. 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 3afe27b2d..c606dd1cc 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 @@ -21,9 +21,9 @@ contract C{ } // ---- // 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. -// Warning 6328: (184-198): CHC: Assertion violation happens here. -// Warning 6328: (82-96): CHC: Assertion violation happens here. +// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nconstructor(0)\nState: x = 1\nf() +// Warning 6328: (184-198): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nconstructor(0)\nState: x = 1\nf() +// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\n\nTransaction trace:\nconstructor(0) // Warning 2661: (156-159): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 2661: (163-166): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 2661: (234-237): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/library_constant.sol b/test/libsolidity/smtCheckerTests/functions/library_constant.sol index e01d32e48..4f0e341ac 100644 --- a/test/libsolidity/smtCheckerTests/functions/library_constant.sol +++ b/test/libsolidity/smtCheckerTests/functions/library_constant.sol @@ -19,6 +19,6 @@ contract C { } } // ---- -// Warning 6328: (136-155): CHC: Assertion violation happens here. -// Warning 4984: (229-234): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (327-332): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (136-155): CHC: Assertion violation happens here.\nCounterexample:\nTON = 1000\n\n\n\nTransaction trace:\nconstructor()\nState: TON = 1000\nf1() +// Warning 4984: (229-234): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\n\nTransaction trace:\nconstructor()\nf(115792089237316195423570985008687907853269984665640564039457584007913129639935) +// Warning 4984: (327-332): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\n\nTransaction trace:\nconstructor()\nf(115792089237316195423570985008687907853269984665640564039457584007913129639935) diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol index 7fca557ad..444e88f7d 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol @@ -13,4 +13,4 @@ contract C { } } // ---- -// Warning 6328: (141-156): CHC: Assertion violation happens here. +// Warning 6328: (141-156): CHC: Assertion violation happens here.\nCounterexample:\na = 42\nx = 42\n\n\nTransaction trace:\nconstructor()\nState: a = 0\nf(42) diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol index 78f4169cc..e8bfe663b 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol @@ -23,6 +23,8 @@ contract C { function g() log public { } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (347-379): CHC: Assertion violation happens here. // Warning 6328: (389-421): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/this_fake.sol b/test/libsolidity/smtCheckerTests/functions/this_fake.sol index 259ff2d21..87ec466d1 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_fake.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_fake.sol @@ -21,4 +21,4 @@ contract C } // ---- // Warning 2319: (160-166): This declaration shadows a builtin symbol. -// Warning 6328: (268-282): CHC: Assertion violation happens here. +// Warning 6328: (268-282): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, c = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, c = 0\ng() diff --git a/test/libsolidity/smtCheckerTests/imports/import_base.sol b/test/libsolidity/smtCheckerTests/imports/import_base.sol index e7bf269be..f02265c75 100644 --- a/test/libsolidity/smtCheckerTests/imports/import_base.sol +++ b/test/libsolidity/smtCheckerTests/imports/import_base.sol @@ -19,7 +19,7 @@ contract Der is Base { } // ---- // Warning 4984: (der:101-109): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6328: (der:113-126): CHC: Assertion violation happens here. +// Warning 6328: (der:113-126): CHC: Assertion violation happens here.\nCounterexample:\nx = 3, a = 0\ny = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0, a = 0\ng(0) // Warning 2661: (base:100-103): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 2661: (der:101-109): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 2661: (base:100-103): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/imports/import_library.sol b/test/libsolidity/smtCheckerTests/imports/import_library.sol index a4b2925da..924d6e0a4 100644 --- a/test/libsolidity/smtCheckerTests/imports/import_library.sol +++ b/test/libsolidity/smtCheckerTests/imports/import_library.sol @@ -15,4 +15,4 @@ library L { } } // ---- -// Warning 6328: (c:113-126): CHC: Assertion violation happens here. +// Warning 6328: (c:113-126): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\ng(0) diff --git a/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol b/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol index f619b6a9f..3ebc1af37 100644 --- a/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol +++ b/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol @@ -1,11 +1,3 @@ -==== Source: C.sol ==== -import "B.sol"; -pragma experimental SMTChecker; -contract C is B { - function h(uint _x) public view { - assert(_x < x); - } -} ==== Source: A.sol ==== contract A { uint x; @@ -20,6 +12,14 @@ contract B is A { assert(_x > x); } } +==== Source: C.sol ==== +import "B.sol"; +pragma experimental SMTChecker; +contract C is B { + function h(uint _x) public view { + assert(_x < x); + } +} // ---- -// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here. -// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here. +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(0) +// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nh(0) diff --git a/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol b/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol index ff12552ab..05faf8810 100644 --- a/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol +++ b/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol @@ -1,11 +1,3 @@ -==== Source: C.sol ==== -import "B.sol"; -pragma experimental SMTChecker; -contract C is B { - function h(uint _x) public view { - assert(_x < x); - } -} ==== Source: A.sol ==== contract A { uint x; @@ -21,7 +13,15 @@ contract B is A { assert(_x > x); } } +==== Source: C.sol ==== +import "B.sol"; +pragma experimental SMTChecker; +contract C is B { + function h(uint _x) public view { + assert(_x < x); + } +} // ---- -// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here. -// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here. -// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here. +// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(0) +// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(0) +// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nh(0) diff --git a/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol b/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol index dedd9f931..b81730efa 100644 --- a/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol +++ b/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol @@ -1,11 +1,3 @@ -==== Source: C.sol ==== -import "A.sol"; -pragma experimental SMTChecker; -contract C is A { - function h(uint _x) public view { - assert(_x < x); - } -} ==== Source: A.sol ==== contract A { uint x; @@ -21,6 +13,14 @@ contract B is A { assert(_x > x); } } +==== Source: C.sol ==== +import "A.sol"; +pragma experimental SMTChecker; +contract C is A { + function h(uint _x) public view { + assert(_x < x); + } +} // ---- -// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here. -// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here. +// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(0) +// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nh(0) diff --git a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol b/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol index 954a5a30e..8b6e580a0 100644 --- a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol +++ b/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol @@ -1,12 +1,12 @@ -==== Source: B.sol ==== -import "A.sol"; -pragma experimental SMTChecker; -contract C is A {} ==== 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. +// Warning 6328: (A.sol:49-62): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(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 index 1ae986467..b46369c21 100644 --- a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_two_pragmas.sol +++ b/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_two_pragmas.sol @@ -1,7 +1,3 @@ -==== Source: B.sol ==== -import "A.sol"; -pragma experimental SMTChecker; -contract C is A {} ==== Source: A.sol ==== pragma experimental SMTChecker; contract A { @@ -9,6 +5,10 @@ contract A { 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. -// Warning 6328: (A.sol:81-94): CHC: Assertion violation happens here. +// Warning 6328: (A.sol:81-94): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 6328: (A.sol:81-94): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(0) 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 81dd66284..274129c73 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 @@ -32,5 +32,5 @@ contract C is Z(5) { } } // ---- -// Warning 4984: (325-332): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (400-413): CHC: Assertion violation happens here. +// Warning 4984: (325-332): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 1\nz = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\n\nTransaction trace:\nconstructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) +// Warning 6328: (400-413): CHC: Assertion violation happens here.\nCounterexample:\nx = 6\n\n\n\nTransaction trace:\nconstructor() 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 2165b6191..adf4f0d23 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 @@ -33,6 +33,6 @@ contract C is Z(5) { } } // ---- -// Warning 4984: (143-149): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (143-149): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 9\nb = 115792089237316195423570985008687907853269984665640564039457584007913129639927\n\n\nTransaction trace:\nconstructor(115792089237316195423570985008687907853269984665640564039457584007913129639927) // 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 6328: (409-423): CHC: Assertion violation happens here.\nCounterexample:\nx = 15\n\n\n\nTransaction trace:\nconstructor() 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 217eaca65..29e1d68b6 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 @@ -29,6 +29,8 @@ contract C is Z, B { assert(x == k); // should fail } } +// ==== +// 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. 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 6c209b1fb..236735253 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 @@ -30,4 +30,4 @@ contract C is Z, B { } } // ---- -// Warning 6328: (382-396): CHC: Assertion violation happens here. +// Warning 6328: (382-396): CHC: Assertion violation happens here.\nCounterexample:\nk = 2, x = 1\n\n\n\nTransaction trace:\nconstructor() 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 e10d6ff75..b8ea87968 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 @@ -29,6 +29,8 @@ contract C is Z, B { assert(x == k); // should fail } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 4984: (366-371): CHC: Overflow (resulting value larger than 2**256 - 1) 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 6e4054d22..411a013db 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 @@ -29,6 +29,8 @@ contract C is Z, B { assert(x == k); // should fail } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 4984: (366-371): CHC: Overflow (resulting value larger than 2**256 - 1) 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 580cbb46a..bf885f0c7 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 @@ -35,5 +35,5 @@ contract C is Z, B { } } // ---- -// Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 1\nb = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\n\nTransaction trace:\nconstructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) // Warning 6328: (456-470): 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 e0d0eab4e..2906738ec 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 @@ -35,4 +35,4 @@ contract C is Z, B { } } // ---- -// Warning 6328: (449-463): CHC: Assertion violation happens here. +// Warning 6328: (449-463): CHC: Assertion violation happens here.\nCounterexample:\nk = 42, x = 1\n\n\n\nTransaction trace:\nconstructor() 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 555e77446..2464583f8 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 @@ -32,4 +32,4 @@ contract C is Z { } } // ---- -// Warning 6328: (387-400): CHC: Assertion violation happens here. +// Warning 6328: (387-400): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nconstructor() 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 1959ea161..77ea49000 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 @@ -18,5 +18,5 @@ contract C is A { } } // ---- -// Warning 6328: (218-232): CHC: Assertion violation happens here. -// Warning 6328: (251-267): CHC: Assertion violation happens here. +// Warning 6328: (218-232): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (251-267): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nconstructor() 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 bb792691c..0a17fe5e1 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 @@ -19,6 +19,6 @@ contract C is A { } } // ---- -// Warning 6328: (224-238): CHC: Assertion violation happens here. -// Warning 6328: (257-271): CHC: Assertion violation happens here. -// Warning 6328: (290-306): CHC: Assertion violation happens here. +// Warning 6328: (224-238): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (257-271): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (290-306): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\n\n\nTransaction trace:\nconstructor() 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 92606cbca..61a77682a 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 @@ -24,6 +24,8 @@ contract A is B { assert(a == 4); } } +// ==== +// 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. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol index 7a3a186b4..30a845676 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol @@ -8,4 +8,4 @@ contract C { } } // ---- -// Warning 6328: (97-111): CHC: Assertion violation happens here. +// Warning 6328: (97-111): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\n\n\nTransaction trace:\nconstructor() 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 ca5662622..b2c8f6c5a 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_asserts.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_asserts.sol @@ -33,7 +33,7 @@ contract C is B { } } // ---- -// Warning 6328: (280-294): CHC: Assertion violation happens here. -// Warning 6328: (372-395): CHC: Assertion violation happens here. -// Warning 6328: (472-496): CHC: Assertion violation happens here. -// Warning 6328: (516-529): CHC: Assertion violation happens here. +// Warning 6328: (280-294): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\n\nTransaction trace:\nconstructor(1) +// Warning 6328: (372-395): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\n\nTransaction trace:\nconstructor(1) +// Warning 6328: (472-496): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\n\nTransaction trace:\nconstructor(0) +// Warning 6328: (516-529): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\n\nTransaction trace:\nconstructor(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 bcb0f5562..6e7de7fda 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_base.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_base.sol @@ -11,4 +11,4 @@ contract D is C { } } // ---- -// Warning 6328: (117-131): CHC: Assertion violation happens here. +// Warning 6328: (117-131): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\n\n\nTransaction trace:\nconstructor() 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 0fa18859a..fce40ecc6 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain.sol @@ -19,4 +19,4 @@ contract D is C { } } // ---- -// Warning 6328: (211-225): CHC: Assertion violation happens here. +// Warning 6328: (211-225): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\n\n\nTransaction trace:\nconstructor() 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 f502ca8a8..53e4476cd 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 @@ -18,4 +18,4 @@ contract D is C { } } // ---- -// Warning 6328: (185-199): CHC: Assertion violation happens here. +// Warning 6328: (185-199): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\n\n\nTransaction trace:\nconstructor() 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 957677bf8..e537474bc 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 @@ -20,7 +20,8 @@ contract A is B { assert(a == x + 5); } } - +// ==== +// SMTIgnoreCex: yes // ---- // Warning 4984: (157-162): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 4984: (239-244): 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 566d907bd..f72167a94 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 @@ -20,7 +20,8 @@ contract A is B { assert(b == x + 5); } } - +// ==== +// SMTIgnoreCex: yes // ---- // Warning 4984: (157-163): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. // Warning 4984: (240-245): 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 a7ae53fc4..a800c377d 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 @@ -39,5 +39,5 @@ contract C is B { } } // ---- -// Warning 6328: (436-450): CHC: Assertion violation happens here. -// Warning 6328: (483-496): CHC: Assertion violation happens here. +// Warning 6328: (436-450): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, x = 1\nc = (- 1)\n\n\nTransaction trace:\nconstructor((- 1)) +// Warning 6328: (483-496): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, x = 0\nc = 0\n\n\nTransaction trace:\nconstructor(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 7d9092e44..22d463a1f 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond.sol @@ -17,4 +17,4 @@ contract D is B, C { } } // ---- -// Warning 6328: (162-176): CHC: Assertion violation happens here. +// Warning 6328: (162-176): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\n\n\nTransaction trace:\nconstructor() 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 f049ce10b..fd158fb74 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 @@ -25,5 +25,5 @@ contract D is B, C { } } // ---- -// Warning 6328: (167-181): CHC: Assertion violation happens here. -// Warning 6328: (256-270): CHC: Assertion violation happens here. +// Warning 6328: (167-181): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\n\n\nTransaction trace:\nconstructor() +// Warning 6328: (256-270): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\n\n\nTransaction trace:\nconstructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/fallback.sol b/test/libsolidity/smtCheckerTests/inheritance/fallback.sol index 917ed823b..1bb102362 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/fallback.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/fallback.sol @@ -21,6 +21,6 @@ contract B is A { } } // ---- -// Warning 6328: (122-136): CHC: Assertion violation happens here. -// Warning 6328: (171-185): CHC: Assertion violation happens here. -// Warning 6328: (288-302): CHC: Assertion violation happens here. +// Warning 6328: (122-136): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nfallback() +// Warning 6328: (171-185): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() +// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\n\n\nTransaction trace:\nconstructor()\nState: y = 0, x = 0\nfallback() diff --git a/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol b/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol index 47ce43860..c4443b51c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol @@ -21,6 +21,6 @@ contract B is A { } } // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here. -// Warning 6328: (163-177): CHC: Assertion violation happens here. -// Warning 6328: (289-303): CHC: Assertion violation happens here. +// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nfallback() +// Warning 6328: (163-177): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() +// Warning 6328: (289-303): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\n\n\nTransaction trace:\nconstructor()\nState: y = 0, x = 0\nreceive() diff --git a/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol b/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol index 38fa1f8be..e969db9b5 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol @@ -19,6 +19,6 @@ contract B is A { } } // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here. -// Warning 6328: (170-184): CHC: Assertion violation happens here. -// Warning 6328: (276-290): CHC: Assertion violation happens here. +// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf() +// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() +// Warning 6328: (276-290): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol b/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol index 4b927e2d0..ef3b11ce5 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol @@ -21,6 +21,6 @@ contract B is A { } } // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here. -// Warning 6328: (170-184): CHC: Assertion violation happens here. -// Warning 6328: (286-300): CHC: Assertion violation happens here. +// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf() +// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() +// Warning 6328: (286-300): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\n\n\nTransaction trace:\nconstructor()\nState: y = 0, x = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol b/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol index 89701d2dd..bf51593c5 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol @@ -36,9 +36,9 @@ contract C is B { } } // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here. -// Warning 6328: (170-184): CHC: Assertion violation happens here. -// Warning 6328: (296-310): CHC: Assertion violation happens here. -// Warning 6328: (345-359): CHC: Assertion violation happens here. -// Warning 6328: (468-482): CHC: Assertion violation happens here. -// Warning 6328: (517-531): CHC: Assertion violation happens here. +// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf() +// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() +// Warning 6328: (296-310): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\n\n\nTransaction trace:\nconstructor()\nState: y = 0, x = 0\nf() +// Warning 6328: (345-359): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\n\n\nTransaction trace:\nconstructor()\nState: y = 0, x = 0\nh() +// Warning 6328: (468-482): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, y = 0, x = 0\n\n\n\nTransaction trace:\nconstructor()\nState: z = 0, y = 0, x = 0\nf() +// Warning 6328: (517-531): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, y = 0, x = 0\n\n\n\nTransaction trace:\nconstructor()\nState: z = 0, y = 0, x = 0\ni() diff --git a/test/libsolidity/smtCheckerTests/inheritance/receive.sol b/test/libsolidity/smtCheckerTests/inheritance/receive.sol index 5f513e209..5071f2ad4 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/receive.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/receive.sol @@ -21,6 +21,6 @@ contract B is A { } } // ---- -// Warning 6328: (128-142): CHC: Assertion violation happens here. -// Warning 6328: (177-191): CHC: Assertion violation happens here. -// Warning 6328: (300-314): CHC: Assertion violation happens here. +// Warning 6328: (128-142): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nreceive() +// Warning 6328: (177-191): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() +// Warning 6328: (300-314): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\n\n\nTransaction trace:\nconstructor()\nState: y = 0, x = 0\nreceive() diff --git a/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol b/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol index a9ad1e30e..ce2f27ec6 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol @@ -21,6 +21,6 @@ contract B is A { } } // ---- -// Warning 6328: (120-134): CHC: Assertion violation happens here. -// Warning 6328: (169-183): CHC: Assertion violation happens here. -// Warning 6328: (288-302): CHC: Assertion violation happens here. +// Warning 6328: (120-134): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nreceive() +// Warning 6328: (169-183): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() +// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\n\n\nTransaction trace:\nconstructor()\nState: y = 0, x = 0\nfallback() diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol b/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol index c21f09127..2c4ab9f48 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol @@ -13,4 +13,4 @@ contract C // ==== // SMTSolvers: z3 // ---- -// Warning 6328: (143-157): CHC: Assertion violation happens here. +// Warning 6328: (143-157): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\n\nTransaction trace:\nconstructor()\nf(13) 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 973a157ac..a874bb3a2 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_break_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_break_2_fail.sol @@ -19,4 +19,4 @@ contract C { // ---- // Warning 5740: (128-133): Unreachable code. // Warning 5740: (147-151): Unreachable code. -// Warning 6328: (180-194): CHC: Assertion violation happens here. +// Warning 6328: (180-194): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol index c86805b26..905510381 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol @@ -15,4 +15,4 @@ contract C { // ---- // Warning 5740: (104-109): Unreachable code. // Warning 5740: (122-128): Unreachable code. -// Warning 6328: (133-147): CHC: Assertion violation happens here. +// Warning 6328: (133-147): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol index 319bd1de6..70b5ed53d 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol @@ -17,4 +17,4 @@ contract C // ==== // SMTSolvers: z3 // ---- -// Warning 6328: (201-216): CHC: Assertion violation happens here. +// Warning 6328: (201-216): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nb = false\n\n\nTransaction trace:\nconstructor()\nf(0, false) diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol b/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol index 12afb84e1..1a4fd92d9 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol @@ -14,4 +14,4 @@ contract C // 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. +// Warning 6328: (142-156): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\nb = false\n\n\nTransaction trace:\nconstructor()\nf(9, false) diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol b/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol index 1135d12e7..678915840 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol @@ -15,5 +15,5 @@ contract C // 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. +// Warning 6328: (189-203): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\n\nTransaction trace:\nconstructor()\nf(4) // Warning 2661: (176-181): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol index 67402e3cd..8896019ba 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol @@ -9,4 +9,4 @@ contract C { // ==== // SMTSolvers: z3 // ---- -// Warning 6328: (136-150): CHC: Assertion violation happens here. +// Warning 6328: (136-150): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol index 7af2112df..c1a809a29 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol @@ -11,4 +11,4 @@ contract C { // ==== // SMTSolvers: z3 // ---- -// Warning 6328: (167-181): CHC: Assertion violation happens here. +// Warning 6328: (167-181): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\n\n\nTransaction trace:\nconstructor()\nf(10) 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 99ecca3f6..cab6a677d 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 @@ -15,6 +15,8 @@ contract LoopFor2 { assert(b[0] == 900); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 4984: (252-257): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. // Warning 4984: (232-238): CHC: Overflow (resulting value larger than 2**256 - 1) might happen 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 0e925049b..279886553 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 @@ -21,4 +21,4 @@ contract LoopFor2 { // ---- // Warning 4984: (236-241): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. // Warning 4984: (216-222): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6328: (363-382): CHC: Assertion violation happens here. +// Warning 6328: (363-382): CHC: Assertion violation happens here.\nCounterexample:\nb = [], c = []\nn = 1\n\n\nTransaction trace:\nconstructor()\nState: b = [], c = []\ntestUnboundedForLoop(1) 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 85584e7d3..9937ae040 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 @@ -21,5 +21,5 @@ contract LoopFor2 { // ---- // Warning 4984: (237-242): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. // Warning 4984: (217-223): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6328: (341-360): CHC: Assertion violation happens here. -// Warning 6328: (364-383): CHC: Assertion violation happens here. +// Warning 6328: (341-360): CHC: Assertion violation happens here.\nCounterexample:\nb = [], c = []\nn = 1\n\n\nTransaction trace:\nconstructor()\nState: b = [], c = []\ntestUnboundedForLoop(1) +// Warning 6328: (364-383): CHC: Assertion violation happens here.\nCounterexample:\nb = [], c = []\nn = 1\n\n\nTransaction trace:\nconstructor()\nState: b = [], c = []\ntestUnboundedForLoop(1) diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol index 6d58a4cf1..123183026 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol @@ -18,4 +18,4 @@ contract C // ==== // SMTSolvers: z3 // ---- -// Warning 6328: (218-233): CHC: Assertion violation happens here. +// Warning 6328: (218-233): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nb = false\n\n\nTransaction trace:\nconstructor()\nf(0, false) diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol index f0500c073..2399cbc4d 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol @@ -21,4 +21,4 @@ contract C // SMTSolvers: z3 // ---- // Warning 5740: (169-176): Unreachable code. -// Warning 6328: (227-242): CHC: Assertion violation happens here. +// Warning 6328: (227-242): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\nb = false\n\n\nTransaction trace:\nconstructor()\nf(10, false) diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol index 2b131133e..5d95686e4 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol @@ -13,4 +13,4 @@ contract C // ==== // SMTSolvers: z3 // ---- -// Warning 6328: (139-153): CHC: Assertion violation happens here. +// Warning 6328: (139-153): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\n\nTransaction trace:\nconstructor()\nf(14) diff --git a/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol index 2ffb7e023..0012c9c7b 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol @@ -15,4 +15,4 @@ contract C // SMTSolvers: z3 // ---- // Warning 5740: (120-123): Unreachable code. -// Warning 6328: (131-145): CHC: Assertion violation happens here. +// Warning 6328: (131-145): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\n\nTransaction trace:\nconstructor()\nf(1) 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 41d602961..aeba1381b 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 @@ -19,6 +19,7 @@ contract LoopFor2 { } // ==== // SMTSolvers: z3 +// SMTIgnoreCex: yes // ---- // Warning 4984: (244-249): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. // Warning 6328: (373-392): CHC: Assertion violation happens here. 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 c76ba05c4..47137aec5 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 @@ -21,5 +21,5 @@ contract LoopFor2 { } // ---- // Warning 4984: (229-234): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6328: (338-357): CHC: Assertion violation happens here. -// Warning 6328: (361-380): CHC: Assertion violation happens here. +// Warning 6328: (338-357): CHC: Assertion violation happens here.\nCounterexample:\nb = [], c = []\nn = 1\n\n\nTransaction trace:\nconstructor()\nState: b = [], c = []\ntestUnboundedForLoop(1) +// Warning 6328: (361-380): CHC: Assertion violation happens here.\nCounterexample:\nb = [], c = []\nn = 1\n\n\nTransaction trace:\nconstructor()\nState: b = [], c = []\ntestUnboundedForLoop(1) diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol index ef47d5b81..65c769fc9 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol @@ -12,4 +12,4 @@ contract C { // ==== // SMTSolvers: z3 // ---- -// Warning 6328: (194-208): CHC: Assertion violation happens here. +// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol index 0d6b2ad6f..0916b1bdd 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol @@ -10,4 +10,4 @@ contract C { // ==== // SMTSolvers: z3 // ---- -// Warning 6328: (187-201): CHC: Assertion violation happens here. +// Warning 6328: (187-201): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\n\n\nTransaction trace:\nconstructor()\nf(3) diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol index d357d5d05..9b89fbdfa 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol @@ -12,4 +12,4 @@ contract C { // ==== // SMTSolvers: z3 // ---- -// Warning 6328: (224-238): CHC: Assertion violation happens here. +// Warning 6328: (224-238): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\n\nTransaction trace:\nconstructor()\nf(0, 0) diff --git a/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol index 00fe1ffee..bba71e3f1 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol @@ -29,5 +29,5 @@ contract C } } // ---- -// Warning 6328: (329-344): CHC: Assertion violation happens here. -// Warning 6328: (380-395): CHC: Assertion violation happens here. +// Warning 6328: (329-344): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 10\nb = false\nc = true\n\n\nTransaction trace:\nconstructor()\nf(0, 9, false, true) +// Warning 6328: (380-395): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\ny = 20\nb = false\nc = false\n\n\nTransaction trace:\nconstructor()\nf(0, 0, false, false) diff --git a/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol index fe7384fff..ef41d6480 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol @@ -27,5 +27,5 @@ contract C } } // ---- -// Warning 6328: (323-338): CHC: Assertion violation happens here. -// Warning 6328: (362-377): CHC: Assertion violation happens here. +// Warning 6328: (323-338): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 15\nb = false\nc = false\n\n\nTransaction trace:\nconstructor()\nf(0, 0, false, false) +// Warning 6328: (362-377): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\ny = 0\nb = true\nc = false\n\n\nTransaction trace:\nconstructor()\nf(0, 0, true, false) diff --git a/test/libsolidity/smtCheckerTests/math/addmod_1.sol b/test/libsolidity/smtCheckerTests/math/addmod_1.sol index ae669c90d..f74633b3b 100644 --- a/test/libsolidity/smtCheckerTests/math/addmod_1.sol +++ b/test/libsolidity/smtCheckerTests/math/addmod_1.sol @@ -12,6 +12,6 @@ contract C { } } // ---- -// Warning 4281: (141-166): CHC: Division by zero happens here. -// Warning 6328: (170-184): CHC: Assertion violation happens here. -// Warning 4281: (263-278): CHC: Division by zero happens here. +// Warning 4281: (141-166): CHC: Division by zero happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 4281: (263-278): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\nk = 0\n = 0\n\nTransaction trace:\nconstructor()\ng(0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol b/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol index 1d73d60f4..f98599255 100644 --- a/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol +++ b/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol @@ -22,7 +22,7 @@ contract C { } // ---- // 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. -// Warning 6328: (113-126): CHC: Assertion violation happens here. -// Warning 4281: (180-195): CHC: Division by zero happens here. -// Warning 6328: (199-212): CHC: Assertion violation happens here. +// Warning 4281: (94-109): CHC: Division by zero happens here.\nCounterexample:\n\nd = 0\n\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 6328: (113-126): CHC: Assertion violation happens here.\nCounterexample:\n\nd = 0\n\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 4281: (180-195): CHC: Division by zero happens here.\nCounterexample:\n\nd = 0\n\n\nTransaction trace:\nconstructor()\ng(0) +// Warning 6328: (199-212): CHC: Assertion violation happens here.\nCounterexample:\n\nd = 0\n\n\nTransaction trace:\nconstructor()\ng(0) diff --git a/test/libsolidity/smtCheckerTests/math/mulmod_1.sol b/test/libsolidity/smtCheckerTests/math/mulmod_1.sol index ce9efdce5..3eecde2e4 100644 --- a/test/libsolidity/smtCheckerTests/math/mulmod_1.sol +++ b/test/libsolidity/smtCheckerTests/math/mulmod_1.sol @@ -12,6 +12,6 @@ contract C { } } // ---- -// Warning 4281: (141-166): CHC: Division by zero happens here. -// Warning 6328: (170-184): CHC: Assertion violation happens here. -// Warning 4281: (263-278): CHC: Division by zero happens here. +// Warning 4281: (141-166): CHC: Division by zero happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 4281: (263-278): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\nk = 0\n = 0\n\nTransaction trace:\nconstructor()\ng(0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol index d87b82129..c13c71245 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol @@ -21,5 +21,5 @@ contract C } } // ---- -// Warning 4984: (203-208): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (136-149): CHC: Assertion violation happens here. +// Warning 4984: (203-208): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(115792089237316195423570985008687907853269984665640564039457584007913129639935)\nState: x = 115792089237316195423570985008687907853269984665640564039457584007913129639935\nf() +// Warning 6328: (136-149): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(115792089237316195423570985008687907853269984665640564039457584007913129639935)\nState: x = 115792089237316195423570985008687907853269984665640564039457584007913129639935\nf() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol index aa189243c..dde25c969 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol @@ -15,4 +15,4 @@ contract C } } // ---- -// Warning 6328: (144-157): CHC: Assertion violation happens here. +// Warning 6328: (144-157): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol index 52563ad89..46574a0e6 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol @@ -20,4 +20,4 @@ contract C { } } // ---- -// Warning 6328: (287-300): CHC: Assertion violation happens here. +// Warning 6328: (287-300): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, owner = 0\ny = 1\n\n\nTransaction trace:\nconstructor()\nState: x = 0, owner = 0\ng(1) 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 7fe99a053..d93b0b924 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 @@ -34,4 +34,4 @@ contract C { } } // ---- -// Warning 6328: (573-587): CHC: Assertion violation happens here. +// Warning 6328: (573-587): CHC: Assertion violation happens here.\nCounterexample:\nx = 1, owner = 0\ny = 1\n\n\nTransaction trace:\nconstructor()\nState: x = 0, owner = 0\ng(1) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol index 35a76250f..f4e657b49 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol @@ -26,4 +26,4 @@ contract C } } // ---- -// Warning 6328: (170-183): CHC: Assertion violation happens here. +// Warning 6328: (170-183): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(1)\nState: x = 1\nf() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol index dc6fa718b..5bca845b5 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol @@ -22,4 +22,4 @@ contract C } } // ---- -// Warning 6328: (311-324): CHC: Assertion violation happens here. +// Warning 6328: (311-324): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\n\nTransaction trace:\nconstructor()\nf(1) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol index 56754da76..091b4f500 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol @@ -13,4 +13,4 @@ contract C } } // ---- -// Warning 6328: (164-177): CHC: Assertion violation happens here. +// Warning 6328: (164-177): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\n\nTransaction trace:\nconstructor()\nf(1) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol index a90a8d21c..30b628cbe 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (128-142): CHC: Assertion violation happens here. +// Warning 6328: (128-142): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol index d70cfd9d3..d2d435199 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here. +// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol index 04719a6b8..de0142634 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol @@ -16,4 +16,4 @@ contract C } } // ---- -// Warning 6328: (109-123): CHC: Assertion violation happens here. +// Warning 6328: (109-123): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol index 11385044e..709fa5742 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol @@ -23,4 +23,4 @@ contract C } } // ---- -// Warning 6328: (156-170): CHC: Assertion violation happens here. +// Warning 6328: (156-170): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng(1)\nState: x = 1\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol index 68b05367f..ae8725b54 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol @@ -26,5 +26,5 @@ contract A { } } // ---- -// Warning 6328: (160-176): CHC: Assertion violation happens here. -// Warning 6328: (373-389): CHC: Assertion violation happens here. +// Warning 6328: (160-176): CHC: Assertion violation happens here.\nCounterexample:\nx = (- 1), y = (- 2)\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\na()\nState: x = (- 2), y = (- 2)\na() +// Warning 6328: (373-389): CHC: Assertion violation happens here.\nCounterexample:\nx = 8, y = (- 2)\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\na() 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 124be3f7a..061b744d4 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol @@ -11,4 +11,4 @@ contract A { } } // ---- -// Warning 6328: (156-178): CHC: Assertion violation happens here. +// Warning 6328: (156-178): CHC: Assertion violation happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() 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 3f5243105..1d0c4eea1 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_module_contract_member_variable.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_module_contract_member_variable.sol @@ -27,5 +27,5 @@ contract A { } } // ---- -// Warning 6328: (AASource:191-210): CHC: Assertion violation happens here. -// Warning 6328: (AASource:402-418): CHC: Assertion violation happens here. +// Warning 6328: (AASource:191-210): CHC: Assertion violation happens here.\nCounterexample:\nx = (- 1), y = (- 2)\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\na()\nState: x = (- 2), y = (- 2)\na() +// Warning 6328: (AASource:402-418): CHC: Assertion violation happens here.\nCounterexample:\nx = 8, y = (- 2)\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, y = 0\na() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol index 0f8c65227..06626f67d 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol @@ -8,4 +8,4 @@ contract C { } } // ---- -// Warning 6328: (253-295): CHC: Assertion violation happens here. +// Warning 6328: (253-295): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol index 644235029..368403bd7 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol @@ -15,4 +15,4 @@ contract C { } } // ---- -// Warning 6328: (104-122): CHC: Assertion violation happens here. +// Warning 6328: (104-122): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol index f959290c5..34c2b7c40 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (76-94): CHC: Assertion violation happens here. +// Warning 6328: (76-94): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol index 8e11c17dc..478003f0d 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol @@ -13,6 +13,6 @@ contract C { } } // ---- -// Warning 6328: (107-125): CHC: Assertion violation happens here. -// Warning 6328: (180-203): CHC: Assertion violation happens here. -// Warning 6328: (207-230): CHC: Assertion violation happens here. +// Warning 6328: (107-125): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (180-203): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (207-230): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol index 96060ac94..5df38dc1d 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (133-156): CHC: Assertion violation happens here. +// Warning 6328: (133-156): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol index 7578b8ac3..484fabbff 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol @@ -15,7 +15,7 @@ contract C { } } // ---- -// Warning 6328: (91-106): CHC: Assertion violation happens here. -// Warning 6328: (122-137): CHC: Assertion violation happens here. -// Warning 6328: (153-171): CHC: Assertion violation happens here. -// Warning 6328: (185-200): CHC: Assertion violation happens here. +// Warning 6328: (91-106): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (122-137): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (153-171): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (185-200): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol index 494348d28..3266c2321 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol @@ -11,5 +11,5 @@ contract C { } } // ---- -// Warning 6328: (159-179): CHC: Assertion violation happens here. -// Warning 6328: (183-203): CHC: Assertion violation happens here. +// Warning 6328: (159-179): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (183-203): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol index a650ff7d9..18d123113 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol @@ -8,4 +8,4 @@ contract C { } } // ---- -// Warning 6328: (172-195): CHC: Assertion violation happens here. +// Warning 6328: (172-195): CHC: Assertion violation happens here.\nCounterexample:\n\n\n = 0\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol index fb7a14614..bc0661908 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol @@ -17,5 +17,5 @@ contract C { } } // ---- -// Warning 6328: (144-162): CHC: Assertion violation happens here. -// Warning 6328: (267-286): CHC: Assertion violation happens here. +// Warning 6328: (144-162): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (267-286): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol index bba881d19..7d7f74130 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol @@ -13,5 +13,5 @@ contract C { } } // ---- -// Warning 6328: (155-176): CHC: Assertion violation happens here. -// Warning 6328: (207-230): CHC: Assertion violation happens here. +// Warning 6328: (155-176): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (207-230): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol index 01707c852..2c14c8b97 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol @@ -12,4 +12,4 @@ contract C { } } // ---- -// Warning 6328: (181-194): CHC: Assertion violation happens here. +// Warning 6328: (181-194): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol index c363082cd..07cf7d425 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol @@ -8,4 +8,4 @@ contract Simp { } } // ---- -// Warning 6328: (168-197): CHC: Assertion violation happens here. +// Warning 6328: (168-197): CHC: Assertion violation happens here.\nCounterexample:\n\n\n = 0\n\nTransaction trace:\nconstructor()\nf3() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol index 96383eabe..9702003bc 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol @@ -15,5 +15,5 @@ contract C { } } // ---- -// Warning 6328: (189-206): CHC: Assertion violation happens here. -// Warning 6328: (247-264): CHC: Assertion violation happens here. +// Warning 6328: (189-206): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (247-264): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol index 5a2837f7c..abd409d58 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol @@ -13,5 +13,5 @@ contract C { } } // ---- -// Warning 6328: (155-176): CHC: Assertion violation happens here. -// Warning 6328: (207-230): CHC: Assertion violation happens here. +// Warning 6328: (155-176): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (207-230): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add.sol b/test/libsolidity/smtCheckerTests/operators/compound_add.sol index fc2383e53..f0cbd7dc5 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (151-166): CHC: Assertion violation happens here. +// Warning 6328: (151-166): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol b/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol index cb7132148..5c2c30518 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (192-214): CHC: Assertion violation happens here. +// Warning 6328: (192-214): CHC: Assertion violation happens here.\nCounterexample:\narray = []\nx = 0\np = 38\n\n\nTransaction trace:\nconstructor()\nState: array = []\nf(0, 38) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol b/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol index e53c80ab5..8caff84d4 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (198-218): CHC: Assertion violation happens here. +// Warning 6328: (198-218): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\np = 0\n\n\nTransaction trace:\nconstructor()\nf(0, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol index cdb2db7e1..d0e08ff69 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (147-161): CHC: Assertion violation happens here. +// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\n\n\nTransaction trace:\nconstructor()\nf(2) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol index 8bb0f2edb..63a897a28 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (188-209): CHC: Assertion violation happens here. +// Warning 6328: (188-209): CHC: Assertion violation happens here.\nCounterexample:\narray = []\nx = 2\np = 0\n\n\nTransaction trace:\nconstructor()\nState: array = []\nf(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 2b25ee54e..bfa51b0e5 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_3.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (194-213): CHC: Assertion violation happens here. +// Warning 6328: (194-213): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\np = 0\n\n\nTransaction trace:\nconstructor()\nf(2, 0) 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 ec505bda9..d4c28da29 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_fixed_bytes.sol @@ -12,4 +12,4 @@ contract C { } // ---- // Warning 6321: (83-87): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (203-217): CHC: Assertion violation happens here. +// Warning 6328: (203-217): CHC: Assertion violation happens here.\nCounterexample:\n\n\n = 0\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol index a46e71bc9..7cd84ae8a 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol @@ -18,4 +18,4 @@ contract C { } } // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here. +// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol index 30897aac7..626f6004c 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol @@ -28,6 +28,6 @@ contract C { } } // ---- -// Warning 6328: (177-191): CHC: Assertion violation happens here. -// Warning 6328: (380-399): CHC: Assertion violation happens here. -// Warning 6328: (506-523): CHC: Assertion violation happens here. +// Warning 6328: (177-191): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (380-399): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (506-523): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 b433ba613..c38bba2d2 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_fixed_bytes.sol @@ -12,4 +12,4 @@ contract C { } // ---- // Warning 6321: (83-87): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (203-217): CHC: Assertion violation happens here. +// Warning 6328: (203-217): CHC: Assertion violation happens here.\nCounterexample:\n\n\n = 0\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol index 125d4233b..1baec8920 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol @@ -18,4 +18,4 @@ contract C { } } // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here. +// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol index c4d124076..7222b0c85 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol @@ -24,6 +24,6 @@ contract C { } } // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here. -// Warning 6328: (298-315): CHC: Assertion violation happens here. -// Warning 6328: (424-443): CHC: Assertion violation happens here. +// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (298-315): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (424-443): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 31eaf90d6..a04d3997f 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_2.sol @@ -14,4 +14,4 @@ contract C { } } // ---- -// Warning 6328: (180-198): CHC: Assertion violation happens here. +// Warning 6328: (180-198): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 709701bf6..43d77c532 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_3.sol @@ -17,5 +17,5 @@ contract C { } } // ---- -// Warning 6328: (262-309): CHC: Assertion violation happens here. -// Warning 6328: (427-470): CHC: Assertion violation happens here. +// Warning 6328: (262-309): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (427-470): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 e30e1e51e..62da8f2dc 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_fixed_bytes.sol @@ -12,4 +12,4 @@ contract C { } // ---- // Warning 6321: (83-87): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (204-221): CHC: Assertion violation happens here. +// Warning 6328: (204-221): CHC: Assertion violation happens here.\nCounterexample:\n\n\n = 0\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol index 179c5bf85..eda032cd5 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol @@ -15,4 +15,4 @@ contract C { } } // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here. +// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol index 0988fac42..60acee47c 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol @@ -24,6 +24,6 @@ contract C { } } // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here. -// Warning 6328: (298-315): CHC: Assertion violation happens here. -// Warning 6328: (422-441): CHC: Assertion violation happens here. +// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (298-315): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (422-441): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_mul.sol b/test/libsolidity/smtCheckerTests/operators/compound_mul.sol index 900a237bc..85be56da4 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_mul.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_mul.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (150-164): CHC: Assertion violation happens here. +// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol b/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol index 4dd85d7f9..29f50cb07 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (191-212): CHC: Assertion violation happens here. +// Warning 6328: (191-212): CHC: Assertion violation happens here.\nCounterexample:\narray = []\nx = 0\np = 38\n\n\nTransaction trace:\nconstructor()\nState: array = []\nf(0, 38) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol b/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol index 3495fe534..c3492d678 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (197-216): CHC: Assertion violation happens here. +// Warning 6328: (197-216): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\np = 0\n\n\nTransaction trace:\nconstructor()\nf(0, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_sub.sol b/test/libsolidity/smtCheckerTests/operators/compound_sub.sol index c4929220e..5b46b0efe 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_sub.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_sub.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (150-164): CHC: Assertion violation happens here. +// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 90\n\n\nTransaction trace:\nconstructor()\nf(90) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol b/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol index 169bb5dd5..30e43b2e8 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (191-212): CHC: Assertion violation happens here. +// Warning 6328: (191-212): CHC: Assertion violation happens here.\nCounterexample:\narray = []\nx = 90\np = 0\n\n\nTransaction trace:\nconstructor()\nState: array = []\nf(90, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol b/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol index 4215fdd12..1ab625eac 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (197-216): CHC: Assertion violation happens here. +// Warning 6328: (197-216): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 99\np = 0\n\n\nTransaction trace:\nconstructor()\nf(99, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol index 65ad1920a..752bbac21 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol @@ -7,4 +7,4 @@ contract C { } } // ---- -// Warning 6328: (104-117): CHC: Assertion violation happens here. +// Warning 6328: (104-117): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\n\n\nTransaction trace:\nconstructor()\nf(true) diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol index 3dfd6271f..f11fb9440 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol @@ -8,4 +8,4 @@ contract C { } } // ---- -// Warning 6328: (132-146): CHC: Assertion violation happens here. +// Warning 6328: (132-146): CHC: Assertion violation happens here.\nCounterexample:\n\nb = 1\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol index d4707c217..88da0e05a 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (161-174): CHC: Assertion violation happens here. +// Warning 6328: (161-174): CHC: Assertion violation happens here.\nCounterexample:\n\na = 6\nb = 5\n\n\nTransaction trace:\nconstructor()\nf(5, 5) diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol index 6b21488fd..713f407a8 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol @@ -24,4 +24,4 @@ contract C { } // ---- // Warning 2072: (282-288): Unused local variable. -// Warning 6328: (304-328): CHC: Assertion violation happens here. +// Warning 6328: (304-328): CHC: Assertion violation happens here.\nCounterexample:\na = false, x = 3, d = 0\n\n\n\nTransaction trace:\nconstructor()\nState: a = false, x = 0, d = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol index 0a6995732..c56fb5865 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol @@ -8,5 +8,5 @@ contract C { } } // ---- -// Warning 6328: (118-131): CHC: Assertion violation happens here. +// Warning 6328: (118-131): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\n\n\nTransaction trace:\nconstructor()\nf(true) // Warning 6838: (105-106): 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 1f1557058..f8e1703c8 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_1.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (203-216): CHC: Assertion violation happens here. +// Warning 6328: (203-216): CHC: Assertion violation happens here.\nCounterexample:\n\na = 6\n\n\nTransaction trace:\nconstructor()\ng(6) diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol index e10de61e8..e52f85b35 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol @@ -12,8 +12,10 @@ contract C { function h(uint a) public pure { uint c = a < 5 ? g(a) : f(a); assert(c >= 25); - assert(c < 20); + assert(c < 20); // should fail } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (378-392): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol index dd8a2bbbf..add6d0c10 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol @@ -7,4 +7,4 @@ contract C { } } // ---- -// Warning 6328: (141-154): CHC: Assertion violation happens here. +// Warning 6328: (141-154): CHC: Assertion violation happens here.\nCounterexample:\n\nb1 = false\nb2 = false\n\n\nTransaction trace:\nconstructor()\nf(false, false) diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol b/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol index b79994cc3..f481f9722 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol @@ -17,4 +17,4 @@ contract C // ==== // SMTSolvers: z3 // ---- -// Warning 6328: (191-211): CHC: Assertion violation happens here. +// Warning 6328: (191-211): CHC: Assertion violation happens here.\nCounterexample:\na = []\nb = false\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf(false) diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol b/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol index a4dd6cdf7..050d7c6a6 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol @@ -16,5 +16,5 @@ contract C { } } // ---- -// Warning 6328: (198-245): CHC: Assertion violation happens here. -// Warning 6328: (418-463): CHC: Assertion violation happens here. +// Warning 6328: (198-245): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[]]\n\n = []\n\nTransaction trace:\nconstructor()\nState: array2d = []\ns() +// Warning 6328: (418-463): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [0]]\n\n = []\n\nTransaction trace:\nconstructor()\nState: array2d = []\ns() diff --git a/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol b/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol index c59227a32..9aae7907d 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol @@ -38,5 +38,7 @@ contract C { b[x][y] = z; } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (685-705): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/div_zero.sol b/test/libsolidity/smtCheckerTests/operators/div_zero.sol index b6fb4ed19..e88756a66 100644 --- a/test/libsolidity/smtCheckerTests/operators/div_zero.sol +++ b/test/libsolidity/smtCheckerTests/operators/div_zero.sol @@ -5,4 +5,4 @@ contract C { uint x = 2 / z; } // ---- -// Warning 4281: (69-74): CHC: Division by zero happens here. +// Warning 4281: (69-74): CHC: Division by zero happens here.\nCounterexample:\nz = 0, x = 0\n\nTransaction trace:\nconstructor() diff --git a/test/libsolidity/smtCheckerTests/operators/division_1.sol b/test/libsolidity/smtCheckerTests/operators/division_1.sol index 87455a4e5..4de050c87 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_1.sol @@ -5,4 +5,4 @@ contract C { } } // ---- -// Warning 4281: (111-116): CHC: Division by zero happens here. +// Warning 4281: (111-116): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nconstructor()\nf(0, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/division_3.sol b/test/libsolidity/smtCheckerTests/operators/division_3.sol index e9d9ed5ae..034999097 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_3.sol @@ -6,4 +6,4 @@ contract C { } } // ---- -// Warning 4984: (127-132): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. +// 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:\nconstructor()\nf((- 57896044618658097711785492504343953926634992332820282019728792003956564819968), (- 1)) diff --git a/test/libsolidity/smtCheckerTests/operators/exp.sol b/test/libsolidity/smtCheckerTests/operators/exp.sol index 3070f9649..9c7235296 100644 --- a/test/libsolidity/smtCheckerTests/operators/exp.sol +++ b/test/libsolidity/smtCheckerTests/operators/exp.sol @@ -6,5 +6,5 @@ contract D { } // ---- // Warning 5188: (88-92): Assertion checker does not yet implement this operator. -// Warning 6328: (81-98): CHC: Assertion violation happens here. +// Warning 6328: (81-98): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(0) // Warning 5188: (88-92): Assertion checker does not yet implement this operator. diff --git a/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol b/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol index d47efe9e3..9277a5958 100644 --- a/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol +++ b/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol @@ -29,4 +29,4 @@ contract C { } } // ---- -// Warning 6328: (507-521): CHC: Assertion violation happens here. +// Warning 6328: (507-521): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ncall() diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol b/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol index 046c54b54..a08ed25ef 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (215-235): CHC: Assertion violation happens here. +// Warning 6328: (215-235): CHC: Assertion violation happens here.\nCounterexample:\n\ni = 4\n\n\nTransaction trace:\nconstructor()\nf(4) diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol b/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol index 5f9f7e94a..fe406a763 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol @@ -11,4 +11,4 @@ contract C { } } // ---- -// Warning 6328: (248-268): CHC: Assertion violation happens here. +// Warning 6328: (248-268): CHC: Assertion violation happens here.\nCounterexample:\n\ni = 3\n\n\nTransaction trace:\nconstructor()\nf(3) diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol b/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol index 26336ed82..54e3b07f5 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol @@ -12,5 +12,7 @@ contract C { assert(h()[2] == 3); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (191-210): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol index 4c6708398..e89c1b5c7 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol @@ -11,6 +11,8 @@ contract C { assert(x == 10); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 4984: (109-116): CHC: Overflow (resulting value larger than 65535) happens here. // Warning 6328: (193-208): 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 864cbcc00..da4f36bf6 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_larger_type.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_larger_type.sol @@ -11,4 +11,4 @@ contract C { } } // ---- -// Warning 6328: (171-191): CHC: Assertion violation happens here. +// Warning 6328: (171-191): CHC: Assertion violation happens here.\nCounterexample:\n\n\n = 0\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add.sol b/test/libsolidity/smtCheckerTests/operators/unary_add.sol index daa8c793c..eef32e9d1 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add.sol @@ -14,4 +14,4 @@ contract C } } // ---- -// Warning 6328: (194-207): CHC: Assertion violation happens here. +// Warning 6328: (194-207): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol index 401e4af62..d2685dc4b 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol @@ -15,4 +15,4 @@ contract C } } // ---- -// Warning 6328: (240-253): CHC: Assertion violation happens here. +// Warning 6328: (240-253): CHC: Assertion violation happens here.\nCounterexample:\narray = []\nx = 38\n\n\nTransaction trace:\nconstructor()\nState: array = []\nf(38) diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol index 38dcb98b7..d4950a9b5 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol @@ -15,4 +15,4 @@ contract C } } // ---- -// Warning 6328: (244-257): CHC: Assertion violation happens here. +// Warning 6328: (244-257): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\n\n\nTransaction trace:\nconstructor()\nf(38) diff --git a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol index a71e0aaf3..e3ed7a178 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (140-150): CHC: Assertion violation happens here. +// Warning 6328: (140-150): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\n\n\nTransaction trace:\nconstructor()\nf(true) diff --git a/test/libsolidity/smtCheckerTests/operators/unary_sub.sol b/test/libsolidity/smtCheckerTests/operators/unary_sub.sol index ee2bffc2c..d15aaf845 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_sub.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_sub.sol @@ -14,4 +14,4 @@ contract C } } // ---- -// Warning 6328: (194-207): CHC: Assertion violation happens here. +// Warning 6328: (194-207): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol b/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol index b16168223..008b7c117 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol @@ -15,4 +15,4 @@ contract C } } // ---- -// Warning 6328: (240-253): CHC: Assertion violation happens here. +// Warning 6328: (240-253): CHC: Assertion violation happens here.\nCounterexample:\narray = []\nx = 38\n\n\nTransaction trace:\nconstructor()\nState: array = []\nf(38) diff --git a/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol b/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol index e7eedc11f..d02e2ea19 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol @@ -15,4 +15,4 @@ contract C } } // ---- -// Warning 6328: (244-257): CHC: Assertion violation happens here. +// Warning 6328: (244-257): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\n\n\nTransaction trace:\nconstructor()\nf(38) diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol index 69f807a5d..f27ffa889 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol @@ -13,5 +13,5 @@ contract C } } // ---- -// Warning 4984: (120-125): CHC: Overflow (resulting value larger than 255) happens here. -// Warning 4984: (163-168): CHC: Overflow (resulting value larger than 255) happens here. +// Warning 4984: (120-125): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 100\n = 0\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 4984: (163-168): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 128\n = 0\n\nTransaction trace:\nconstructor()\nf(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 24119ade2..d2452f7ce 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_cex_with_array.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_cex_with_array.sol @@ -7,4 +7,4 @@ contract C { } } // ---- -// Warning 4984: (118-121): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (118-121): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\ny = 23158417847463239084714197001737581570653996933128112807891516801582625927988\n\n\nTransaction trace:\nconstructor()\nf(x, 23158417847463239084714197001737581570653996933128112807891516801582625927988) diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol index 9b2ef0a08..2c02bbed9 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol @@ -12,5 +12,5 @@ contract C } } // ---- -// Warning 4984: (117-122): CHC: Overflow (resulting value larger than 127) happens here. -// Warning 4984: (150-157): CHC: Overflow (resulting value larger than 127) happens here. +// Warning 4984: (117-122): CHC: Overflow (resulting value larger than 127) happens here.\nCounterexample:\n\nx = 100\n = 0\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 4984: (150-157): CHC: Overflow (resulting value larger than 127) happens here.\nCounterexample:\n\nx = 100\n = 0\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol index 594eabcde..78ff0c137 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol @@ -14,6 +14,6 @@ contract C } } // ---- -// Warning 4984: (109-116): CHC: Overflow (resulting value larger than 255) happens here. -// Warning 4984: (154-159): CHC: Overflow (resulting value larger than 255) happens here. -// Warning 4984: (185-192): CHC: Overflow (resulting value larger than 255) happens here. +// Warning 4984: (109-116): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 1\n = 0\n\nTransaction trace:\nconstructor()\nf(1) +// Warning 4984: (154-159): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 255\n = 0\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 4984: (185-192): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 255\n = 0\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol index 8b4e2f380..bee06174d 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol @@ -15,6 +15,6 @@ contract C } // ---- // 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 4984: (117-122): CHC: Overflow (resulting value larger than 127) happens here. -// Warning 4984: (151-158): CHC: Overflow (resulting value larger than 127) happens here. -// Warning 3944: (197-205): CHC: Underflow (resulting value less than -128) happens here. +// Warning 4984: (117-122): CHC: Overflow (resulting value larger than 127) happens here.\nCounterexample:\n\nx = 127\n = 0\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 4984: (151-158): CHC: Overflow (resulting value larger than 127) happens here.\nCounterexample:\n\nx = 127\n = 0\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 3944: (197-205): CHC: Underflow (resulting value less than -128) happens here.\nCounterexample:\n\nx = (- 127)\n = 0\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/safe_add_1.sol b/test/libsolidity/smtCheckerTests/overflow/safe_add_1.sol index 8a521db60..df071a9c1 100644 --- a/test/libsolidity/smtCheckerTests/overflow/safe_add_1.sol +++ b/test/libsolidity/smtCheckerTests/overflow/safe_add_1.sol @@ -8,4 +8,4 @@ contract C } } // ---- -// Warning 4984: (115-120): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (115-120): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 1\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n = 0\n\nTransaction trace:\nconstructor()\nadd(1, 115792089237316195423570985008687907853269984665640564039457584007913129639935) diff --git a/test/libsolidity/smtCheckerTests/overflow/safe_add_2.sol b/test/libsolidity/smtCheckerTests/overflow/safe_add_2.sol index c33f7d8da..98951f488 100644 --- a/test/libsolidity/smtCheckerTests/overflow/safe_add_2.sol +++ b/test/libsolidity/smtCheckerTests/overflow/safe_add_2.sol @@ -9,4 +9,4 @@ contract C } } // ---- -// Warning 4984: (116-121): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (116-121): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 1\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n = 0\n\nTransaction trace:\nconstructor()\nadd(1, 115792089237316195423570985008687907853269984665640564039457584007913129639935) diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol index 77d9a4847..fb67403e4 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol @@ -6,5 +6,5 @@ contract C { } } // ---- -// Warning 4281: (110-115): CHC: Division by zero happens here. +// Warning 4281: (110-115): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nconstructor()\nf(0, 0) // Warning 4984: (110-115): 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 380ccb71a..a13d2db3d 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_guard_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_guard_sub_overflow.sol @@ -7,4 +7,4 @@ contract C { } } // ---- -// Warning 4984: (129-134): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. +// 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:\nconstructor()\nf(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 40c064e9e..d4dede3af 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_guard_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_guard_sum_overflow.sol @@ -7,6 +7,6 @@ contract C { } } // ---- -// 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: (133-138): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. +// Warning 3944: (111-116): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here.\nCounterexample:\n\nx = (- 1)\ny = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n = 0\n\nTransaction trace:\nconstructor()\nf((- 1), (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)) +// Warning 4984: (111-116): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = 1\ny = 57896044618658097711785492504343953926634992332820282019728792003956564819967\n = 0\n\nTransaction trace:\nconstructor()\nf(1, 57896044618658097711785492504343953926634992332820282019728792003956564819967) +// Warning 3944: (133-138): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here.\nCounterexample:\n\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\ny = (- 1)\n = 0\n\nTransaction trace:\nconstructor()\nf((- 57896044618658097711785492504343953926634992332820282019728792003956564819968), (- 1)) diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol index 7cb939586..b14730966 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol @@ -6,4 +6,4 @@ contract C { } } // ---- -// Warning 4281: (110-115): CHC: Division by zero happens here. +// Warning 4281: (110-115): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nconstructor()\nf(0, 0) diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol index fc9b41d1b..ff91b206d 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol @@ -6,5 +6,5 @@ contract C { } } // ---- -// 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: (110-115): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here.\nCounterexample:\n\nx = (- 3)\ny = 19298681539552699237261830834781317975544997444273427339909597334652188273323\n = 0\n\nTransaction trace:\nconstructor()\nf((- 3), 19298681539552699237261830834781317975544997444273427339909597334652188273323) +// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = (- 1)\ny = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n = 0\n\nTransaction trace:\nconstructor()\nf((- 1), (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)) diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol index 2b34c15e4..945a620b6 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol @@ -6,5 +6,5 @@ contract C { } } // ---- -// 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: (110-115): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here.\nCounterexample:\n\nx = (- 2)\ny = 57896044618658097711785492504343953926634992332820282019728792003956564819967\n = 0\n\nTransaction trace:\nconstructor()\nf((- 2), 57896044618658097711785492504343953926634992332820282019728792003956564819967) +// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = 0\ny = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n = 0\n\nTransaction trace:\nconstructor()\nf(0, (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)) diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol index 19fcbc999..f9492549f 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol @@ -6,5 +6,5 @@ contract C { } } // ---- -// 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: (110-115): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here.\nCounterexample:\n\nx = (- 1)\ny = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n = 0\n\nTransaction trace:\nconstructor()\nf((- 1), (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)) +// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = 1\ny = 57896044618658097711785492504343953926634992332820282019728792003956564819967\n = 0\n\nTransaction trace:\nconstructor()\nf(1, 57896044618658097711785492504343953926634992332820282019728792003956564819967) diff --git a/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol index 5507cc098..7e5f88a79 100644 --- a/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol @@ -3,4 +3,4 @@ contract C { function f(uint a, uint b) public pure returns (uint) { return a + b; } } // ---- -// Warning 4984: (112-117): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// 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:\nconstructor()\nf(1, 115792089237316195423570985008687907853269984665640564039457584007913129639935) diff --git a/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol b/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol index 5be032d92..c62097b5d 100644 --- a/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol +++ b/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol @@ -12,5 +12,5 @@ contract C } } // ---- -// Warning 3944: (117-122): CHC: Underflow (resulting value less than 0) happens here. -// Warning 3944: (150-157): CHC: Underflow (resulting value less than 0) happens here. +// Warning 3944: (117-122): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\nx = 0\n = 0\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 3944: (150-157): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\nx = 0\n = 0\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol b/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol index 50713adb4..7b14621f9 100644 --- a/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol +++ b/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol @@ -16,6 +16,6 @@ contract C } } // ---- -// Warning 3944: (116-123): CHC: Underflow (resulting value less than -128) happens here. -// Warning 3944: (163-170): CHC: Underflow (resulting value less than -128) happens here. -// Warning 4984: (207-217): CHC: Overflow (resulting value larger than 127) happens here. +// Warning 3944: (116-123): CHC: Underflow (resulting value less than -128) happens here.\nCounterexample:\n\nx = (- 2)\n = 0\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 3944: (163-170): CHC: Underflow (resulting value less than -128) happens here.\nCounterexample:\n\nx = (- 128)\n = 0\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 4984: (207-217): CHC: Overflow (resulting value larger than 127) happens here.\nCounterexample:\n\nx = 127\n = 0\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol index 7005fd1b5..c8011f8e0 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol @@ -6,4 +6,4 @@ contract C { } } // ---- -// Warning 4281: (113-118): CHC: Division by zero happens here. +// Warning 4281: (113-118): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nconstructor()\nf(0, 0) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol index b6bc4d996..45e76fb89 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol @@ -7,4 +7,4 @@ contract C { } } // ---- -// Warning 4984: (114-119): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (114-119): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 1\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n = 0\n\nTransaction trace:\nconstructor()\nf(1, 115792089237316195423570985008687907853269984665640564039457584007913129639935) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol index 3019baa6f..1cfbdfebb 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol @@ -6,4 +6,4 @@ contract C { } } // ---- -// Warning 4281: (113-118): CHC: Division by zero happens here. +// Warning 4281: (113-118): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nconstructor()\nf(0, 0) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol index aa2d02d2e..7d2a0c189 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol @@ -6,4 +6,4 @@ contract C { } } // ---- -// Warning 4984: (113-118): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (113-118): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 57896044618658097711785492504343953926634992332820282019728792003956564819968\ny = 2\n = 0\n\nTransaction trace:\nconstructor()\nf(57896044618658097711785492504343953926634992332820282019728792003956564819968, 2) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol index 52e112f9d..748db3d4b 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol @@ -6,4 +6,4 @@ contract C { } } // ---- -// Warning 3944: (113-118): CHC: Underflow (resulting value less than 0) happens here. +// Warning 3944: (113-118): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\nx = 0\ny = 1\n = 0\n\nTransaction trace:\nconstructor()\nf(0, 1) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol index 58db35b5b..89801a5cf 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol @@ -6,4 +6,4 @@ contract C { } } // ---- -// Warning 4984: (113-118): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (113-118): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 1\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n = 0\n\nTransaction trace:\nconstructor()\nf(1, 115792089237316195423570985008687907853269984665640564039457584007913129639935) 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 8dccd12dc..1031aa12a 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 @@ -14,6 +14,6 @@ contract C { // Warning 2072: (178-185): Unused local variable. // Warning 4588: (133-164): Assertion checker does not yet implement this type of function call. // Warning 4588: (189-220): Assertion checker does not yet implement this type of function call. -// Warning 6328: (300-316): CHC: Assertion violation happens here. +// Warning 6328: (300-316): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // Warning 4588: (133-164): Assertion checker does not yet implement this type of function call. // Warning 4588: (189-220): Assertion checker does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol b/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol index d5ba5789f..1902fd5e5 100644 --- a/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol +++ b/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol @@ -17,8 +17,8 @@ contract C { // Warning 4588: (105-142): Assertion checker does not yet implement this type of function call. // Warning 8364: (210-211): Assertion checker does not yet implement type type(contract C) // Warning 4588: (176-213): Assertion checker does not yet implement this type of function call. -// Warning 6328: (293-309): CHC: Assertion violation happens here. -// Warning 6328: (313-329): CHC: Assertion violation happens here. +// Warning 6328: (293-309): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (313-329): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // Warning 8364: (139-140): Assertion checker does not yet implement type type(contract C) // Warning 4588: (105-142): Assertion checker does not yet implement this type of function call. // Warning 8364: (210-211): Assertion checker does not yet implement type type(contract C) diff --git a/test/libsolidity/smtCheckerTests/special/blockhash.sol b/test/libsolidity/smtCheckerTests/special/blockhash.sol index d16cb7dc2..6f67152ba 100644 --- a/test/libsolidity/smtCheckerTests/special/blockhash.sol +++ b/test/libsolidity/smtCheckerTests/special/blockhash.sol @@ -10,5 +10,5 @@ contract C } } // ---- -// Warning 6328: (85-109): CHC: Assertion violation happens here. -// Warning 6328: (113-137): CHC: Assertion violation happens here. +// Warning 6328: (85-109): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 7719\n\n\nTransaction trace:\nconstructor()\nf(7719) +// Warning 6328: (113-137): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 7719\n\n\nTransaction trace:\nconstructor()\nf(7719) diff --git a/test/libsolidity/smtCheckerTests/special/difficulty.sol b/test/libsolidity/smtCheckerTests/special/difficulty.sol index 0e925fff7..e57690835 100644 --- a/test/libsolidity/smtCheckerTests/special/difficulty.sol +++ b/test/libsolidity/smtCheckerTests/special/difficulty.sol @@ -7,4 +7,4 @@ contract C } } // ---- -// Warning 6328: (91-129): CHC: Assertion violation happens here. +// Warning 6328: (91-129): CHC: Assertion violation happens here.\nCounterexample:\n\ndifficulty = 38\n\n\nTransaction trace:\nconstructor()\nf(38) diff --git a/test/libsolidity/smtCheckerTests/special/ether_units.sol b/test/libsolidity/smtCheckerTests/special/ether_units.sol index ccb0cee20..e79704b01 100644 --- a/test/libsolidity/smtCheckerTests/special/ether_units.sol +++ b/test/libsolidity/smtCheckerTests/special/ether_units.sol @@ -10,6 +10,6 @@ contract D { } } // ---- -// Warning 6328: (121-162): CHC: Assertion violation happens here. -// Warning 6328: (202-233): CHC: Assertion violation happens here. -// Warning 6328: (275-308): CHC: Assertion violation happens here. +// Warning 6328: (121-162): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (202-233): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (275-308): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/special/event.sol b/test/libsolidity/smtCheckerTests/special/event.sol index 6fb17c22f..4b016a843 100644 --- a/test/libsolidity/smtCheckerTests/special/event.sol +++ b/test/libsolidity/smtCheckerTests/special/event.sol @@ -27,4 +27,4 @@ contract C { // ---- // 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. +// Warning 6328: (440-449): CHC: Assertion violation happens here.\nCounterexample:\nx = false\n\n\n\nTransaction trace:\nconstructor()\nState: x = true\nh() diff --git a/test/libsolidity/smtCheckerTests/special/gasleft.sol b/test/libsolidity/smtCheckerTests/special/gasleft.sol index e8da03bed..4d4b1a4c1 100644 --- a/test/libsolidity/smtCheckerTests/special/gasleft.sol +++ b/test/libsolidity/smtCheckerTests/special/gasleft.sol @@ -10,5 +10,5 @@ contract C } } // ---- -// Warning 6328: (76-97): CHC: Assertion violation happens here. -// Warning 6328: (123-144): CHC: Assertion violation happens here. +// Warning 6328: (76-97): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (123-144): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/special/log.sol b/test/libsolidity/smtCheckerTests/special/log.sol index 4dcdfc868..5cd5a3609 100644 --- a/test/libsolidity/smtCheckerTests/special/log.sol +++ b/test/libsolidity/smtCheckerTests/special/log.sol @@ -37,4 +37,4 @@ contract C { } // ---- // Warning 6321: (655-662): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (668-677): CHC: Assertion violation happens here. +// Warning 6328: (668-677): CHC: Assertion violation happens here.\nCounterexample:\nx = false\n\n\n\nTransaction trace:\nconstructor()\nState: x = true\nh() diff --git a/test/libsolidity/smtCheckerTests/special/many.sol b/test/libsolidity/smtCheckerTests/special/many.sol index 013775110..6243acff3 100644 --- a/test/libsolidity/smtCheckerTests/special/many.sol +++ b/test/libsolidity/smtCheckerTests/special/many.sol @@ -15,12 +15,12 @@ contract C } } // ---- -// 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 4984: (311-316): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (304-332): CHC: Assertion violation happens here. -// Warning 6328: (336-364): CHC: Assertion violation happens here. -// Warning 6328: (368-391): CHC: Assertion violation happens here. +// Warning 6328: (79-115): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (119-161): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (165-204): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (208-240): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (244-275): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 4984: (311-316): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (304-332): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (336-364): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (368-391): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/special/msg_data.sol b/test/libsolidity/smtCheckerTests/special/msg_data.sol index 9406404e2..026e1683b 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_data.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_data.sol @@ -22,5 +22,5 @@ contract C } } // ---- -// Warning 6328: (153-180): CHC: Assertion violation happens here. -// Warning 6328: (500-527): CHC: Assertion violation happens here. +// Warning 6328: (153-180): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (500-527): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol index 43871fb6a..9c188535c 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol @@ -10,4 +10,4 @@ contract C } } // ---- -// Warning 6328: (155-178): CHC: Assertion violation happens here. +// Warning 6328: (155-178): CHC: Assertion violation happens here.\nCounterexample:\n\nc = 39\n\n\nTransaction trace:\nconstructor()\nf(39) diff --git a/test/libsolidity/smtCheckerTests/special/msg_sig.sol b/test/libsolidity/smtCheckerTests/special/msg_sig.sol index a367049fa..7602480dd 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sig.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sig.sol @@ -25,6 +25,6 @@ contract C } } // ---- -// Warning 6328: (76-105): CHC: Assertion violation happens here. -// Warning 6328: (403-432): CHC: Assertion violation happens here. -// Warning 6328: (543-572): CHC: Assertion violation happens here. +// Warning 6328: (76-105): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (403-432): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (543-572): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nh() diff --git a/test/libsolidity/smtCheckerTests/special/this.sol b/test/libsolidity/smtCheckerTests/special/this.sol index 06e47f661..647a3d7f7 100644 --- a/test/libsolidity/smtCheckerTests/special/this.sol +++ b/test/libsolidity/smtCheckerTests/special/this.sol @@ -7,4 +7,4 @@ contract C } } // ---- -// Warning 6328: (85-111): CHC: Assertion violation happens here. +// Warning 6328: (85-111): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/special/time_units.sol b/test/libsolidity/smtCheckerTests/special/time_units.sol index 59bb004b9..5b89ffca1 100644 --- a/test/libsolidity/smtCheckerTests/special/time_units.sol +++ b/test/libsolidity/smtCheckerTests/special/time_units.sol @@ -14,8 +14,8 @@ contract D { } } // ---- -// Warning 6328: (101-123): CHC: Assertion violation happens here. -// Warning 6328: (163-195): CHC: Assertion violation happens here. -// Warning 6328: (233-263): CHC: Assertion violation happens here. -// Warning 6328: (297-323): CHC: Assertion violation happens here. -// Warning 6328: (357-384): CHC: Assertion violation happens here. +// Warning 6328: (101-123): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (163-195): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (233-263): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (297-323): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (357-384): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol b/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol index 11d1940a7..0f3c7a3be 100644 --- a/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol +++ b/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol @@ -17,5 +17,5 @@ contract C { } } // ---- -// Warning 6328: (124-150): CHC: Assertion violation happens here. -// Warning 6328: (219-245): CHC: Assertion violation happens here. +// Warning 6328: (124-150): CHC: Assertion violation happens here.\nCounterexample:\ngleft = 1\n\n\n\nTransaction trace:\nconstructor()\nState: gleft = 0\nf() +// Warning 6328: (219-245): CHC: Assertion violation happens here.\nCounterexample:\ngleft = 1\n\n\n\nTransaction trace:\nconstructor()\nState: gleft = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol b/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol index 3a5b820a0..5033f6a7b 100644 --- a/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol +++ b/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol @@ -59,6 +59,8 @@ contract C { assert(origin != tx.origin); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (545-576): CHC: Assertion violation happens here. // Warning 6328: (580-610): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/typecast/address_literal.sol b/test/libsolidity/smtCheckerTests/typecast/address_literal.sol index e6206f50f..a833af284 100644 --- a/test/libsolidity/smtCheckerTests/typecast/address_literal.sol +++ b/test/libsolidity/smtCheckerTests/typecast/address_literal.sol @@ -22,4 +22,4 @@ contract C { } } // ---- -// Warning 6328: (487-501): CHC: Assertion violation happens here. +// Warning 6328: (487-501): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0\ng() diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol b/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol index 738caf10a..a98687a4d 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol @@ -9,4 +9,4 @@ contract C } } // ---- -// Warning 6328: (149-163): CHC: Assertion violation happens here. +// Warning 6328: (149-163): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol b/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol index ba109aba2..626730f1f 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (273-287): CHC: Assertion violation happens here. +// Warning 6328: (273-287): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 666574d90..93e07ff6d 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 @@ -5,4 +5,4 @@ contract C { } } // ---- -// Warning 6328: (155-175): CHC: Assertion violation happens here. +// Warning 6328: (155-175): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\nh = 0\n\n\nTransaction trace:\nconstructor()\nf(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 21982c20e..d75594fb3 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 @@ -15,8 +15,8 @@ contract C { // 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. -// Warning 6328: (231-245): CHC: Assertion violation happens here. +// Warning 6328: (207-227): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\n\n\nTransaction trace:\nconstructor()\nState: a = 0, b = 0\ng() +// Warning 6328: (231-245): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\n\n\nTransaction trace:\nconstructor()\nState: a = 0, b = 0\ng() // 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 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 382078ea3..66e4020ed 100644 --- a/test/libsolidity/smtCheckerTests/typecast/implicit_cast_string_literal_byte.sol +++ b/test/libsolidity/smtCheckerTests/typecast/implicit_cast_string_literal_byte.sol @@ -13,4 +13,4 @@ contract C { function g(byte b) internal pure {} } // ---- -// Warning 6328: (182-203): CHC: Assertion violation happens here. +// Warning 6328: (182-203): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 89306a0d1..009461c92 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_dynamic_bytes.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_dynamic_bytes.sol @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (204-236): CHC: Assertion violation happens here. +// Warning 6328: (204-236): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 8e1de8b9a..88b5154be 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 @@ -9,5 +9,5 @@ contract B { } } // ---- -// Warning 6328: (162-184): CHC: Assertion violation happens here. -// Warning 6328: (136-158): CHC: Assertion violation happens here. +// Warning 6328: (162-184): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (136-158): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\n\nTransaction trace:\nconstructor()\ng(0) 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 e9f40fe61..73ade5009 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 @@ -8,4 +8,4 @@ contract B { } } // ---- -// Warning 6328: (152-174): CHC: Assertion violation happens here. +// Warning 6328: (152-174): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 ca9028e66..60276c54f 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 @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (238-259): CHC: Assertion violation happens here. +// Warning 6328: (238-259): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\na() 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 28f41d183..2e06f960c 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 @@ -12,4 +12,4 @@ contract C { } } // ---- -// Warning 6328: (442-461): CHC: Assertion violation happens here. +// Warning 6328: (442-461): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\na() 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 c69479302..881c9fb46 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 @@ -7,4 +7,4 @@ contract C { } } // ---- -// Warning 6328: (76-126): CHC: Assertion violation happens here. +// Warning 6328: (76-126): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/types/address_balance.sol b/test/libsolidity/smtCheckerTests/types/address_balance.sol index 375a47e94..21158f129 100644 --- a/test/libsolidity/smtCheckerTests/types/address_balance.sol +++ b/test/libsolidity/smtCheckerTests/types/address_balance.sol @@ -9,5 +9,5 @@ contract C } // ---- // Warning 2072: (96-102): Unused local variable. -// Warning 4984: (105-127): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (131-160): CHC: Assertion violation happens here. +// Warning 4984: (105-127): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\na = 0\nb = 0\n\n\nTransaction trace:\nconstructor()\nf(0, 0) +// Warning 6328: (131-160): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\nb = 0\n\n\nTransaction trace:\nconstructor()\nf(0, 0) diff --git a/test/libsolidity/smtCheckerTests/types/address_call.sol b/test/libsolidity/smtCheckerTests/types/address_call.sol index a8134b397..9bcbd1f02 100644 --- a/test/libsolidity/smtCheckerTests/types/address_call.sol +++ b/test/libsolidity/smtCheckerTests/types/address_call.sol @@ -19,7 +19,7 @@ contract C // EVMVersion: >spuriousDragon // ---- // Warning 2072: (224-240): Unused local variable. -// 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 6328: (260-275): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\na = 0\ndata = []\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0, []) +// Warning 6328: (279-293): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 0\ndata = []\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0, []) +// Warning 6328: (297-316): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 0\ndata = []\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0, []) +// Warning 6328: (320-344): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 0\ndata = []\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0, []) diff --git a/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol b/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol index b9a03a3ca..2da8f1669 100644 --- a/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol +++ b/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol @@ -19,7 +19,7 @@ contract C // EVMVersion: >spuriousDragon // ---- // Warning 2072: (224-240): Unused local variable. -// 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 6328: (268-283): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\na = 0\ndata = []\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0, []) +// Warning 6328: (287-301): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 0\ndata = []\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0, []) +// Warning 6328: (305-324): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 0\ndata = []\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0, []) +// Warning 6328: (328-352): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 0\ndata = []\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0, []) diff --git a/test/libsolidity/smtCheckerTests/types/address_staticcall.sol b/test/libsolidity/smtCheckerTests/types/address_staticcall.sol index 74cd085d2..93abd09b2 100644 --- a/test/libsolidity/smtCheckerTests/types/address_staticcall.sol +++ b/test/libsolidity/smtCheckerTests/types/address_staticcall.sol @@ -19,4 +19,4 @@ contract C // EVMVersion: >spuriousDragon // ---- // Warning 2072: (224-240): Unused local variable. -// Warning 6328: (266-281): CHC: Assertion violation happens here. +// Warning 6328: (266-281): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\na = 0\ndata = [10, 10]\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0, [10, 10]) diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer.sol b/test/libsolidity/smtCheckerTests/types/address_transfer.sol index 3e735f5b5..b78768b94 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer.sol @@ -11,5 +11,5 @@ contract C } } // ---- -// Warning 6328: (195-219): CHC: Assertion violation happens here. +// Warning 6328: (195-219): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\n\n\nTransaction trace:\nconstructor()\nf(38) // Warning 1236: (131-146): 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 11bddf467..d1e64336f 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol @@ -14,6 +14,6 @@ contract C } } // ---- -// Warning 6328: (295-324): CHC: Assertion violation happens here. +// Warning 6328: (295-324): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 100\na = 7720\nb = 7719\n\n\nTransaction trace:\nconstructor()\nf(100, 7720, 7719) // Warning 1236: (217-232): BMC: Insufficient funds happens here. // Warning 1236: (236-251): 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 f32c86509..9597dfa62 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol @@ -11,6 +11,6 @@ contract C } } // ---- -// Warning 6328: (213-237): CHC: Assertion violation happens here. +// Warning 6328: (213-237): CHC: Assertion violation happens here.\nCounterexample:\n\na = 7719\nb = 7719\n\n\nTransaction trace:\nconstructor()\nf(7719, 7719) // Warning 1236: (134-149): BMC: Insufficient funds happens here. // Warning 1236: (153-169): BMC: Insufficient funds happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol index f30ab1213..85a868505 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol @@ -20,4 +20,4 @@ contract C } } // ---- -// Warning 6328: (436-453): CHC: Assertion violation happens here. +// Warning 6328: (436-453): CHC: Assertion violation happens here.\nCounterexample:\narray2d = []\nx = 0\ny = 0\nc = [38, 8, 8, 8, 8, 8, 8, 8, 8]\n\n\nTransaction trace:\nconstructor()\nState: array2d = []\ng(0, 0, [38, 8, 8, 8, 8, 8, 8, 8, 8]) diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol index b111e959f..67cb7e86f 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol @@ -22,6 +22,8 @@ contract C assert(b[0] == 1); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (524-542): CHC: Assertion violation happens here. // Warning 6328: (585-602): CHC: Assertion violation 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 2a99d1a45..e3a5c1bf9 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_4.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_4.sol @@ -19,5 +19,5 @@ contract C } } // ---- -// Warning 6328: (225-242): CHC: Assertion violation happens here. -// Warning 6328: (289-307): CHC: Assertion violation happens here. +// Warning 6328: (225-242): CHC: Assertion violation happens here.\nCounterexample:\narray = [1, 19, 19, 19, 19], array2d = []\nx = 0\ny = 0\n\n\nTransaction trace:\nconstructor()\nState: array = [], array2d = []\ng(0, 0) +// Warning 6328: (289-307): CHC: Assertion violation happens here.\nCounterexample:\narray = [1, 19, 19, 19, 19], array2d = []\nx = 0\ny = 0\n\n\nTransaction trace:\nconstructor()\nState: array = [], array2d = []\ng(0, 0) diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol index 02d3d9903..efa958d55 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol @@ -27,4 +27,4 @@ contract C } } // ---- -// Warning 6328: (572-589): CHC: Assertion violation happens here. +// Warning 6328: (572-589): CHC: Assertion violation happens here.\nCounterexample:\nb = [1, 20, 20, 20, 20], d = [], array2d = []\nx = 0\nc = [0, 9, 9, 9, 9, 9, 9, 9, 9, 9]\n\n\nTransaction trace:\nconstructor()\nState: b = [], d = [], array2d = []\ng(0, [0, 9, 9, 9, 9, 9, 9, 9, 9, 9]) diff --git a/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol b/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol index 19ce772d7..80769e6db 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol @@ -11,4 +11,4 @@ contract C } // ---- // Warning 2018: (47-148): Function state mutability can be restricted to pure -// Warning 6328: (128-144): CHC: Assertion violation happens here. +// Warning 6328: (128-144): CHC: Assertion violation happens here.\nCounterexample:\n\nb = false\nc = [0, 5, 5, 5, 5, 5]\n\n\nTransaction trace:\nconstructor()\nf(false, [38, 5, 5, 5, 5, 5]) diff --git a/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol b/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol index 95fee2568..df0b0f1cd 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (130-149): CHC: Assertion violation happens here. +// Warning 6328: (130-149): CHC: Assertion violation happens here.\nCounterexample:\nc = []\nb = false\n\n\nTransaction trace:\nconstructor()\nState: c = []\nf(false) diff --git a/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol b/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol index 3cb454014..f37deebff 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (138-160): CHC: Assertion violation happens here. +// Warning 6328: (138-160): CHC: Assertion violation happens here.\nCounterexample:\nc = []\nb = false\n\n\nTransaction trace:\nconstructor()\nState: c = []\nf(false) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol index 809d441ce..5649f5f89 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol @@ -10,4 +10,4 @@ contract C } } // ---- -// Warning 6328: (137-159): CHC: Assertion violation happens here. +// Warning 6328: (137-159): CHC: Assertion violation happens here.\nCounterexample:\narray = []\nx = 38\ny = 38\n\n\nTransaction trace:\nconstructor()\nState: array = []\nf(38, 38) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol index 8dfc22470..8ad7869e0 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (243-268): CHC: Assertion violation happens here. +// Warning 6328: (243-268): CHC: Assertion violation happens here.\nCounterexample:\narray = []\nx = 38\ny = 7719\nz = 38\nt = 7719\n\n\nTransaction trace:\nconstructor()\nState: array = []\nf(38, 7719, 38, 7719) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol index 525c32584..007ef73fd 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (274-302): CHC: Assertion violation happens here. +// Warning 6328: (274-302): CHC: Assertion violation happens here.\nCounterexample:\narray = []\nx = 21238\ny = 38\nz = 7719\nt = 21238\nw = 38\nv = 7719\n\n\nTransaction trace:\nconstructor()\nState: array = []\nf(21238, 38, 7719, 21238, 38, 7719) 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 01f153d67..69a78e925 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1_fail.sol @@ -9,4 +9,4 @@ contract C } } // ---- -// Warning 6328: (148-170): CHC: Assertion violation happens here. +// Warning 6328: (148-170): CHC: Assertion violation happens here.\nCounterexample:\n\narray = [15, 15, 15, 15, 15]\nx = 38\ny = 38\n\n\nTransaction trace:\nconstructor()\nf([15, 15, 15, 15, 15], 38, 38) diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_2.sol b/test/libsolidity/smtCheckerTests/types/array_literal_2.sol index 8e5915f35..c13dfb13d 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_2.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (200-220): CHC: Assertion violation happens here. +// Warning 6328: (200-220): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_3.sol b/test/libsolidity/smtCheckerTests/types/array_literal_3.sol index 6d25027b7..c6719f8f6 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_3.sol @@ -10,4 +10,4 @@ contract C } } // ---- -// Warning 6328: (201-221): CHC: Assertion violation happens here. +// Warning 6328: (201-221): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_5.sol b/test/libsolidity/smtCheckerTests/types/array_literal_5.sol index c0017d14a..d0b9fea27 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_5.sol @@ -13,4 +13,4 @@ contract C } } // ---- -// Warning 6328: (209-229): CHC: Assertion violation happens here. +// Warning 6328: (209-229): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\n\n\n\nTransaction trace:\nconstructor()\nState: s = []\nf() diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_6.sol b/test/libsolidity/smtCheckerTests/types/array_literal_6.sol index bbcdff3dd..d7cec8f16 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_6.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_6.sol @@ -14,5 +14,5 @@ contract C } } // ---- -// Warning 6328: (179-207): CHC: Assertion violation happens here. -// Warning 6328: (268-288): CHC: Assertion violation happens here. +// Warning 6328: (179-207): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (268-288): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_7.sol b/test/libsolidity/smtCheckerTests/types/array_literal_7.sol index 964c265b0..45841b670 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_7.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_7.sol @@ -19,5 +19,5 @@ contract C } } // ---- -// Warning 6328: (259-287): CHC: Assertion violation happens here. -// Warning 6328: (348-368): CHC: Assertion violation happens here. +// Warning 6328: (259-287): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\n\n\n\nTransaction trace:\nconstructor()\nState: s = []\nf() +// Warning 6328: (348-368): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\n\n\n\nTransaction trace:\nconstructor()\nState: s = []\nf() diff --git a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol index 139d1814e..82cfd36ae 100644 --- a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol @@ -24,4 +24,4 @@ contract C } } // ---- -// Warning 6328: (421-452): CHC: Assertion violation happens here. +// Warning 6328: (421-452): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\n\n\nTransaction trace:\nconstructor()\ng(38) diff --git a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol index 8603a54b7..024a44fa6 100644 --- a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol @@ -25,5 +25,7 @@ contract C f(severalMaps[x]); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (777-797): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol b/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol index 6a43c5801..4ce55c264 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol @@ -10,4 +10,4 @@ contract C } } // ---- -// Warning 6328: (139-161): CHC: Assertion violation happens here. +// Warning 6328: (139-161): CHC: Assertion violation happens here.\nCounterexample:\narray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\nx = 38\ny = 38\n\n\nTransaction trace:\nconstructor()\nState: array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\nf(38, 38) diff --git a/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol b/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol index b19d9b07f..6251935b6 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol @@ -10,4 +10,4 @@ contract C } } // ---- -// Warning 6328: (186-211): CHC: Assertion violation happens here. +// Warning 6328: (186-211): 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 = 38\ny = 7719\nz = 38\nt = 7719\n\n\nTransaction trace:\nconstructor()\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]]\nf(38, 7719, 38, 7719) diff --git a/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol b/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol index fff407a48..9749fc63b 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (280-308): CHC: Assertion violation happens here. +// Warning 6328: (280-308): 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, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]]\nx = 21238\ny = 38\nz = 7719\nt = 21238\nw = 38\nv = 7719\n\n\nTransaction trace:\nconstructor()\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]]]\nf(21238, 38, 7719, 21238, 38, 7719) 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 068c36b11..60d9979dc 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_aliasing_storage_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_aliasing_storage_5.sol @@ -20,5 +20,7 @@ contract C else f(b2, c); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (338-355): CHC: Assertion violation 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 9852ce43e..899b72fbc 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_1.sol @@ -24,4 +24,4 @@ contract C } } // ---- -// Warning 6328: (425-456): CHC: Assertion violation happens here. +// Warning 6328: (425-456): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\n\n\nTransaction trace:\nconstructor()\ng(38) 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 94dee80ee..b1a5c7532 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_2.sol @@ -27,4 +27,4 @@ contract C } } // ---- -// Warning 6328: (830-850): CHC: Assertion violation happens here. +// Warning 6328: (830-850): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\ng(0) diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol index 2716acd28..2443f09af 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol @@ -5,4 +5,4 @@ contract C { } } // ---- -// Warning 6328: (90-99): CHC: Assertion violation happens here. +// Warning 6328: (90-99): CHC: Assertion violation happens here.\nCounterexample:\n\nx = false\n\n\nTransaction trace:\nconstructor()\nf(false) diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol index 0632acc6c..8ef22c7e2 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol @@ -5,4 +5,4 @@ contract C { } } // ---- -// Warning 6328: (98-112): CHC: Assertion violation happens here. +// Warning 6328: (98-112): CHC: Assertion violation happens here.\nCounterexample:\n\nx = true\ny = false\n\n\nTransaction trace:\nconstructor()\nf(true, false) diff --git a/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol b/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol index b32d21d22..0e3e1160e 100644 --- a/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol @@ -8,4 +8,4 @@ contract C } } // ---- -// Warning 6328: (119-141): CHC: Assertion violation happens here. +// Warning 6328: (119-141): CHC: Assertion violation happens here.\nCounterexample:\n\nb1 = [28958, 28957, 28958, 28958, 28958]\nb2 = [28958, 28957, 28958, 28958, 28958]\n\n\nTransaction trace:\nconstructor()\nf([], [28958, 28957, 28958, 28958, 28958]) diff --git a/test/libsolidity/smtCheckerTests/types/contract.sol b/test/libsolidity/smtCheckerTests/types/contract.sol index bd6b33698..6a489d479 100644 --- a/test/libsolidity/smtCheckerTests/types/contract.sol +++ b/test/libsolidity/smtCheckerTests/types/contract.sol @@ -7,4 +7,4 @@ contract C } } // ---- -// Warning 6328: (84-98): CHC: Assertion violation happens here. +// Warning 6328: (84-98): CHC: Assertion violation happens here.\nCounterexample:\n\nc = 0\nd = 1\n\n\nTransaction trace:\nconstructor()\nf(0, 1) diff --git a/test/libsolidity/smtCheckerTests/types/contract_2.sol b/test/libsolidity/smtCheckerTests/types/contract_2.sol index 8667576b9..285dfff04 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_2.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_2.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (109-123): CHC: Assertion violation happens here. +// Warning 6328: (109-123): CHC: Assertion violation happens here.\nCounterexample:\n\nc = 0\nd = 1\n\n\nTransaction trace:\nconstructor()\nf(0, 1) diff --git a/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol b/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol index 33fb94240..db981653d 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol @@ -7,4 +7,4 @@ contract C } } // ---- -// Warning 6328: (90-113): CHC: Assertion violation happens here. +// Warning 6328: (90-113): CHC: Assertion violation happens here.\nCounterexample:\n\nc = 0\na = 1\n\n\nTransaction trace:\nconstructor()\nf(0, 1) diff --git a/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol b/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol index a4ed90219..d35e89374 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (144-159): CHC: Assertion violation happens here. +// Warning 6328: (144-159): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n_a = 0\n\n\nTransaction trace:\nconstructor()\nState: d = 0\nf(0) diff --git a/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol b/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol index 17b54c364..a8b8902ad 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol @@ -14,4 +14,4 @@ contract C } } // ---- -// Warning 6328: (159-179): CHC: Assertion violation happens here. +// Warning 6328: (159-179): CHC: Assertion violation happens here.\nCounterexample:\n\n_d = 1\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol b/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol index 42c10f513..abca71ce2 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol @@ -10,4 +10,4 @@ contract C } } // ---- -// Warning 6328: (115-130): CHC: Assertion violation happens here. +// Warning 6328: (115-130): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n_d = 0\n\n\nTransaction trace:\nconstructor()\nState: d = 0\nf(0) diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol index a75a5478b..69285d112 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol @@ -12,5 +12,5 @@ contract C } } // ---- -// Warning 6328: (96-110): CHC: Assertion violation happens here. -// Warning 6328: (114-130): CHC: Assertion violation happens here. +// Warning 6328: (96-110): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0) +// Warning 6328: (114-130): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0) diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol index 40f4c1bdb..e6fbdc156 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol @@ -12,4 +12,4 @@ contract C } } // ---- -// Warning 6328: (116-130): CHC: Assertion violation happens here. +// Warning 6328: (116-130): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\n\nTransaction trace:\nconstructor()\nState: x = 0\nf(0) diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol index add65c141..264b92a7b 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol @@ -6,4 +6,4 @@ contract C { } } // ---- -// Warning 4281: (117-120): CHC: Division by zero happens here. +// Warning 4281: (117-120): CHC: Division by zero happens here.\nCounterexample:\n\nx = [7, 7]\ny = 0\n\n\nTransaction trace:\nconstructor()\nf([7, 7], 0) diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol index 55fa57136..b5a8c2d4d 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol @@ -12,4 +12,4 @@ contract C { } } // ---- -// Warning 6328: (260-281): CHC: Assertion violation happens here. +// Warning 6328: (260-281): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol index 595072a75..ac5137439 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol @@ -11,6 +11,6 @@ contract C { } } // ---- -// Warning 6328: (118-135): CHC: Assertion violation happens here. -// Warning 6328: (169-186): CHC: Assertion violation happens here. -// Warning 6328: (199-216): CHC: Assertion violation happens here. +// Warning 6328: (118-135): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (169-186): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (199-216): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol index 6ddff6088..750c7fb6c 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol @@ -11,6 +11,6 @@ contract C { } } // ---- -// Warning 6328: (125-145): CHC: Assertion violation happens here. -// Warning 6328: (158-175): CHC: Assertion violation happens here. -// Warning 6328: (179-196): CHC: Assertion violation happens here. +// Warning 6328: (125-145): CHC: Assertion violation happens here.\nCounterexample:\n\ni = 4\n\n\nTransaction trace:\nconstructor()\nf(4) +// Warning 6328: (158-175): CHC: Assertion violation happens here.\nCounterexample:\n\ni = 5\n\n\nTransaction trace:\nconstructor()\nf(4) +// Warning 6328: (179-196): CHC: Assertion violation happens here.\nCounterexample:\n\ni = 5\n\n\nTransaction trace:\nconstructor()\nf(4) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol b/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol index fa0dabd9f..29e861862 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol @@ -10,4 +10,4 @@ contract C } } // ---- -// Warning 6328: (134-153): CHC: Assertion violation happens here. +// Warning 6328: (134-153): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\n\n\nTransaction trace:\nconstructor()\nf(3) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_2.sol b/test/libsolidity/smtCheckerTests/types/mapping_2.sol index b664d5ffd..9d663945f 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_2.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_2.sol @@ -8,4 +8,4 @@ contract C } } // ---- -// Warning 6328: (111-130): CHC: Assertion violation happens here. +// Warning 6328: (111-130): CHC: Assertion violation happens here.\nCounterexample:\n\nx = false\n\n\nTransaction trace:\nconstructor()\nf(false) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol b/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol index 7effc7bb5..39c61a014 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol @@ -10,4 +10,4 @@ contract C } } // ---- -// Warning 6328: (154-178): CHC: Assertion violation happens here. +// Warning 6328: (154-178): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 41\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol b/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol index 71f0c5d4c..dfff57fdf 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol @@ -10,4 +10,4 @@ contract C } } // ---- -// Warning 6328: (176-204): CHC: Assertion violation happens here. +// Warning 6328: (176-204): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 41\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_5.sol b/test/libsolidity/smtCheckerTests/types/mapping_5.sol index 60b26b50a..b2337ddd1 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_5.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_5.sol @@ -8,4 +8,4 @@ contract C } } // ---- -// Warning 6328: (125-144): CHC: Assertion violation happens here. +// Warning 6328: (125-144): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(38, 0) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol index c747508d5..5893f10ac 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol @@ -16,4 +16,4 @@ contract C } } // ---- -// Warning 6328: (266-286): CHC: Assertion violation happens here. +// Warning 6328: (266-286): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\n\nTransaction trace:\nconstructor()\nf(0) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol index c0a32bf03..e13b2fd5b 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol @@ -31,5 +31,5 @@ contract C } } // ---- -// Warning 6328: (397-417): CHC: Assertion violation happens here. -// Warning 6328: (463-481): CHC: Assertion violation happens here. +// Warning 6328: (397-417): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\nx = 0\ny = 0\n\n\nTransaction trace:\nconstructor()\ng(true, 0, 0) +// Warning 6328: (463-481): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\nx = 0\ny = 0\n\n\nTransaction trace:\nconstructor()\ng(true, 0, 0) 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 c256ace86..c0531fe1a 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol @@ -16,5 +16,5 @@ contract c { } } // ---- -// Warning 6328: (288-324): CHC: Assertion violation happens here. -// Warning 6328: (336-372): CHC: Assertion violation happens here. +// Warning 6328: (288-324): CHC: Assertion violation happens here.\nCounterexample:\n\ncond = true\n\n\nTransaction trace:\nconstructor()\nf(true) +// Warning 6328: (336-372): CHC: Assertion violation happens here.\nCounterexample:\n\ncond = false\n\n\nTransaction trace:\nconstructor()\nf(false) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol index 79c37029e..18b7efb43 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol @@ -12,4 +12,4 @@ contract c { } } // ---- -// Warning 6328: (289-306): CHC: Assertion violation happens here. +// Warning 6328: (289-306): CHC: Assertion violation happens here.\nCounterexample:\n\na = 7719\nb = 38\n\n\nTransaction trace:\nconstructor()\ng(7719, 38) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol b/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol index 6ed23ca39..be5e034e9 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol @@ -9,4 +9,4 @@ contract C } } // ---- -// Warning 6328: (119-133): CHC: Assertion violation happens here. +// Warning 6328: (119-133): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 1\n\n\nTransaction trace:\nconstructor()\nf(0, 1) diff --git a/test/libsolidity/smtCheckerTests/types/rational_large_1.sol b/test/libsolidity/smtCheckerTests/types/rational_large_1.sol index 242695bc2..ef7d32b3c 100644 --- a/test/libsolidity/smtCheckerTests/types/rational_large_1.sol +++ b/test/libsolidity/smtCheckerTests/types/rational_large_1.sol @@ -8,4 +8,4 @@ contract c { } // ---- // 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. +// Warning 6328: (128-142): CHC: Assertion violation happens here.\nCounterexample:\n\n\n = 0\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol index 46dadd813..e6c683b16 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol @@ -19,4 +19,4 @@ contract C } } // ---- -// Warning 6328: (362-421): CHC: Assertion violation happens here. +// Warning 6328: (362-421): CHC: Assertion violation happens here.\nCounterexample:\na = 512, b = false, c = 0\nx = 1\n\n\nTransaction trace:\nconstructor()\nState: a = 0, b = false, c = 0\nf(1) diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol index ecb500698..1790ccc95 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol @@ -9,4 +9,4 @@ contract C } } // ---- -// Warning 6328: (123-136): CHC: Assertion violation happens here. +// Warning 6328: (123-136): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = false, c = 0\n\n\n\nTransaction trace:\nconstructor()\nState: a = 0, b = false, c = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol index a9aac3b33..d709b7244 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol @@ -7,4 +7,4 @@ contract C uint c; } // ---- -// Warning 6328: (84-97): CHC: Assertion violation happens here. +// Warning 6328: (84-97): CHC: Assertion violation happens here.\nCounterexample:\nc = 0\n\n\n\nTransaction trace:\nconstructor()\nState: c = 0\nf() diff --git a/test/libsolidity/smtCheckerTests/types/string_1.sol b/test/libsolidity/smtCheckerTests/types/string_1.sol index f5c6d48db..efe8fd269 100644 --- a/test/libsolidity/smtCheckerTests/types/string_1.sol +++ b/test/libsolidity/smtCheckerTests/types/string_1.sol @@ -7,4 +7,4 @@ contract C } } // ---- -// Warning 6328: (110-154): CHC: Assertion violation happens here. +// Warning 6328: (110-154): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf(s1, s2) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol index b6020c7f7..ae127808e 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (175-190): CHC: Assertion violation happens here. +// Warning 6328: (175-190): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\n\nTransaction trace:\nconstructor()\nf(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol index 8a5578a56..fe6cf0840 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol @@ -9,4 +9,4 @@ contract C { } } // ---- -// Warning 6328: (176-191): CHC: Assertion violation happens here. +// Warning 6328: (176-191): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\n\nTransaction trace:\nconstructor()\nf(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol index 5a1212a34..1bc96e33a 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol @@ -11,4 +11,4 @@ contract C { } } // ---- -// Warning 6328: (186-201): CHC: Assertion violation happens here. +// Warning 6328: (186-201): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\n\nTransaction trace:\nconstructor()\nf(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol index 5add77d6a..e23df76fb 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol @@ -15,4 +15,4 @@ contract C { } } // ---- -// Warning 6328: (261-276): CHC: Assertion violation happens here. +// Warning 6328: (261-276): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\n\nTransaction trace:\nconstructor()\nf(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol index d0ed3711b..3e5177641 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol @@ -13,4 +13,4 @@ contract C { } } // ---- -// Warning 6328: (251-266): CHC: Assertion violation happens here. +// Warning 6328: (251-266): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\n\nTransaction trace:\nconstructor()\nf(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol index aba732c35..261d3f19a 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol @@ -10,4 +10,4 @@ contract C { } } // ---- -// Warning 6328: (170-190): CHC: Assertion violation happens here. +// Warning 6328: (170-190): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\n\nTransaction trace:\nconstructor()\nf(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol index 7f342f47e..476114d86 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol @@ -10,5 +10,5 @@ contract C { } } // ---- -// Warning 6328: (147-166): CHC: Assertion violation happens here. -// Warning 6328: (170-190): CHC: Assertion violation happens here. +// Warning 6328: (147-166): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 0\n\n\nTransaction trace:\nconstructor()\nf(0) +// Warning 6328: (170-190): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538830022687173130149211684818290356179572910782152375644828738034597888\n\n\nTransaction trace:\nconstructor()\nf(52647538830022687173130149211684818290356179572910782152375644828738034597888) diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol index b6da89f50..5748823ac 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol @@ -17,6 +17,8 @@ contract C { assert(s3.x == s1.x || s3.x == s2.x); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (208-228): CHC: Assertion violation happens here. // Warning 6328: (232-252): 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 1ced17ab1..344839990 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_storage.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_storage.sol @@ -26,4 +26,4 @@ contract C { } } // ---- -// Warning 6328: (402-438): CHC: Assertion violation happens here. +// Warning 6328: (402-438): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 0, a: []}, s2 = {x: 0, a: []}\nb = false\n\n\nTransaction trace:\nconstructor()\nState: s1 = {x: 0, a: []}, s2 = {x: 0, a: []}\nf(false) 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 c000fa5b7..29c6a9684 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 @@ -27,8 +27,8 @@ contract C { } } // ---- -// Warning 6328: (228-245): CHC: Assertion violation happens here. -// Warning 6328: (263-282): CHC: Assertion violation happens here. -// Warning 6328: (301-321): CHC: Assertion violation happens here. -// Warning 6328: (343-366): CHC: Assertion violation happens here. -// Warning 6328: (391-417): CHC: Assertion violation happens here. +// Warning 6328: (228-245): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (263-282): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (301-321): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (343-366): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (391-417): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() 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 181465423..fac24eaa2 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 @@ -26,8 +26,8 @@ contract C { } } // ---- -// Warning 6328: (181-198): CHC: Assertion violation happens here. -// Warning 6328: (216-235): CHC: Assertion violation happens here. -// Warning 6328: (254-274): CHC: Assertion violation happens here. -// Warning 6328: (296-319): CHC: Assertion violation happens here. -// Warning 6328: (344-370): CHC: Assertion violation happens here. +// Warning 6328: (181-198): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 0, a: []}, a: [], ts: []}\n\n\n\nTransaction trace:\nconstructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nf() +// Warning 6328: (216-235): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 3, a: []}, a: [], ts: []}\n\n\n\nTransaction trace:\nconstructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nf() +// Warning 6328: (254-274): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 3, a: []}, a: [], ts: []}\n\n\n\nTransaction trace:\nconstructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nf() +// Warning 6328: (296-319): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 3, a: []}, a: [], ts: []}\n\n\n\nTransaction trace:\nconstructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nf() +// Warning 6328: (344-370): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 3, a: []}, a: [], ts: []}\n\n\n\nTransaction trace:\nconstructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nf() 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 8022b39d5..212eeaf4b 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args.sol @@ -20,4 +20,4 @@ contract C { } } // ---- -// Warning 6328: (265-288): CHC: Assertion violation happens here. +// Warning 6328: (265-288): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ntest() 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 7c78645d1..b178af610 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 @@ -17,4 +17,4 @@ contract C { } } // ---- -// Warning 6328: (224-264): CHC: Assertion violation happens here. +// Warning 6328: (224-264): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ntest() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol index 553d2b859..e63ea49f5 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol @@ -13,6 +13,8 @@ contract C { assert(s1.a.length == 0); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (184-204): CHC: Assertion violation happens here. // Warning 6328: (208-242): 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 92b2c598e..be21014e8 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_storage.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_storage.sol @@ -18,6 +18,8 @@ contract C { assert(s1.a.length == 0); } } +// ==== +// SMTIgnoreCex: yes // ---- // Warning 6328: (240-260): CHC: Assertion violation happens here. // Warning 6328: (264-298): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol index 5fcc3b246..eb82c271a 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol @@ -20,4 +20,4 @@ contract C { } } // ---- -// Warning 6328: (252-275): CHC: Assertion violation happens here. +// Warning 6328: (252-275): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ntest() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol index 86190683c..4027557dc 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol @@ -23,8 +23,8 @@ contract C { // 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. -// Warning 6328: (148-182): CHC: Assertion violation happens here. +// Warning 6328: (124-144): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (148-182): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // 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. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol index 28265eef5..c9011eab3 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol @@ -64,9 +64,9 @@ contract C { // 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. -// Warning 6328: (148-182): CHC: Assertion violation happens here. -// Warning 6328: (186-216): CHC: Assertion violation happens here. +// Warning 6328: (124-144): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (148-182): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (186-216): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // 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. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol index 6971aaa40..56eff92c8 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol @@ -116,11 +116,11 @@ contract C { // Warning 8364: (493-500): Assertion checker does not yet implement type struct C.S storage ref // Warning 8364: (493-505): Assertion checker does not yet implement type struct C.S storage ref // Warning 4375: (493-507): Assertion checker does not support recursive structs. -// Warning 6328: (124-144): CHC: Assertion violation happens here. -// Warning 6328: (148-182): CHC: Assertion violation happens here. -// Warning 6328: (186-216): CHC: Assertion violation happens here. -// Warning 6328: (220-264): CHC: Assertion violation happens here. -// Warning 6328: (268-308): CHC: Assertion violation happens here. +// Warning 6328: (124-144): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (148-182): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (186-216): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (220-264): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (268-308): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // 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. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol index cef0fa89c..3a6d975ec 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol @@ -51,9 +51,9 @@ contract C { // 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 6328: (197-233): CHC: Assertion violation happens here.\nCounterexample:\n\nb1 = false\nb2 = false\n\n\nTransaction trace:\nconstructor()\nf(false, false) +// Warning 6328: (237-273): CHC: Assertion violation happens here.\nCounterexample:\n\nb1 = false\nb2 = false\n\n\nTransaction trace:\nconstructor()\nf(false, false) +// Warning 6328: (359-391): CHC: Assertion violation happens here.\nCounterexample:\n\nb1 = false\nb2 = false\n\n\nTransaction trace:\nconstructor()\nf(false, false) // 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. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol index a8e621e4a..878cbde70 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol @@ -26,7 +26,7 @@ contract C { // 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. +// Warning 6328: (192-236): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // 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. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol index e4aab975c..f61085e81 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol @@ -52,10 +52,10 @@ contract C { // 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: (200-208): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (185-209): CHC: Assertion violation happens here. -// Warning 6328: (213-247): CHC: Assertion violation happens here. -// Warning 6328: (264-281): CHC: Assertion violation happens here. +// Warning 4984: (200-208): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (185-209): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (213-247): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (264-281): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // 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: (119-123): Assertion checker does not yet support this expression. 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 ecab74c2a..ac40ffd6c 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_1.sol @@ -27,8 +27,8 @@ contract C { // 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. -// Warning 6328: (182-216): CHC: Assertion violation happens here. +// Warning 6328: (158-178): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (182-216): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // 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. 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 49de04be5..0907a2b9b 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_2.sol @@ -54,7 +54,7 @@ contract C { // 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 6328: (223-263): CHC: Assertion violation happens here. +// Warning 6328: (223-263): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // 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. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol index 352d29dc9..fa5c4be86 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol @@ -17,4 +17,4 @@ contract C { } } // ---- -// Warning 6328: (265-286): CHC: Assertion violation happens here. +// Warning 6328: (265-286): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol index 4f59676b8..11fb99e33 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol @@ -13,4 +13,4 @@ contract C { } } // ---- -// Warning 6328: (148-172): CHC: Assertion violation happens here. +// Warning 6328: (148-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 7720, a: []}\n_x = 7720\n\n\nTransaction trace:\nconstructor()\nState: s = {x: 0, a: []}\nf(7720) 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 e849e8e8f..d5276972e 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 @@ -21,5 +21,5 @@ contract C { } } // ---- -// Warning 2529: (121-130): CHC: Empty array "pop" happens here. -// Warning 6328: (230-254): CHC: Assertion violation happens here. +// Warning 2529: (121-130): CHC: Empty array "pop" happens here.\nCounterexample:\ns = {x: 0, a: []}\n_x = 0\n\n\nTransaction trace:\nconstructor()\nState: s = {x: 0, a: []}\nf(0) +// Warning 6328: (230-254): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 7720, a: [7720, 0]}\n_x = 7720\n\n\nTransaction trace:\nconstructor()\nState: s = {x: 0, a: []}\nf(7720) 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 a624f8cc2..10052f693 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 @@ -18,5 +18,5 @@ contract C { } } // ---- -// Warning 2529: (133-142): CHC: Empty array "pop" happens here. -// Warning 6328: (189-213): CHC: Assertion violation happens here. +// Warning 2529: (133-142): CHC: Empty array "pop" happens here.\nCounterexample:\ns = {x: 38, a: []}\n_x = 38\n\n\nTransaction trace:\nconstructor()\nState: s = {x: 0, a: []}\nf(38) +// Warning 6328: (189-213): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 115792089237316195423570985008687907853269984665640564039457584007913129639897, a: [115792089237316195423570985008687907853269984665640564039457584007913129639897, 0]}\n_x = 115792089237316195423570985008687907853269984665640564039457584007913129639897\n\n\nTransaction trace:\nconstructor()\nState: s = {x: 0, a: []}\nf(115792089237316195423570985008687907853269984665640564039457584007913129639897) diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol index 68d1bac5b..6ca5f6ace 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol @@ -15,4 +15,4 @@ contract C { } } // ---- -// Warning 6328: (225-245): CHC: Assertion violation happens here. +// Warning 6328: (225-245): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, a: []}\ns2 = {x: 3, a: [5, 5, 5, 5, 5, 5]}\n\n\nTransaction trace:\nconstructor()\nf({x: 0, a: []}, {x: 3, a: [5, 5, 5, 5, 5, 5]}) diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol index a7dc5d4dc..cfb93983c 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol @@ -16,4 +16,4 @@ contract C { } } // ---- -// Warning 6328: (240-260): CHC: Assertion violation happens here. +// Warning 6328: (240-260): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 98, a: []}\ns2 = {x: (- 38), a: [5, 5, 5, 5, 5, 5]}\n\n\nTransaction trace:\nconstructor()\nf({x: 0, a: []}, {x: (- 38), a: [5, 5, 5, 5, 5, 5]}) diff --git a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol index bb850422b..af643bbfe 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol @@ -4,4 +4,4 @@ contract C { function f() public { (a).pop();} } // ---- -// Warning 2529: (78-87): CHC: Empty array "pop" happens here. +// Warning 2529: (78-87): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol index 19a1f4965..0a940b9b0 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol @@ -4,4 +4,4 @@ contract C { function f() public { (((((a))))).pop();} } // ---- -// Warning 2529: (78-95): CHC: Empty array "pop" happens here. +// Warning 2529: (78-95): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\n\n\nTransaction trace:\nconstructor()\nState: a = []\nf() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol index e6701730f..d2f5e9f9e 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (136-153): CHC: Assertion violation happens here. +// Warning 6328: (136-153): CHC: Assertion violation happens here.\nCounterexample:\na = []\nx = 39\ny = 0\n\n\nTransaction trace:\nconstructor()\nState: a = []\ng(39, 0) diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol index bb49ddb05..289055ee9 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol @@ -10,4 +10,4 @@ contract C } } // ---- -// Warning 6328: (122-136): CHC: Assertion violation happens here. +// Warning 6328: (122-136): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol index fe4ddde7c..7b8a1bb6e 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol @@ -11,4 +11,4 @@ contract C } } // ---- -// Warning 6328: (132-146): CHC: Assertion violation happens here. +// Warning 6328: (132-146): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol index 16fb101a1..966cc3a55 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol @@ -14,4 +14,4 @@ contract C } } // ---- -// Warning 6328: (224-234): CHC: Assertion violation happens here. +// Warning 6328: (224-234): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() 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 61097f834..57d1a02a9 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_1.sol @@ -9,4 +9,4 @@ contract C { } // ---- // 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. +// Warning 6328: (157-171): CHC: Assertion violation happens here.\nCounterexample:\n\n\n = 0\n\nTransaction trace:\nconstructor()\nf() 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 f2798ed46..81f403603 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_2.sol @@ -9,4 +9,4 @@ contract C { } // ---- // 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. +// Warning 6328: (159-173): CHC: Assertion violation happens here.\nCounterexample:\n\n\n = 0\n\nTransaction trace:\nconstructor()\nf() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_function.sol b/test/libsolidity/smtCheckerTests/types/tuple_function.sol index baf5f6f35..f2065845c 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_function.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_function.sol @@ -14,5 +14,5 @@ contract C } } // ---- -// Warning 6328: (182-196): CHC: Assertion violation happens here. -// Warning 6328: (200-214): CHC: Assertion violation happens here. +// Warning 6328: (182-196): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() +// Warning 6328: (200-214): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol index 088f93db6..25304ae59 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol @@ -14,4 +14,4 @@ contract C } } // ---- -// Warning 6328: (199-213): CHC: Assertion violation happens here. +// Warning 6328: (199-213): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol b/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol index ead35dab0..7255bea5a 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol @@ -16,5 +16,5 @@ contract C } } // ---- -// Warning 6328: (205-219): CHC: Assertion violation happens here. -// Warning 6328: (223-237): CHC: Assertion violation happens here. +// Warning 6328: (205-219): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() +// Warning 6328: (223-237): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() diff --git a/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol b/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol index 396e84bca..ea643bc81 100644 --- a/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol +++ b/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol @@ -28,5 +28,5 @@ contract C { } } // ---- -// Warning 6328: (449-501): CHC: Assertion violation happens here. -// Warning 6328: (536-588): CHC: Assertion violation happens here. +// Warning 6328: (449-501): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\ng() +// Warning 6328: (536-588): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nh() diff --git a/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol b/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol index 71b2c01ed..2dbb25419 100644 --- a/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol +++ b/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol @@ -14,9 +14,9 @@ contract C { // 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. -// Warning 6328: (135-175): CHC: Assertion violation happens here. -// Warning 6328: (179-218): CHC: Assertion violation happens here. +// Warning 6328: (92-131): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (135-175): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() +// Warning 6328: (179-218): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nconstructor()\nf() // 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. diff --git a/test/libsolidity/smtCheckerTests/types/type_minmax.sol b/test/libsolidity/smtCheckerTests/types/type_minmax.sol index f2802b7f2..08d4e8af1 100644 --- a/test/libsolidity/smtCheckerTests/types/type_minmax.sol +++ b/test/libsolidity/smtCheckerTests/types/type_minmax.sol @@ -81,4 +81,4 @@ contract C { } } // ---- -// Warning 6328: (211-240): CHC: Assertion violation happens here. +// Warning 6328: (211-240): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4294967296\n\n\nTransaction trace:\nconstructor()\nf(4294967296) diff --git a/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol b/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol index 1b8433580..cb54bdf0e 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol @@ -3,4 +3,4 @@ contract C { function f(uint a) public pure { assert(a == 2); } } // ---- -// Warning 6328: (82-96): CHC: Assertion violation happens here. +// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\n\nTransaction trace:\nconstructor()\nf(0) From 2e31a6bdbf8554f5461b4ee8a6b95640cd6ddc0f Mon Sep 17 00:00:00 2001 From: Daniel Kirchner Date: Thu, 10 Dec 2020 11:09:55 +0100 Subject: [PATCH 11/12] Switch CI runs from EOL'ed eoan to focal. --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7e6067574..acd6c00fc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -347,7 +347,7 @@ jobs: chk_pylint: docker: - - image: buildpack-deps:eoan + - image: buildpack-deps:focal steps: - checkout - run: @@ -363,7 +363,7 @@ jobs: chk_antlr_grammar: docker: - - image: buildpack-deps:eoan + - image: buildpack-deps:focal steps: - checkout - run: From 37cc795034c97067a6fbb3c4781d98a9c7135821 Mon Sep 17 00:00:00 2001 From: Mathias Baumann Date: Tue, 1 Dec 2020 12:45:54 +0100 Subject: [PATCH 12/12] Fix segfault for empty @return tags in modifiers --- Changelog.md | 1 + libsolidity/analysis/DocStringAnalyser.cpp | 20 ++++++++++++++++--- libsolidity/analysis/DocStringTagParser.cpp | 3 +++ .../docstring_inherit_modifier_no_return.sol | 10 ++++++++++ .../docstring_inherit_modifier_no_return2.sol | 12 +++++++++++ 5 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 test/libsolidity/syntaxTests/natspec/invalid/docstring_inherit_modifier_no_return.sol create mode 100644 test/libsolidity/syntaxTests/natspec/invalid/docstring_inherit_modifier_no_return2.sol diff --git a/Changelog.md b/Changelog.md index 52d7e8234..147ea7d8f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -18,6 +18,7 @@ Compiler Features: Bugfixes: * Code generator: Do not pad empty string literals with a single 32-byte zero field in the ABI coder v1. + * NatSpec: Fix segfault when inheriting return parameter documentation for modifiers with no parameters. * SMTChecker: Fix cast string literals to byte arrays. * SMTChecker: Fix internal compiler error when doing bitwise compound assignment with string literals. * SMTChecker: Fix internal error when trying to generate counterexamples with old z3. diff --git a/libsolidity/analysis/DocStringAnalyser.cpp b/libsolidity/analysis/DocStringAnalyser.cpp index ab445b93f..9de1d8979 100644 --- a/libsolidity/analysis/DocStringAnalyser.cpp +++ b/libsolidity/analysis/DocStringAnalyser.cpp @@ -42,7 +42,15 @@ void copyMissingTags(set const& _baseFunctions, Stru if (_baseFunctions.size() != 1) return; - auto& sourceDoc = dynamic_cast((*_baseFunctions.begin())->annotation()); + CallableDeclaration const& baseFunction = **_baseFunctions.begin(); + + auto hasReturnParameter = [](CallableDeclaration const& declaration, size_t _n) + { + return declaration.returnParameterList() && + declaration.returnParameters().size() > _n; + }; + + auto& sourceDoc = dynamic_cast(baseFunction.annotation()); for (auto it = sourceDoc.docTags.begin(); it != sourceDoc.docTags.end();) { @@ -66,9 +74,15 @@ void copyMissingTags(set const& _baseFunctions, Stru size_t docParaNameEndPos = content.content.find_first_of(" \t"); string const docParameterName = content.content.substr(0, docParaNameEndPos); - if (docParameterName != _declaration->returnParameters().at(n)->name()) + if ( + hasReturnParameter(*_declaration, n) && + docParameterName != _declaration->returnParameters().at(n)->name() + ) { - bool baseHasNoName = (*_baseFunctions.begin())->returnParameters().at(n)->name().empty(); + bool baseHasNoName = + hasReturnParameter(baseFunction, n) && + baseFunction.returnParameters().at(n)->name().empty(); + string paramName = _declaration->returnParameters().at(n)->name(); content.content = (paramName.empty() ? "" : std::move(paramName) + " ") + ( diff --git a/libsolidity/analysis/DocStringTagParser.cpp b/libsolidity/analysis/DocStringTagParser.cpp index cb82511f0..02c22e9b8 100644 --- a/libsolidity/analysis/DocStringTagParser.cpp +++ b/libsolidity/analysis/DocStringTagParser.cpp @@ -127,10 +127,13 @@ void DocStringTagParser::handleCallable( ) { static set const validEventTags = set{"dev", "notice", "return", "param"}; + static set const validModifierTags = set{"dev", "notice", "param", "inheritdoc"}; static set const validTags = set{"dev", "notice", "return", "param", "inheritdoc"}; if (dynamic_cast(&_callable)) parseDocStrings(_node, _annotation, validEventTags, "events"); + else if (dynamic_cast(&_callable)) + parseDocStrings(_node, _annotation, validModifierTags, "modifiers"); else parseDocStrings(_node, _annotation, validTags, "functions"); diff --git a/test/libsolidity/syntaxTests/natspec/invalid/docstring_inherit_modifier_no_return.sol b/test/libsolidity/syntaxTests/natspec/invalid/docstring_inherit_modifier_no_return.sol new file mode 100644 index 000000000..2517ff381 --- /dev/null +++ b/test/libsolidity/syntaxTests/natspec/invalid/docstring_inherit_modifier_no_return.sol @@ -0,0 +1,10 @@ +contract C { + ///@return + modifier m22 virtual { _; } +} + +contract D is C { + modifier m22 override { _; } +} +// ---- +// DocstringParsingError 6546: (14-24): Documentation tag @return not valid for modifiers. diff --git a/test/libsolidity/syntaxTests/natspec/invalid/docstring_inherit_modifier_no_return2.sol b/test/libsolidity/syntaxTests/natspec/invalid/docstring_inherit_modifier_no_return2.sol new file mode 100644 index 000000000..5b81a4660 --- /dev/null +++ b/test/libsolidity/syntaxTests/natspec/invalid/docstring_inherit_modifier_no_return2.sol @@ -0,0 +1,12 @@ +contract A { + /// @return a + function g(int x) public virtual { return 2; } +} + +contract B is A { + function g(int x) public pure override returns (int b) { return 2; } +} +// ---- +// DocstringParsingError 2604: (14-27): Documentation tag "@return a" exceeds the number of return parameters. +// TypeError 4822: (98-166): Overriding function return types differ. +// TypeError 8863: (64-72): Different number of arguments in return statement than in returns declaration.