aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
authorGav Wood <g@ethdev.com>2015-07-15 00:18:38 +0800
committerGav Wood <g@ethdev.com>2015-07-15 00:18:38 +0800
commita904cafa389c46eb5ce0961fccb424f058ac977d (patch)
tree5ff66964cb77cbcf17957eed474d180945948a53 /libsolidity
parentab75d542813898349f3ff54de5e5388fbb437330 (diff)
parentcd264b72ab9aae337ed9e0887cd0449dfa82f2b3 (diff)
downloaddexon-solidity-a904cafa389c46eb5ce0961fccb424f058ac977d.tar
dexon-solidity-a904cafa389c46eb5ce0961fccb424f058ac977d.tar.gz
dexon-solidity-a904cafa389c46eb5ce0961fccb424f058ac977d.tar.bz2
dexon-solidity-a904cafa389c46eb5ce0961fccb424f058ac977d.tar.lz
dexon-solidity-a904cafa389c46eb5ce0961fccb424f058ac977d.tar.xz
dexon-solidity-a904cafa389c46eb5ce0961fccb424f058ac977d.tar.zst
dexon-solidity-a904cafa389c46eb5ce0961fccb424f058ac977d.zip
Merge pull request #2473 from chriseth/sol_fix_exponentialNotation
Check whether a literal is a valid literal before using it.
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/SolidityNameAndTypeResolution.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/libsolidity/SolidityNameAndTypeResolution.cpp b/libsolidity/SolidityNameAndTypeResolution.cpp
index 1e40ee4f..0f5e4800 100644
--- a/libsolidity/SolidityNameAndTypeResolution.cpp
+++ b/libsolidity/SolidityNameAndTypeResolution.cpp
@@ -2110,6 +2110,30 @@ BOOST_AUTO_TEST_CASE(literal_strings)
BOOST_CHECK_NO_THROW(parseTextAndResolveNames(text));
}
+BOOST_AUTO_TEST_CASE(invalid_integer_literal_fraction)
+{
+ char const* text = R"(
+ contract Foo {
+ function f() {
+ var x = 1.20;
+ }
+ }
+ )";
+ BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
+}
+
+BOOST_AUTO_TEST_CASE(invalid_integer_literal_exp)
+{
+ char const* text = R"(
+ contract Foo {
+ function f() {
+ var x = 1e2;
+ }
+ }
+ )";
+ BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
+}
+
BOOST_AUTO_TEST_SUITE_END()
}