mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Rename function and warn if responses are supplied for Z3.
This commit is contained in:
parent
bb10be789c
commit
54bed454f6
@ -41,7 +41,13 @@ SMTPortfolio::SMTPortfolio(map<h256, string> const& _smtlib2Responses)
|
||||
m_solvers.emplace_back(make_shared<smt::CVC4Interface>());
|
||||
#endif
|
||||
#if !defined (HAVE_Z3) && !defined (HAVE_CVC4)
|
||||
m_solvers.emplace_back(make_shared<smt::SMTLib2Interface>(_smtlib2Responses)),
|
||||
m_solvers.emplace_back(make_shared<smt::SMTLib2Interface>(_smtlib2Responses));
|
||||
#else
|
||||
if (!_smtlib2Responses.empty())
|
||||
m_errorReporter.warning(
|
||||
"Query responses for smtlib2 were given in the auxiliary input, "
|
||||
"but this Solidity binary uses an SMT solver directly."
|
||||
);
|
||||
#endif
|
||||
(void)_smtlib2Responses;
|
||||
}
|
||||
|
@ -156,10 +156,6 @@ public:
|
||||
/// Adds a response to an SMTLib2 query (identified by the hash of the query input).
|
||||
void addSMTLib2Response(h256 const& _hash, std::string const& _response) { m_smtlib2Responses[_hash] = _response; }
|
||||
|
||||
/// @returns a list of unhandled queries to the SMT solver (has to be supplied in a second run
|
||||
/// by calling @a addSMTLib2Response.
|
||||
std::vector<std::string> const& unhandledSMTQueries() const { return m_unhandledSMTLib2Queries; }
|
||||
|
||||
/// Parses all source units that were added
|
||||
/// @returns false on error.
|
||||
bool parse();
|
||||
@ -195,6 +191,10 @@ public:
|
||||
/// start line, start column, end line, end column
|
||||
std::tuple<int, int, int, int> positionFromSourceLocation(langutil::SourceLocation const& _sourceLocation) const;
|
||||
|
||||
/// @returns a list of unhandled queries to the SMT solver (has to be supplied in a second run
|
||||
/// by calling @a addSMTLib2Response).
|
||||
std::vector<std::string> const& unhandledSMTLib2Queries() const { return m_unhandledSMTLib2Queries; }
|
||||
|
||||
/// @returns a list of the contract names in the sources.
|
||||
std::vector<std::string> contractNames() const;
|
||||
|
||||
|
@ -539,8 +539,8 @@ Json::Value StandardCompiler::compileInternal(Json::Value const& _input)
|
||||
if (errors.size() > 0)
|
||||
output["errors"] = errors;
|
||||
|
||||
if (!m_compilerStack.unhandledSMTQueries().empty())
|
||||
for (string const& query: m_compilerStack.unhandledSMTQueries())
|
||||
if (!m_compilerStack.unhandledSMTLib2Queries().empty())
|
||||
for (string const& query: m_compilerStack.unhandledSMTLib2Queries())
|
||||
output["auxiliaryInputRequested"]["smtlib2"]["0x" + keccak256(query).hex()] = query;
|
||||
|
||||
output["sources"] = Json::objectValue;
|
||||
|
Loading…
Reference in New Issue
Block a user