Merge pull request #7730 from ethereum/fix-7693

Add chainid and selfbalance opcodes to yul proto fuzzer
This commit is contained in:
chriseth 2019-11-18 11:23:30 +01:00 committed by GitHub
commit 79af19db83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 3 deletions

View File

@ -437,6 +437,12 @@ void ProtoConverter::visit(NullaryOp const& _x)
case NullaryOp::GASLIMIT:
m_output << "gaslimit()";
break;
case NullaryOp::SELFBALANCE:
m_output << "selfbalance()";
break;
case NullaryOp::CHAINID:
m_output << "chainid()";
break;
}
}

View File

@ -237,6 +237,8 @@ message NullaryOp {
NUMBER = 14;
DIFFICULTY = 15;
GASLIMIT = 16;
SELFBALANCE = 17;
CHAINID = 18;
}
required NOp op = 1;
}

View File

@ -70,7 +70,7 @@ DEFINE_PROTO_FUZZER(Program const& _input)
// AssemblyStack entry point
AssemblyStack stack(
langutil::EVMVersion(),
langutil::EVMVersion(langutil::EVMVersion::istanbul()),
AssemblyStack::Language::StrictAssembly,
dev::solidity::OptimiserSettings::full()
);
@ -95,7 +95,7 @@ DEFINE_PROTO_FUZZER(Program const& _input)
yulFuzzerUtil::TerminationReason termReason = yulFuzzerUtil::interpret(
os1,
stack.parserResult()->code,
EVMDialect::strictAssemblyForEVMObjects(langutil::EVMVersion())
EVMDialect::strictAssemblyForEVMObjects(langutil::EVMVersion(langutil::EVMVersion::istanbul()))
);
if (termReason == yulFuzzerUtil::TerminationReason::StepLimitReached)
@ -105,7 +105,7 @@ DEFINE_PROTO_FUZZER(Program const& _input)
termReason = yulFuzzerUtil::interpret(
os2,
stack.parserResult()->code,
EVMDialect::strictAssemblyForEVMObjects(langutil::EVMVersion()),
EVMDialect::strictAssemblyForEVMObjects(langutil::EVMVersion(langutil::EVMVersion::istanbul())),
(yul::test::yul_fuzzer::yulFuzzerUtil::maxSteps * 4)
);