aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/formal/SMTChecker.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-04-20 01:24:01 +0800
committerGitHub <noreply@github.com>2018-04-20 01:24:01 +0800
commit124ca40dc525a987a88176c6e5170978e82fa290 (patch)
treeb1c1da8a9a6ba886bb43f115328a18222f59553d /libsolidity/formal/SMTChecker.cpp
parent4cb486ee993cadde5564fb6c611d2bcf4fc44414 (diff)
parent7fb431ad7d0f7667c83d3f9b2350c3a1cef73b9e (diff)
downloaddexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar.gz
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar.bz2
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar.lz
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar.xz
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar.zst
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.zip
Merge pull request #3950 from ethereum/develop
Merge develop into release for 0.4.23
Diffstat (limited to 'libsolidity/formal/SMTChecker.cpp')
-rw-r--r--libsolidity/formal/SMTChecker.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/libsolidity/formal/SMTChecker.cpp b/libsolidity/formal/SMTChecker.cpp
index 8f4abdc2..777e57c3 100644
--- a/libsolidity/formal/SMTChecker.cpp
+++ b/libsolidity/formal/SMTChecker.cpp
@@ -19,6 +19,8 @@
#ifdef HAVE_Z3
#include <libsolidity/formal/Z3Interface.h>
+#elif HAVE_CVC4
+#include <libsolidity/formal/CVC4Interface.h>
#else
#include <libsolidity/formal/SMTLib2Interface.h>
#endif
@@ -39,6 +41,8 @@ using namespace dev::solidity;
SMTChecker::SMTChecker(ErrorReporter& _errorReporter, ReadCallback::Callback const& _readFileCallback):
#ifdef HAVE_Z3
m_interface(make_shared<smt::Z3Interface>()),
+#elif HAVE_CVC4
+ m_interface(make_shared<smt::CVC4Interface>()),
#else
m_interface(make_shared<smt::SMTLib2Interface>(_readFileCallback)),
#endif
@@ -464,7 +468,7 @@ void SMTChecker::compareOperation(BinaryOperation const& _op)
}
else // Bool
{
- solAssert(SSAVariable::isBool(_op.annotation().commonType->category()), "");
+ solUnimplementedAssert(SSAVariable::isBool(_op.annotation().commonType->category()), "Operation not yet supported");
value = make_shared<smt::Expression>(
op == Token::Equal ? (left == right) :
op == Token::NotEqual ? (left != right) :
@@ -835,7 +839,7 @@ void SMTChecker::createExpr(Expression const& _e)
m_expressions.emplace(&_e, m_interface->newBool(uniqueSymbol(_e)));
break;
default:
- solAssert(false, "Type not implemented.");
+ solUnimplementedAssert(false, "Type not implemented.");
}
}
}