aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorFederico Bond <federicobond@gmail.com>2017-06-15 23:36:14 +0800
committerFederico Bond <federicobond@gmail.com>2017-06-22 09:46:27 +0800
commit0f8ad1d68f60270fb22057e787ff689318c31fa9 (patch)
tree5b6f9f78fdce1e7164c4ebf94011d1598664f1c5 /test
parent26ea9ce07cf85849cd881465a4322f14bff87eb8 (diff)
downloaddexon-solidity-0f8ad1d68f60270fb22057e787ff689318c31fa9.tar.gz
dexon-solidity-0f8ad1d68f60270fb22057e787ff689318c31fa9.tar.zst
dexon-solidity-0f8ad1d68f60270fb22057e787ff689318c31fa9.zip
Fix segmentation fault with constant function parameters
Diffstat (limited to 'test')
-rw-r--r--test/libsolidity/SolidityNameAndTypeResolution.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp
index 0b3cb481..c4b1250f 100644
--- a/test/libsolidity/SolidityNameAndTypeResolution.cpp
+++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp
@@ -1597,6 +1597,16 @@ BOOST_AUTO_TEST_CASE(empty_name_input_parameter)
CHECK_SUCCESS(text);
}
+BOOST_AUTO_TEST_CASE(constant_input_parameter)
+{
+ char const* text = R"(
+ contract test {
+ function f(uint[] constant a) { }
+ }
+ )";
+ CHECK_ERROR_ALLOW_MULTI(text, TypeError, "Illegal use of \"constant\" specifier.");
+}
+
BOOST_AUTO_TEST_CASE(empty_name_return_parameter)
{
char const* text = R"(
@@ -5582,6 +5592,16 @@ BOOST_AUTO_TEST_CASE(interface_variables)
CHECK_ERROR(text, TypeError, "Variables cannot be declared in interfaces");
}
+BOOST_AUTO_TEST_CASE(interface_function_parameters)
+{
+ char const* text = R"(
+ interface I {
+ function f(uint a) returns(bool);
+ }
+ )";
+ success(text);
+}
+
BOOST_AUTO_TEST_CASE(interface_enums)
{
char const* text = R"(