aboutsummaryrefslogtreecommitdiffstats
path: root/libyul/optimiser/Utilities.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-12-20 01:06:13 +0800
committerGitHub <noreply@github.com>2018-12-20 01:06:13 +0800
commit1df8f40cd2fd7b47698d847907b8ca7b47eb488d (patch)
tree5ed5816fe2d1a8a207e750d39884aca7957c8289 /libyul/optimiser/Utilities.cpp
parentc8a2cb62832afb2dc09ccee6fd42c1516dfdb981 (diff)
parentddf54b21d1d002903624f61173ab4af197f50053 (diff)
downloaddexon-solidity-1df8f40cd2fd7b47698d847907b8ca7b47eb488d.tar
dexon-solidity-1df8f40cd2fd7b47698d847907b8ca7b47eb488d.tar.gz
dexon-solidity-1df8f40cd2fd7b47698d847907b8ca7b47eb488d.tar.bz2
dexon-solidity-1df8f40cd2fd7b47698d847907b8ca7b47eb488d.tar.lz
dexon-solidity-1df8f40cd2fd7b47698d847907b8ca7b47eb488d.tar.xz
dexon-solidity-1df8f40cd2fd7b47698d847907b8ca7b47eb488d.tar.zst
dexon-solidity-1df8f40cd2fd7b47698d847907b8ca7b47eb488d.zip
Merge pull request #5697 from ethereum/develop
Merge develop into release for 0.5.2
Diffstat (limited to 'libyul/optimiser/Utilities.cpp')
-rw-r--r--libyul/optimiser/Utilities.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/libyul/optimiser/Utilities.cpp b/libyul/optimiser/Utilities.cpp
index b8cdd339..b3b580d5 100644
--- a/libyul/optimiser/Utilities.cpp
+++ b/libyul/optimiser/Utilities.cpp
@@ -21,6 +21,7 @@
#include <libyul/optimiser/Utilities.h>
#include <libyul/AsmData.h>
+#include <libyul/Exceptions.h>
#include <libdevcore/CommonData.h>
@@ -37,3 +38,11 @@ void yul::removeEmptyBlocks(Block& _block)
};
boost::range::remove_erase_if(_block.statements, isEmptyBlock);
}
+
+u256 yul::valueOfNumberLiteral(Literal const& _literal)
+{
+ assertThrow(_literal.kind == LiteralKind::Number, OptimizerException, "");
+ std::string const& literalString = _literal.value.str();
+ assertThrow(isValidDecimal(literalString) || isValidHex(literalString), OptimizerException, "");
+ return u256(literalString);
+}