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); | 		auto const& constantNumber = dynamic_cast<RationalNumberType const&>(commonType); | ||||||
| 		if (constantNumber.isFractional()) | 		if (constantNumber.isFractional()) | ||||||
| 			error(_binaryOperation, "Fractional numbers not supported."); | 			error(_binaryOperation, "Fractional numbers not supported."); | ||||||
| 		add("(of_int " + toString(commonType.literalValue(nullptr)) + ")"); | 		else | ||||||
|  | 			add("(of_int " + toString(commonType.literalValue(nullptr)) + ")"); | ||||||
| 		return false; | 		return false; | ||||||
| 	} | 	} | ||||||
| 	static const map<Token::Value, char const*> optrans({ | 	static const map<Token::Value, char const*> optrans({ | ||||||
| @ -488,7 +489,10 @@ bool Why3Translator::visit(BinaryOperation const& _binaryOperation) | |||||||
| 		{Token::GreaterThanOrEqual, " >= "} | 		{Token::GreaterThanOrEqual, " >= "} | ||||||
| 	}); | 	}); | ||||||
| 	if (!optrans.count(c_op)) | 	if (!optrans.count(c_op)) | ||||||
|  | 	{ | ||||||
| 		error(_binaryOperation, "Operator not supported."); | 		error(_binaryOperation, "Operator not supported."); | ||||||
|  | 		return true; | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	add("("); | 	add("("); | ||||||
| 	leftExpression.accept(*this); | 	leftExpression.accept(*this); | ||||||
| @ -676,7 +680,8 @@ bool Why3Translator::visit(Literal const& _literal) | |||||||
| 		auto const& constantNumber = dynamic_cast<RationalNumberType const&>(*type); | 		auto const& constantNumber = dynamic_cast<RationalNumberType const&>(*type); | ||||||
| 		if (constantNumber.isFractional()) | 		if (constantNumber.isFractional()) | ||||||
| 			error(_literal, "Fractional numbers not supported."); | 			error(_literal, "Fractional numbers not supported."); | ||||||
| 		add("(of_int " + toString(type->literalValue(&_literal)) + ")"); | 		else | ||||||
|  | 			add("(of_int " + toString(type->literalValue(&_literal)) + ")"); | ||||||
| 		break; | 		break; | ||||||
| 	}	 | 	}	 | ||||||
| 	default: | 	default: | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user