diff --git a/test/tools/ossfuzz/SolidityGenerator.h b/test/tools/ossfuzz/SolidityGenerator.h index 1ee9f04d8..b18352ab1 100644 --- a/test/tools/ossfuzz/SolidityGenerator.h +++ b/test/tools/ossfuzz/SolidityGenerator.h @@ -30,6 +30,7 @@ #include #include #include +#include namespace solidity::test::fuzzer::mutator { @@ -112,20 +113,26 @@ struct ContractState std::shared_ptr uRandDist; }; +struct Type {}; +struct FunctionType: Type +{ + std::vector inputs; + std::vector outputs; +}; + struct SourceState { explicit SourceState(std::shared_ptr _urd): uRandDist(std::move(_urd)), - importedSources({}), - freeFunctions({}) + importedSources({}) {} void addFreeFunction(std::string& _functionName) { - freeFunctions.emplace(_functionName); + exports[std::make_shared()] = _functionName; } bool freeFunction(std::string const& _functionName) { - return freeFunctions.count(_functionName); + return !(exports | ranges::views::filter([&_functionName](auto& _p) { return _p.second == _functionName; })).empty(); } void addImportedSourcePath(std::string& _sourcePath) { @@ -143,7 +150,7 @@ struct SourceState void print(std::ostream& _os) const; std::shared_ptr uRandDist; std::set importedSources; - std::set freeFunctions; + std::map, std::string> exports; }; struct FunctionState {};