diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2017-08-24 07:27:09 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-24 07:27:09 +0800 |
commit | 957f23a9f4cb181b2dfaf0170816080513bfe786 (patch) | |
tree | c1d6de873c54380018f6a88d2fe687b5770c6db7 /libsolidity/interface/CompilerStack.cpp | |
parent | ee8fa886cc0fa39ae9c41e9685a576166362906c (diff) | |
parent | cf5e1d6120513c757bd5c71f1e3af972a9a63aeb (diff) | |
download | dexon-solidity-957f23a9f4cb181b2dfaf0170816080513bfe786.tar dexon-solidity-957f23a9f4cb181b2dfaf0170816080513bfe786.tar.gz dexon-solidity-957f23a9f4cb181b2dfaf0170816080513bfe786.tar.bz2 dexon-solidity-957f23a9f4cb181b2dfaf0170816080513bfe786.tar.lz dexon-solidity-957f23a9f4cb181b2dfaf0170816080513bfe786.tar.xz dexon-solidity-957f23a9f4cb181b2dfaf0170816080513bfe786.tar.zst dexon-solidity-957f23a9f4cb181b2dfaf0170816080513bfe786.zip |
Merge pull request #2538 from ethereum/z3Conditions
z3 conditions
Diffstat (limited to 'libsolidity/interface/CompilerStack.cpp')
-rw-r--r-- | libsolidity/interface/CompilerStack.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp index 412d2fd3..363f45dd 100644 --- a/libsolidity/interface/CompilerStack.cpp +++ b/libsolidity/interface/CompilerStack.cpp @@ -37,6 +37,7 @@ #include <libsolidity/analysis/PostTypeChecker.h> #include <libsolidity/analysis/SyntaxChecker.h> #include <libsolidity/codegen/Compiler.h> +#include <libsolidity/formal/SMTChecker.h> #include <libsolidity/interface/ABI.h> #include <libsolidity/interface/Natspec.h> #include <libsolidity/interface/GasEstimator.h> @@ -238,6 +239,13 @@ bool CompilerStack::analyze() if (noErrors) { + SMTChecker smtChecker(m_errorReporter, m_smtQuery); + for (Source const* source: m_sourceOrder) + smtChecker.analyze(*source->ast); + } + + if (noErrors) + { m_stackState = AnalysisSuccessful; return true; } @@ -527,17 +535,17 @@ StringMap CompilerStack::loadMissingSources(SourceUnit const& _ast, std::string if (m_sources.count(importPath) || newSources.count(importPath)) continue; - ReadFile::Result result{false, string("File not supplied initially.")}; + ReadCallback::Result result{false, string("File not supplied initially.")}; if (m_readFile) result = m_readFile(importPath); if (result.success) - newSources[importPath] = result.contentsOrErrorMessage; + newSources[importPath] = result.responseOrErrorMessage; else { m_errorReporter.parserError( import->location(), - string("Source \"" + importPath + "\" not found: " + result.contentsOrErrorMessage) + string("Source \"" + importPath + "\" not found: " + result.responseOrErrorMessage) ); continue; } |