mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Output internal calls
This commit is contained in:
parent
f1ae24abc7
commit
b3c3836388
@ -10,6 +10,7 @@ Compiler Features:
|
|||||||
* SMTChecker: Use checked arithmetic by default and support ``unchecked`` blocks.
|
* SMTChecker: Use checked arithmetic by default and support ``unchecked`` blocks.
|
||||||
* SMTChecker: Show contract name in counterexample function call.
|
* SMTChecker: Show contract name in counterexample function call.
|
||||||
* SMTChecker: Support try/catch statements.
|
* SMTChecker: Support try/catch statements.
|
||||||
|
* SMTChecker: Output internal and trusted external function calls in a counterexample's transaction trace.
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
* Code Generator: Fix length check when decoding malformed error data in catch clause.
|
* Code Generator: Fix length check when decoding malformed error data in catch clause.
|
||||||
|
@ -1072,12 +1072,12 @@ Predicate const* CHC::createBlock(ASTNode const* _node, PredicateType _predType,
|
|||||||
return block;
|
return block;
|
||||||
}
|
}
|
||||||
|
|
||||||
Predicate const* CHC::createSummaryBlock(FunctionDefinition const& _function, ContractDefinition const& _contract)
|
Predicate const* CHC::createSummaryBlock(FunctionDefinition const& _function, ContractDefinition const& _contract, PredicateType _type)
|
||||||
{
|
{
|
||||||
return createSymbolicBlock(
|
return createSymbolicBlock(
|
||||||
functionSort(_function, &_contract, state()),
|
functionSort(_function, &_contract, state()),
|
||||||
"summary_" + uniquePrefix() + "_" + predicateName(&_function, &_contract),
|
"summary_" + uniquePrefix() + "_" + predicateName(&_function, &_contract),
|
||||||
PredicateType::FunctionSummary,
|
_type,
|
||||||
&_function
|
&_function
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1179,6 +1179,8 @@ smtutil::Expression CHC::predicate(Predicate const& _block)
|
|||||||
case PredicateType::ConstructorSummary:
|
case PredicateType::ConstructorSummary:
|
||||||
return constructor(_block, m_context);
|
return constructor(_block, m_context);
|
||||||
case PredicateType::FunctionSummary:
|
case PredicateType::FunctionSummary:
|
||||||
|
case PredicateType::InternalCall:
|
||||||
|
case PredicateType::ExternalCall:
|
||||||
return smt::function(_block, m_currentContract, m_context);
|
return smt::function(_block, m_currentContract, m_context);
|
||||||
case PredicateType::FunctionBlock:
|
case PredicateType::FunctionBlock:
|
||||||
solAssert(m_currentFunction, "");
|
solAssert(m_currentFunction, "");
|
||||||
@ -1250,7 +1252,17 @@ smtutil::Expression CHC::predicate(FunctionCall const& _funCall)
|
|||||||
args.push_back(currentValue(*var));
|
args.push_back(currentValue(*var));
|
||||||
}
|
}
|
||||||
|
|
||||||
return (*m_summaries.at(calledContract).at(function))(args);
|
Predicate const& summary = *m_summaries.at(calledContract).at(function);
|
||||||
|
auto from = smt::function(summary, calledContract, m_context);
|
||||||
|
Predicate const& callPredicate = *createSummaryBlock(
|
||||||
|
*function,
|
||||||
|
*calledContract,
|
||||||
|
kind == FunctionType::Kind::Internal ? PredicateType::InternalCall : PredicateType::ExternalCall
|
||||||
|
);
|
||||||
|
auto to = smt::function(callPredicate, calledContract, m_context);
|
||||||
|
addRule(smtutil::Expression::implies(from, to), to.name);
|
||||||
|
|
||||||
|
return callPredicate(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHC::addRule(smtutil::Expression const& _rule, string const& _ruleName)
|
void CHC::addRule(smtutil::Expression const& _rule, string const& _ruleName)
|
||||||
@ -1506,6 +1518,9 @@ optional<string> CHC::generateCounterexample(CHCSolverInterface::CexGraph const&
|
|||||||
|
|
||||||
auto callGraph = summaryCalls(_graph, *rootId);
|
auto callGraph = summaryCalls(_graph, *rootId);
|
||||||
|
|
||||||
|
auto nodePred = [&](auto _node) { return Predicate::predicate(_graph.nodes.at(_node).name); };
|
||||||
|
auto nodeArgs = [&](auto _node) { return _graph.nodes.at(_node).arguments; };
|
||||||
|
|
||||||
bool first = true;
|
bool first = true;
|
||||||
for (auto summaryId: callGraph.at(*rootId))
|
for (auto summaryId: callGraph.at(*rootId))
|
||||||
{
|
{
|
||||||
@ -1518,8 +1533,6 @@ optional<string> CHC::generateCounterexample(CHCSolverInterface::CexGraph const&
|
|||||||
auto stateValues = summaryPredicate->summaryStateValues(summaryArgs);
|
auto stateValues = summaryPredicate->summaryStateValues(summaryArgs);
|
||||||
solAssert(stateValues.size() == stateVars->size(), "");
|
solAssert(stateValues.size() == stateVars->size(), "");
|
||||||
|
|
||||||
string txCex = summaryPredicate->formatSummaryCall(summaryArgs);
|
|
||||||
|
|
||||||
if (first)
|
if (first)
|
||||||
{
|
{
|
||||||
first = false;
|
first = false;
|
||||||
@ -1546,7 +1559,23 @@ optional<string> CHC::generateCounterexample(CHCSolverInterface::CexGraph const&
|
|||||||
path.emplace_back("State: " + modelMsg);
|
path.emplace_back("State: " + modelMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
path.emplace_back(txCex);
|
string txCex = summaryPredicate->formatSummaryCall(summaryArgs);
|
||||||
|
|
||||||
|
list<string> calls;
|
||||||
|
auto dfs = [&](unsigned node, unsigned depth, auto&& _dfs) -> void {
|
||||||
|
auto pred = nodePred(node);
|
||||||
|
solAssert(pred && pred->isSummary(), "");
|
||||||
|
if (!pred->isConstructorSummary())
|
||||||
|
for (unsigned v: callGraph[node])
|
||||||
|
_dfs(v, depth + 1, _dfs);
|
||||||
|
calls.push_front(string(depth * 2, ' ') + pred->formatSummaryCall(nodeArgs(node)));
|
||||||
|
if (pred->isInternalCall())
|
||||||
|
calls.front() += " -- internal call";
|
||||||
|
else if (pred->isExternalCall())
|
||||||
|
calls.front() += " -- external call";
|
||||||
|
};
|
||||||
|
dfs(summaryId, 0, dfs);
|
||||||
|
path.emplace_back(boost::algorithm::join(calls, "\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return localState + "\nTransaction trace:\n" + boost::algorithm::join(boost::adaptors::reverse(path), "\n");
|
return localState + "\nTransaction trace:\n" + boost::algorithm::join(boost::adaptors::reverse(path), "\n");
|
||||||
@ -1556,16 +1585,27 @@ map<unsigned, vector<unsigned>> CHC::summaryCalls(CHCSolverInterface::CexGraph c
|
|||||||
{
|
{
|
||||||
map<unsigned, vector<unsigned>> calls;
|
map<unsigned, vector<unsigned>> calls;
|
||||||
|
|
||||||
solidity::util::BreadthFirstSearch<pair<unsigned, unsigned>>{{{_root, _root}}}.run([&](auto info, auto&& _addChild) {
|
auto compare = [&](unsigned _a, unsigned _b) {
|
||||||
auto [node, root] = info;
|
return _graph.nodes.at(_a).name > _graph.nodes.at(_b).name;
|
||||||
if (Predicate::predicate(_graph.nodes.at(node).name)->isSummary())
|
};
|
||||||
|
|
||||||
|
queue<pair<unsigned, unsigned>> q;
|
||||||
|
q.push({_root, _root});
|
||||||
|
while (!q.empty())
|
||||||
|
{
|
||||||
|
auto [node, root] = q.front();
|
||||||
|
q.pop();
|
||||||
|
|
||||||
|
Predicate const* nodePred = Predicate::predicate(_graph.nodes.at(node).name);
|
||||||
|
if (nodePred->isSummary() && (_root == root || nodePred->isInternalCall() || nodePred->isExternalCall()))
|
||||||
{
|
{
|
||||||
calls[root].push_back(node);
|
calls[root].push_back(node);
|
||||||
root = node;
|
root = node;
|
||||||
}
|
}
|
||||||
for (auto v: _graph.edges.at(node))
|
auto const& edges = _graph.edges.at(node);
|
||||||
_addChild({v, root});
|
for (unsigned v: set<unsigned, decltype(compare)>(begin(edges), end(edges), compare))
|
||||||
});
|
q.push({v, root});
|
||||||
|
}
|
||||||
|
|
||||||
return calls;
|
return calls;
|
||||||
}
|
}
|
||||||
|
@ -147,7 +147,13 @@ private:
|
|||||||
Predicate const* createBlock(ASTNode const* _node, PredicateType _predType, std::string const& _prefix = "");
|
Predicate const* createBlock(ASTNode const* _node, PredicateType _predType, std::string const& _prefix = "");
|
||||||
/// Creates a call block for the given function _function from contract _contract.
|
/// Creates a call block for the given function _function from contract _contract.
|
||||||
/// The contract is needed here because of inheritance.
|
/// The contract is needed here because of inheritance.
|
||||||
Predicate const* createSummaryBlock(FunctionDefinition const& _function, ContractDefinition const& _contract);
|
/// There are different types of summaries, where the most common is FunctionSummary,
|
||||||
|
/// but other summaries are also used for internal and external function calls.
|
||||||
|
Predicate const* createSummaryBlock(
|
||||||
|
FunctionDefinition const& _function,
|
||||||
|
ContractDefinition const& _contract,
|
||||||
|
PredicateType _type = PredicateType::FunctionSummary
|
||||||
|
);
|
||||||
|
|
||||||
/// @returns a block related to @a _contract's constructor.
|
/// @returns a block related to @a _contract's constructor.
|
||||||
Predicate const* createConstructorBlock(ContractDefinition const& _contract, std::string const& _prefix);
|
Predicate const* createConstructorBlock(ContractDefinition const& _contract, std::string const& _prefix);
|
||||||
|
@ -141,7 +141,22 @@ optional<vector<VariableDeclaration const*>> Predicate::stateVariables() const
|
|||||||
|
|
||||||
bool Predicate::isSummary() const
|
bool Predicate::isSummary() const
|
||||||
{
|
{
|
||||||
return m_type == PredicateType::ConstructorSummary || m_type == PredicateType::FunctionSummary;
|
return m_type == PredicateType::ConstructorSummary || m_type == PredicateType::FunctionSummary || m_type == PredicateType::InternalCall || m_type == PredicateType::ExternalCall;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Predicate::isFunctionSummary() const
|
||||||
|
{
|
||||||
|
return m_type == PredicateType::FunctionSummary;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Predicate::isInternalCall() const
|
||||||
|
{
|
||||||
|
return m_type == PredicateType::InternalCall;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Predicate::isExternalCall() const
|
||||||
|
{
|
||||||
|
return m_type == PredicateType::ExternalCall;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Predicate::isConstructorSummary() const
|
bool Predicate::isConstructorSummary() const
|
||||||
|
@ -37,6 +37,8 @@ enum class PredicateType
|
|||||||
ConstructorSummary,
|
ConstructorSummary,
|
||||||
FunctionSummary,
|
FunctionSummary,
|
||||||
FunctionBlock,
|
FunctionBlock,
|
||||||
|
InternalCall,
|
||||||
|
ExternalCall,
|
||||||
Error,
|
Error,
|
||||||
Custom
|
Custom
|
||||||
};
|
};
|
||||||
@ -98,6 +100,15 @@ public:
|
|||||||
/// @returns true if this predicate represents a summary.
|
/// @returns true if this predicate represents a summary.
|
||||||
bool isSummary() const;
|
bool isSummary() const;
|
||||||
|
|
||||||
|
/// @returns true if this predicate represents a function summary.
|
||||||
|
bool isFunctionSummary() const;
|
||||||
|
|
||||||
|
/// @returns true if this predicate represents an internal function call.
|
||||||
|
bool isInternalCall() const;
|
||||||
|
|
||||||
|
/// @returns true if this predicate represents an external function call.
|
||||||
|
bool isExternalCall() const;
|
||||||
|
|
||||||
/// @returns true if this predicate represents a constructor summary.
|
/// @returns true if this predicate represents a constructor summary.
|
||||||
bool isConstructorSummary() const;
|
bool isConstructorSummary() const;
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ Counterexample:
|
|||||||
|
|
||||||
x = 0
|
x = 0
|
||||||
|
|
||||||
|
|
||||||
Transaction trace:
|
Transaction trace:
|
||||||
test.constructor()
|
test.constructor()
|
||||||
test.f(0)
|
test.f(0)
|
||||||
|
@ -3,7 +3,6 @@ Counterexample:
|
|||||||
|
|
||||||
x = 0
|
x = 0
|
||||||
|
|
||||||
|
|
||||||
Transaction trace:
|
Transaction trace:
|
||||||
test.constructor()
|
test.constructor()
|
||||||
test.f(0)
|
test.f(0)
|
||||||
|
@ -3,7 +3,6 @@ Counterexample:
|
|||||||
|
|
||||||
x = 0
|
x = 0
|
||||||
|
|
||||||
|
|
||||||
Transaction trace:
|
Transaction trace:
|
||||||
C.constructor()
|
C.constructor()
|
||||||
C.f(0)
|
C.f(0)
|
||||||
@ -17,7 +16,6 @@ Counterexample:
|
|||||||
|
|
||||||
x = 0
|
x = 0
|
||||||
|
|
||||||
|
|
||||||
Transaction trace:
|
Transaction trace:
|
||||||
C.constructor()
|
C.constructor()
|
||||||
C.f(0)","severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}}
|
C.f(0)","severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}}
|
||||||
|
@ -3,7 +3,6 @@ Counterexample:
|
|||||||
|
|
||||||
x = 0
|
x = 0
|
||||||
|
|
||||||
|
|
||||||
Transaction trace:
|
Transaction trace:
|
||||||
C.constructor()
|
C.constructor()
|
||||||
C.f(0)
|
C.f(0)
|
||||||
@ -17,7 +16,6 @@ Counterexample:
|
|||||||
|
|
||||||
x = 0
|
x = 0
|
||||||
|
|
||||||
|
|
||||||
Transaction trace:
|
Transaction trace:
|
||||||
C.constructor()
|
C.constructor()
|
||||||
C.f(0)","severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}}
|
C.f(0)","severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}}
|
||||||
|
@ -15,4 +15,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (184-213): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [], []]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
|
// Warning 6328: (184-213): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [], []]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()\n C.s() -- internal call
|
||||||
|
@ -21,4 +21,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (359-373): CHC: Assertion violation happens here.\nCounterexample:\nx = 7\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()
|
// Warning 6328: (359-373): CHC: Assertion violation happens here.\nCounterexample:\nx = 7\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call
|
||||||
|
@ -21,4 +21,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (365-379): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()
|
// Warning 6328: (365-379): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call
|
||||||
|
@ -21,4 +21,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (358-372): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()
|
// Warning 6328: (358-372): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call
|
||||||
|
@ -21,4 +21,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (365-379): CHC: Assertion violation happens here.\nCounterexample:\nx = 7\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()
|
// Warning 6328: (365-379): CHC: Assertion violation happens here.\nCounterexample:\nx = 7\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call
|
||||||
|
@ -43,6 +43,6 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.test()
|
// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.test()\n C.reset_if_overflow() -- internal call
|
||||||
// Warning 6328: (535-552): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(1)\nState: x = 1\nC.test()
|
// Warning 6328: (535-552): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(1)\nState: x = 1\nC.test()\n C.reset_if_overflow() -- internal call
|
||||||
// Warning 6328: (648-662): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(10)\nState: x = 10\nC.test()
|
// Warning 6328: (648-662): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(10)\nState: x = 10\nC.test()\n C.reset_if_overflow() -- internal call
|
||||||
|
@ -22,5 +22,5 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (147-174): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\nb = 2\n\nTransaction trace:\nC.constructor()\nC.test(0, 2)
|
// Warning 6328: (147-174): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\nb = 2\n\nTransaction trace:\nC.constructor()\nC.test(0, 2)\n C.nested_if(0, 2) -- internal call\n C.nested_if(0, 2) -- internal call
|
||||||
// Warning 6838: (332-348): BMC: Condition is always false.
|
// Warning 6838: (332-348): BMC: Condition is always false.
|
||||||
|
@ -14,4 +14,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (89-114): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\nTransaction trace:\nC.constructor()\nC.test(0)
|
// Warning 6328: (89-114): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\nTransaction trace:\nC.constructor()\nC.test(0)\n C.simple_if(0) -- internal call
|
||||||
|
@ -25,4 +25,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (205-222): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\n\nTransaction trace:\nC.constructor()\nState: a = [0, 0]\nC.check()
|
// Warning 6328: (205-222): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\n\nTransaction trace:\nC.constructor()\nState: a = [0, 0]\nC.check()\n C.conditional_store() -- internal call
|
||||||
|
@ -19,4 +19,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (132-146): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()
|
// Warning 6328: (132-146): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.conditional_increment() -- internal call
|
||||||
|
@ -22,4 +22,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (156-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()
|
// Warning 6328: (156-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()\n C.conditional_increment() -- internal call
|
||||||
|
@ -22,4 +22,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (156-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()
|
// Warning 6328: (156-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()\n C.conditional_increment() -- internal call
|
||||||
|
@ -23,5 +23,5 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (160-174): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()
|
// Warning 6328: (160-174): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()\n C.conditional_increment() -- internal call
|
||||||
// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()
|
// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()\n C.conditional_increment() -- internal call
|
||||||
|
@ -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 6321: (429-442): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable.
|
||||||
// Warning 6328: (448-465): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()
|
// Warning 6328: (448-465): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()\n C.m() -- internal call
|
||||||
|
@ -33,4 +33,4 @@ contract C {
|
|||||||
// Warning 5740: (116-129): Unreachable code.
|
// Warning 5740: (116-129): Unreachable code.
|
||||||
// Warning 5740: (221-234): 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 6321: (408-421): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable.
|
||||||
// Warning 6328: (427-444): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()
|
// Warning 6328: (427-444): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()\n C.m() -- internal call
|
||||||
|
@ -15,4 +15,4 @@ contract c {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (227-236): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()
|
// Warning 6328: (227-236): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call
|
||||||
|
@ -17,5 +17,5 @@ contract c {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (202-218): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()
|
// Warning 6328: (202-218): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call
|
||||||
// Warning 6328: (242-252): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()
|
// Warning 6328: (242-252): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call
|
||||||
|
@ -15,4 +15,4 @@ contract c {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()
|
// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call
|
||||||
|
@ -15,4 +15,4 @@ contract c {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()
|
// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call
|
||||||
|
@ -24,4 +24,4 @@ contract c {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (360-370): CHC: Assertion violation happens here.\nCounterexample:\nx = 102\na = false\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g(false)
|
// Warning 6328: (360-370): CHC: Assertion violation happens here.\nCounterexample:\nx = 102\na = false\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g(false)\n c.f() -- internal call\n c.f() -- internal call
|
||||||
|
@ -15,4 +15,4 @@ contract c {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()
|
// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call
|
||||||
|
@ -11,4 +11,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (229-243): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(data)
|
// Warning 6328: (229-243): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(data)\n C.fi(data, 2437) -- internal call
|
||||||
|
@ -26,8 +26,8 @@ contract C {
|
|||||||
// ----
|
// ----
|
||||||
// Warning 6031: (261-267): Internal error: Expression undefined for SMT solver.
|
// 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.
|
||||||
// Warning 6328: (470-495): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()
|
// Warning 6328: (470-495): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.f() -- internal call\n C.g() -- internal call
|
||||||
// Warning 6328: (540-565): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()
|
// Warning 6328: (540-565): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.f() -- internal call\n C.g() -- internal call\n C.i() -- internal call\n C.i() -- internal call
|
||||||
// Warning 6031: (261-267): Internal error: Expression undefined for SMT solver.
|
// 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.
|
||||||
// Warning 7650: (284-296): Assertion checker does not yet support this expression.
|
// Warning 7650: (284-296): Assertion checker does not yet support this expression.
|
||||||
|
@ -43,4 +43,4 @@ contract Homer is ERC165, Simpson {
|
|||||||
|
|
||||||
|
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (1373-1428): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nHomer.constructor()\nHomer.check()
|
// Warning 6328: (1373-1428): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nHomer.constructor()\nHomer.check()\n Homer.supportsInterface(1941353618) -- internal call\n Homer.supportsInterface(33540519) -- internal call\n Homer.supportsInterface(2342435274) -- internal call
|
||||||
|
@ -16,4 +16,4 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)
|
// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)\n C.f() -- internal call
|
||||||
|
@ -24,5 +24,5 @@ contract C
|
|||||||
|
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)
|
// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)\n C.f() -- internal call
|
||||||
// Warning 6328: (321-335): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(false)
|
// Warning 6328: (321-335): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(false)\n C.f() -- internal call
|
||||||
|
@ -18,4 +18,4 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (261-277): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(1)
|
// Warning 6328: (261-277): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(1)\n L.add(1, 999) -- internal call
|
||||||
|
@ -12,4 +12,4 @@ contract C
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (161-174): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()
|
// Warning 6328: (161-174): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call
|
||||||
|
@ -16,4 +16,4 @@ contract C
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (229-242): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()
|
// Warning 6328: (229-242): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call\n C.k(0) -- internal call
|
||||||
|
@ -12,4 +12,4 @@ contract C
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (163-176): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()
|
// Warning 6328: (163-176): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call
|
||||||
|
@ -17,4 +17,4 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (245-261): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(1)
|
// Warning 6328: (245-261): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(1)\n L.add(1, 999) -- internal call
|
||||||
|
@ -13,4 +13,4 @@ contract C
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (144-157): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()
|
// Warning 6328: (144-157): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()\n C.f(0) -- internal call
|
||||||
|
@ -14,4 +14,4 @@ contract C
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (152-165): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()
|
// Warning 6328: (152-165): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()\n C.f(1) -- internal call\n C.f(0) -- internal call
|
||||||
|
@ -17,4 +17,4 @@ contract A is B {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (254-268): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.a()
|
// Warning 6328: (254-268): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.a()\n B.b() -- internal call\n C.c() -- internal call
|
||||||
|
@ -22,7 +22,7 @@ contract C{
|
|||||||
// ----
|
// ----
|
||||||
// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning.
|
// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning.
|
||||||
// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()
|
// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()
|
||||||
// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()
|
// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call
|
||||||
// Warning 6328: (220-234): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()
|
// Warning 6328: (220-234): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call
|
||||||
// Warning 6328: (245-259): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()
|
// Warning 6328: (245-259): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call
|
||||||
// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0)
|
// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0)
|
||||||
|
@ -22,5 +22,5 @@ contract C{
|
|||||||
// ----
|
// ----
|
||||||
// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning.
|
// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning.
|
||||||
// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()
|
// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()
|
||||||
// Warning 6328: (184-198): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()
|
// Warning 6328: (184-198): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call\n C.g() -- internal call
|
||||||
// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0)
|
// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0)
|
||||||
|
@ -20,4 +20,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (136-155): CHC: Assertion violation happens here.\nCounterexample:\nTON = 1000\n\nTransaction trace:\nl1.constructor()\nState: TON = 1000\nl1.f1()
|
// Warning 6328: (136-155): CHC: Assertion violation happens here.\nCounterexample:\nTON = 1000\n\nTransaction trace:\nl1.constructor()\nState: TON = 1000\nl1.f1()
|
||||||
// Warning 4984: (229-234): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.f(115792089237316195423570985008687907853269984665640564039457584007913129639935)
|
// Warning 4984: (229-234): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.f(115792089237316195423570985008687907853269984665640564039457584007913129639935)\n l1.f2(115792089237316195423570985008687907853269984665640564039457584007913129639935, 1) -- internal call
|
||||||
|
@ -28,5 +28,5 @@ contract D is C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (237-251): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()
|
// Warning 6328: (237-251): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()\n C.f() -- internal call\n A.f() -- internal call
|
||||||
// Warning 6328: (360-374): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.proxy()
|
// Warning 6328: (360-374): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.proxy()\n D.f() -- internal call\n C.f() -- internal call\n A.f() -- internal call
|
||||||
|
@ -13,4 +13,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (141-156): CHC: Assertion violation happens here.\nCounterexample:\na = 42\nx = 42\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.f(42)
|
// Warning 6328: (141-156): CHC: Assertion violation happens here.\nCounterexample:\na = 42\nx = 42\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.f(42)\n C.g(42) -- external call
|
||||||
|
@ -18,4 +18,4 @@ contract C is A {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (259-273): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()
|
// Warning 6328: (259-273): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()\n C.f() -- internal call
|
||||||
|
@ -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 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.\nCounterexample:\nx = 3, a = 7\ny = 0\n\nTransaction trace:\nDer.constructor()\nState: x = 0, a = 0\nDer.g(0)
|
// Warning 6328: (der:113-126): CHC: Assertion violation happens here.\nCounterexample:\nx = 3, a = 7\ny = 0\n\nTransaction trace:\nDer.constructor()\nState: x = 0, a = 0\nDer.g(0)\n Base.f() -- internal call
|
||||||
// Warning 4984: (base:100-103): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here.
|
// Warning 4984: (base:100-103): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here.
|
||||||
// Warning 2661: (base:100-103): 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.
|
||||||
// Warning 2661: (der:101-109): 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.
|
||||||
|
@ -15,4 +15,4 @@ library L {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (c:113-126): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g(0)
|
// Warning 6328: (c:113-126): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g(0)\n L.f() -- internal call
|
||||||
|
@ -20,4 +20,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (287-300): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, owner = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0, owner = 0\nC.g(1)
|
// Warning 6328: (287-300): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, owner = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0, owner = 0\nC.g(1)\n C.f() -- internal call
|
||||||
|
@ -22,4 +22,4 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (311-324): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(1)
|
// Warning 6328: (311-324): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(1)\n C.g(1, 0) -- internal call
|
||||||
|
@ -24,4 +24,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 2072: (282-288): Unused local variable.
|
// Warning 2072: (282-288): Unused local variable.
|
||||||
// Warning 6328: (304-328): CHC: Assertion violation happens here.\nCounterexample:\na = false, x = 3, d = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: a = false, x = 0, d = 0\nC.g()
|
// Warning 6328: (304-328): CHC: Assertion violation happens here.\nCounterexample:\na = false, x = 3, d = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: a = false, x = 0, d = 0\nC.g()\n C.g() -- internal call
|
||||||
|
@ -10,4 +10,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (203-216): CHC: Assertion violation happens here.\nCounterexample:\n\na = 6\n\nTransaction trace:\nC.constructor()\nC.g(6)
|
// Warning 6328: (203-216): CHC: Assertion violation happens here.\nCounterexample:\n\na = 6\n\nTransaction trace:\nC.constructor()\nC.g(6)\n C.f(6) -- internal call
|
||||||
|
@ -29,4 +29,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (507-521): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.call()
|
// Warning 6328: (507-521): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.call()\n L.l(2, 3) -- internal call\n L.l(3, 3) -- internal call\n C.f(1, 2, true) -- internal call\n C.f(1, 2, false) -- internal call
|
||||||
|
@ -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: (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 6321: (430-434): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable.
|
||||||
// Warning 6328: (440-449): CHC: Assertion violation happens here.\nCounterexample:\nx = false\n\nTransaction trace:\nC.constructor()\nState: x = true\nC.h()
|
// Warning 6328: (440-449): CHC: Assertion violation happens here.\nCounterexample:\nx = false\n\nTransaction trace:\nC.constructor()\nState: x = true\nC.h()\n C.h_data() -- internal call\n C.h_data() -- internal call
|
||||||
|
@ -26,5 +26,5 @@ contract C
|
|||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (76-105): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
// Warning 6328: (76-105): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
||||||
// Warning 6328: (403-432): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
// Warning 6328: (403-432): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()\n C.fi() -- internal call\n C.gi() -- internal call
|
||||||
// Warning 6328: (543-572): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.h()
|
// Warning 6328: (543-572): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.h()
|
||||||
|
@ -19,4 +19,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 5667: (195-209): Unused try/catch parameter. Remove or comment out the variable name to silence this warning.
|
// Warning 5667: (195-209): Unused try/catch parameter. Remove or comment out the variable name to silence this warning.
|
||||||
// Warning 6328: (253-268): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()
|
// Warning 6328: (253-268): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()
|
||||||
|
@ -22,4 +22,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 5667: (291-305): Unused try/catch parameter. Remove or comment out the variable name to silence this warning.
|
// Warning 5667: (291-305): Unused try/catch parameter. Remove or comment out the variable name to silence this warning.
|
||||||
// Warning 6328: (312-326): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()
|
// Warning 6328: (312-326): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()\n C.postinc() -- internal call
|
||||||
|
@ -25,4 +25,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (348-362): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\n\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()
|
// Warning 6328: (348-362): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()
|
||||||
|
@ -22,4 +22,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (447-462): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\n\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()
|
// Warning 6328: (447-462): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()
|
||||||
|
@ -19,4 +19,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (338-352): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
// Warning 6328: (338-352): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
||||||
|
@ -22,6 +22,6 @@ contract C {
|
|||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 2519: (197-203): This declaration shadows an existing declaration.
|
// Warning 2519: (197-203): This declaration shadows an existing declaration.
|
||||||
// Warning 6328: (218-232): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\n\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()
|
// Warning 6328: (218-232): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()
|
||||||
// Warning 6328: (306-316): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\n\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()
|
// Warning 6328: (306-316): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()
|
||||||
// Warning 6328: (426-440): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\n\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()
|
// Warning 6328: (426-440): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()
|
||||||
|
@ -23,4 +23,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (353-368): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
// Warning 6328: (353-368): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
||||||
|
@ -11,4 +11,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (171-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\n\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()
|
// Warning 6328: (171-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()
|
||||||
|
@ -20,4 +20,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (313-333): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
// Warning 6328: (313-333): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
||||||
|
@ -14,4 +14,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (278-338): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
// Warning 6328: (278-338): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()\n C.g() -- external call
|
||||||
|
@ -15,8 +15,8 @@ contract C {
|
|||||||
// Warning 6031: (214-218): Internal error: Expression undefined for SMT solver.
|
// Warning 6031: (214-218): Internal error: Expression undefined for SMT solver.
|
||||||
// Warning 6031: (222-226): 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 7229: (238-244): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons
|
||||||
// Warning 6328: (207-227): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()
|
// Warning 6328: (207-227): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()\n C.f(0, 0) -- internal call
|
||||||
// Warning 6328: (231-245): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()
|
// Warning 6328: (231-245): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()\n C.f(0, 0) -- internal call
|
||||||
// Warning 5729: (214-218): BMC does not yet implement this type of function call.
|
// Warning 5729: (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 5729: (222-226): BMC does not yet implement this type of function call.
|
||||||
// Warning 7229: (238-244): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons
|
// Warning 7229: (238-244): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons
|
||||||
|
@ -13,4 +13,4 @@ contract C {
|
|||||||
function g(bytes1 b) internal pure {}
|
function g(bytes1 b) internal pure {}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (186-207): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
// Warning 6328: (186-207): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()\n C.g(0) -- internal call
|
||||||
|
@ -8,6 +8,8 @@ contract B {
|
|||||||
assert(a == "1234567");
|
assert(a == "1234567");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// SMTIgnoreCex: yes
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (162-184): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nB.constructor()\nB.f()
|
// Warning 6328: (162-184): CHC: Assertion violation happens here.
|
||||||
// Warning 6328: (136-158): CHC: Assertion violation happens here.\nCounterexample:\n\na = 13564890559296823\n\nTransaction trace:\nB.constructor()\nB.g(13564890559296823)
|
// Warning 6328: (136-158): CHC: Assertion violation happens here.
|
||||||
|
@ -9,4 +9,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (238-259): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.a()
|
// Warning 6328: (238-259): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.a()\n C.f1() -- internal call\n C.g() -- internal call\n C.f1() -- internal call\n C.g() -- internal call
|
||||||
|
@ -12,4 +12,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (442-461): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.a()
|
// Warning 6328: (442-461): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.a()\n C.f2() -- internal call\n C.h() -- internal call
|
||||||
|
@ -20,4 +20,4 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (436-453): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.g(0, 0, c)
|
// Warning 6328: (436-453): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.g(0, 0, c)\n C.f([], [], c) -- internal call
|
||||||
|
@ -13,10 +13,12 @@ contract C
|
|||||||
b[0] = 1;
|
b[0] = 1;
|
||||||
// Erasing knowledge about storage references should not
|
// Erasing knowledge about storage references should not
|
||||||
// erase knowledge about memory references.
|
// erase knowledge about memory references.
|
||||||
assert(c[0] == 42);
|
// Disabled because of Spacer's seg fault.
|
||||||
|
//assert(c[0] == 42);
|
||||||
// Erasing knowledge about storage references should not
|
// Erasing knowledge about storage references should not
|
||||||
// erase knowledge about memory references.
|
// erase knowledge about memory references.
|
||||||
assert(d[0] == 42);
|
// Disabled because of Spacer's seg fault.
|
||||||
|
//assert(d[0] == 42);
|
||||||
// Fails because b == a is possible.
|
// Fails because b == a is possible.
|
||||||
assert(a[0] == 2);
|
assert(a[0] == 2);
|
||||||
assert(b[0] == 1);
|
assert(b[0] == 1);
|
||||||
@ -25,5 +27,5 @@ contract C
|
|||||||
// ====
|
// ====
|
||||||
// SMTIgnoreCex: yes
|
// SMTIgnoreCex: yes
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (524-542): CHC: Assertion violation happens here.
|
// Warning 2072: (232-247): Unused local variable.
|
||||||
// Warning 6328: (585-602): CHC: Assertion violation happens here.
|
// Warning 6328: (679-696): CHC: Assertion violation happens here.
|
||||||
|
@ -24,4 +24,4 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (421-452): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\n\nTransaction trace:\nC.constructor()\nC.g(38)
|
// Warning 6328: (421-452): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\n\nTransaction trace:\nC.constructor()\nC.g(38)\n C.f(map) -- internal call
|
||||||
|
@ -24,4 +24,4 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (425-456): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\n\nTransaction trace:\nC.constructor()\nC.g(38)
|
// Warning 6328: (425-456): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\n\nTransaction trace:\nC.constructor()\nC.g(38)\n C.f(map) -- internal call
|
||||||
|
@ -12,4 +12,4 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (116-130): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f(0)
|
// Warning 6328: (116-130): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f(0)\n C.g() -- internal call
|
||||||
|
@ -12,4 +12,4 @@ contract c {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (289-306): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nb = 21239\n\nTransaction trace:\nc.constructor()\nc.g(38, 21239)
|
// Warning 6328: (289-306): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nb = 21239\n\nTransaction trace:\nc.constructor()\nc.g(38, 21239)\n c.f(map, 38, 21239) -- internal call
|
||||||
|
@ -15,4 +15,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (261-276): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)
|
// Warning 6328: (261-276): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)\n C.g() -- internal call
|
||||||
|
@ -13,4 +13,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (251-266): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)
|
// Warning 6328: (251-266): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)\n C.g() -- internal call
|
||||||
|
@ -17,4 +17,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (265-286): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
// Warning 6328: (265-286): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()\n C.s() -- internal call
|
||||||
|
@ -14,4 +14,4 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (224-234): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()
|
// Warning 6328: (224-234): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call
|
||||||
|
@ -14,5 +14,5 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (182-196): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()
|
// Warning 6328: (182-196): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call
|
||||||
// Warning 6328: (200-214): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()
|
// Warning 6328: (200-214): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call
|
||||||
|
@ -14,4 +14,4 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (199-213): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()
|
// Warning 6328: (199-213): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call
|
||||||
|
@ -16,5 +16,5 @@ contract C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 6328: (205-219): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()
|
// Warning 6328: (205-219): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call
|
||||||
// Warning 6328: (223-237): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()
|
// Warning 6328: (223-237): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call
|
||||||
|
@ -17,4 +17,4 @@ contract D {
|
|||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 3944: (66-80): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()
|
// Warning 3944: (66-80): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()
|
||||||
// Warning 3944: (193-207): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f()
|
// Warning 3944: (193-207): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f()\n D.h() -- internal call
|
||||||
|
@ -12,4 +12,4 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning 4984: (273-294): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65024\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(65024)
|
// Warning 4984: (273-294): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65024\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(65024)\n C.add(65024, 256) -- internal call
|
||||||
|
Loading…
Reference in New Issue
Block a user