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
+10 -1
View File
@@ -51,7 +51,10 @@ namespace solidity::frontend
class SMTEncoder: public ASTConstVisitor
{
public:
SMTEncoder(smt::EncodingContext& _context);
SMTEncoder(
smt::EncodingContext& _context,
ModelCheckerSettings const& _settings
);
/// @returns true if engine should proceed with analysis.
bool analyze(SourceUnit const& _sources);
@@ -203,6 +206,10 @@ protected:
void visitFunctionIdentifier(Identifier const& _identifier);
void visitPublicGetter(FunctionCall const& _funCall);
/// @returns true if @param _contract is set for analysis in the settings
/// and it is not abstract.
bool shouldAnalyze(ContractDefinition const& _contract) const;
bool isPublicGetter(Expression const& _expr);
/// Encodes a modifier or function body according to the modifier
@@ -455,6 +462,8 @@ protected:
/// Stores the context of the encoding.
smt::EncodingContext& m_context;
ModelCheckerSettings const& m_settings;
smt::SymbolicState& state();
};