Choose contracts to be analyzed by the SMTChecker

This commit is contained in:
Leonardo Alt
2021-04-21 10:34:14 +02:00
parent c3f639b355
commit dd1865873e
79 changed files with 1068 additions and 24 deletions
+15 -2
View File
@@ -43,9 +43,13 @@ using namespace solidity::util;
using namespace solidity::langutil;
using namespace solidity::frontend;
SMTEncoder::SMTEncoder(smt::EncodingContext& _context):
SMTEncoder::SMTEncoder(
smt::EncodingContext& _context,
ModelCheckerSettings const& _settings
):
m_errorReporter(m_smtErrors),
m_context(_context)
m_context(_context),
m_settings(_settings)
{
}
@@ -992,6 +996,15 @@ void SMTEncoder::visitPublicGetter(FunctionCall const& _funCall)
}
}
bool SMTEncoder::shouldAnalyze(ContractDefinition const& _contract) const
{
if (!_contract.canBeDeployed())
return false;
return m_settings.contracts.isDefault() ||
m_settings.contracts.has(_contract.sourceUnitName(), _contract.name());
}
void SMTEncoder::visitTypeConversion(FunctionCall const& _funCall)
{
solAssert(*_funCall.annotation().kind == FunctionCallKind::TypeConversion, "");