diff options
-rw-r--r-- | libdevcore/CommonData.h | 8 | ||||
-rw-r--r-- | libjulia/optimiser/SimplificationRules.cpp | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/libdevcore/CommonData.h b/libdevcore/CommonData.h index b85abe95..e410af5c 100644 --- a/libdevcore/CommonData.h +++ b/libdevcore/CommonData.h @@ -155,6 +155,14 @@ inline std::string formatNumber(bigint const& _value) return _value.str(); } +inline std::string formatNumber(u256 const& _value) +{ + if (_value > 0x1000000) + return toHex(toCompactBigEndian(_value), 2, HexPrefix::Add); + else + return _value.str(); +} + inline std::string toCompactHexWithPrefix(u256 val) { std::ostringstream ret; diff --git a/libjulia/optimiser/SimplificationRules.cpp b/libjulia/optimiser/SimplificationRules.cpp index a439caef..e5dbb059 100644 --- a/libjulia/optimiser/SimplificationRules.cpp +++ b/libjulia/optimiser/SimplificationRules.cpp @@ -154,7 +154,7 @@ Expression Pattern::toExpression(SourceLocation const& _location) const if (m_kind == PatternKind::Constant) { assertThrow(m_data, OptimizerException, "No match group and no constant value given."); - return Literal{_location, assembly::LiteralKind::Number, m_data->str(), ""}; + return Literal{_location, assembly::LiteralKind::Number, formatNumber(*m_data), ""}; } else if (m_kind == PatternKind::Operation) { |