From 7c806217fb83c8e4947bf14df76400dd4b2b7c16 Mon Sep 17 00:00:00 2001 From: Bhargava Shastry Date: Wed, 17 Feb 2021 10:21:57 +0100 Subject: [PATCH] Changes to yul proto mutator. --- test/tools/ossfuzz/protoToYul.h | 10 +++++++++- test/tools/ossfuzz/protomutators/YulProtoMutator.cpp | 12 +++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/test/tools/ossfuzz/protoToYul.h b/test/tools/ossfuzz/protoToYul.h index aff9fe940..9100b490c 100644 --- a/test/tools/ossfuzz/protoToYul.h +++ b/test/tools/ossfuzz/protoToYul.h @@ -102,7 +102,15 @@ private: void visit(RetRevStmt const&); void visit(SelfDestructStmt const&); void visit(TerminatingStmt const&); - void visit(FunctionCall const&, std::string const&, bool _expression = false); + /// @param _f is the function call to be visited. + /// @param _name is the name of the function called. + /// @param _expression is a flag that is true if the function is called + /// as a single-value expression, false otherwise. + void visit( + FunctionCall const& _f, + std::string const& _name, + bool _expression = false + ); void visit(FunctionDef const&); void visit(PopStmt const&); void visit(LeaveStmt const&); diff --git a/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp b/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp index 07d7191b8..f1f3fbc93 100644 --- a/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp +++ b/test/tools/ossfuzz/protomutators/YulProtoMutator.cpp @@ -107,9 +107,7 @@ template T YPM::EnumTypeConverter::validEnum(unsigned _seed) { auto ret = static_cast(_seed % (enumMax() - enumMin() + 1) + enumMin()); - if constexpr (std::is_same_v, FunctionCall_Returns>) - yulAssert(FunctionCall_Returns_IsValid(ret), "Yul proto mutator: Invalid enum"); - else if constexpr (std::is_same_v, StoreFunc_Storage>) + if constexpr (std::is_same_v, StoreFunc_Storage>) yulAssert(StoreFunc_Storage_IsValid(ret), "Yul proto mutator: Invalid enum"); else if constexpr (std::is_same_v, NullaryOp_NOp>) yulAssert(NullaryOp_NOp_IsValid(ret), "Yul proto mutator: Invalid enum"); @@ -131,9 +129,7 @@ T YPM::EnumTypeConverter::validEnum(unsigned _seed) template unsigned YPM::EnumTypeConverter::enumMax() { - if constexpr (std::is_same_v, FunctionCall_Returns>) - return FunctionCall_Returns_Returns_MAX; - else if constexpr (std::is_same_v, StoreFunc_Storage>) + if constexpr (std::is_same_v, StoreFunc_Storage>) return StoreFunc_Storage_Storage_MAX; else if constexpr (std::is_same_v, NullaryOp_NOp>) return NullaryOp_NOp_NOp_MAX; @@ -154,9 +150,7 @@ unsigned YPM::EnumTypeConverter::enumMax() template unsigned YPM::EnumTypeConverter::enumMin() { - if constexpr (std::is_same_v, FunctionCall_Returns>) - return FunctionCall_Returns_Returns_MIN; - else if constexpr (std::is_same_v, StoreFunc_Storage>) + if constexpr (std::is_same_v, StoreFunc_Storage>) return StoreFunc_Storage_Storage_MIN; else if constexpr (std::is_same_v, NullaryOp_NOp>) return NullaryOp_NOp_NOp_MIN;