mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Fix crash when using json compiler with exponentiation.
This commit is contained in:
parent
0d736fde6d
commit
345c0f36fb
@ -466,7 +466,8 @@ bool Why3Translator::visit(BinaryOperation const& _binaryOperation)
|
||||
auto const& constantNumber = dynamic_cast<RationalNumberType const&>(commonType);
|
||||
if (constantNumber.isFractional())
|
||||
error(_binaryOperation, "Fractional numbers not supported.");
|
||||
add("(of_int " + toString(commonType.literalValue(nullptr)) + ")");
|
||||
else
|
||||
add("(of_int " + toString(commonType.literalValue(nullptr)) + ")");
|
||||
return false;
|
||||
}
|
||||
static const map<Token::Value, char const*> optrans({
|
||||
@ -488,7 +489,10 @@ bool Why3Translator::visit(BinaryOperation const& _binaryOperation)
|
||||
{Token::GreaterThanOrEqual, " >= "}
|
||||
});
|
||||
if (!optrans.count(c_op))
|
||||
{
|
||||
error(_binaryOperation, "Operator not supported.");
|
||||
return true;
|
||||
}
|
||||
|
||||
add("(");
|
||||
leftExpression.accept(*this);
|
||||
@ -676,7 +680,8 @@ bool Why3Translator::visit(Literal const& _literal)
|
||||
auto const& constantNumber = dynamic_cast<RationalNumberType const&>(*type);
|
||||
if (constantNumber.isFractional())
|
||||
error(_literal, "Fractional numbers not supported.");
|
||||
add("(of_int " + toString(type->literalValue(&_literal)) + ")");
|
||||
else
|
||||
add("(of_int " + toString(type->literalValue(&_literal)) + ")");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user