aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libdevcore/CommonData.h8
-rw-r--r--libjulia/optimiser/SimplificationRules.cpp2
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)
{