mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[SMTChecker] Fix require with message
This commit is contained in:
parent
22776cddcd
commit
75663dc91e
@ -386,7 +386,7 @@ void BMC::visitAssert(FunctionCall const& _funCall)
|
|||||||
void BMC::visitRequire(FunctionCall const& _funCall)
|
void BMC::visitRequire(FunctionCall const& _funCall)
|
||||||
{
|
{
|
||||||
auto const& args = _funCall.arguments();
|
auto const& args = _funCall.arguments();
|
||||||
solAssert(args.size() == 1, "");
|
solAssert(args.size() >= 1, "");
|
||||||
solAssert(args.front()->annotation().type->category() == Type::Category::Bool, "");
|
solAssert(args.front()->annotation().type->category() == Type::Category::Bool, "");
|
||||||
if (isRootFunction())
|
if (isRootFunction())
|
||||||
addVerificationTarget(
|
addVerificationTarget(
|
||||||
|
@ -501,16 +501,16 @@ void SMTEncoder::visitAssert(FunctionCall const& _funCall)
|
|||||||
{
|
{
|
||||||
auto const& args = _funCall.arguments();
|
auto const& args = _funCall.arguments();
|
||||||
solAssert(args.size() == 1, "");
|
solAssert(args.size() == 1, "");
|
||||||
solAssert(args[0]->annotation().type->category() == Type::Category::Bool, "");
|
solAssert(args.front()->annotation().type->category() == Type::Category::Bool, "");
|
||||||
addPathImpliedExpression(expr(*args[0]));
|
addPathImpliedExpression(expr(*args.front()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SMTEncoder::visitRequire(FunctionCall const& _funCall)
|
void SMTEncoder::visitRequire(FunctionCall const& _funCall)
|
||||||
{
|
{
|
||||||
auto const& args = _funCall.arguments();
|
auto const& args = _funCall.arguments();
|
||||||
solAssert(args.size() == 1, "");
|
solAssert(args.size() >= 1, "");
|
||||||
solAssert(args[0]->annotation().type->category() == Type::Category::Bool, "");
|
solAssert(args.front()->annotation().type->category() == Type::Category::Bool, "");
|
||||||
addPathImpliedExpression(expr(*args[0]));
|
addPathImpliedExpression(expr(*args.front()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SMTEncoder::visitGasLeft(FunctionCall const& _funCall)
|
void SMTEncoder::visitGasLeft(FunctionCall const& _funCall)
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
pragma experimental SMTChecker;
|
||||||
|
contract C {
|
||||||
|
function f(uint a) public pure {
|
||||||
|
require(a < 10, "Input number is too large.");
|
||||||
|
assert(a < 20);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ----
|
||||||
|
// Warning: (97-125): Assertion checker does not yet support the type of this literal (literal_string "Input number is too large.").
|
Loading…
Reference in New Issue
Block a user