Merge pull request #392 from chriseth/fixsegfault

Fixsegfault
This commit is contained in:
chriseth 2016-02-13 01:24:40 +01:00
commit a14185a5cb
2 changed files with 18 additions and 0 deletions

View File

@ -504,6 +504,7 @@ void TypeChecker::visitManually(
return;
}
if (parameters->size() != arguments.size())
{
typeError(
_modifier.location(),
"Wrong argument count for modifier invocation: " +
@ -512,6 +513,8 @@ void TypeChecker::visitManually(
toString(parameters->size()) +
"."
);
return;
}
for (size_t i = 0; i < _modifier.arguments().size(); ++i)
if (!type(*arguments[i])->isImplicitlyConvertibleTo(*type(*(*parameters)[i])))
typeError(

View File

@ -3136,6 +3136,21 @@ BOOST_AUTO_TEST_CASE(conditional_with_all_types)
BOOST_CHECK(success(text));
}
BOOST_AUTO_TEST_CASE(constructor_call_invalid_arg_count)
{
// This caused a segfault in an earlier version
char const* text = R"(
contract C {
function C(){}
}
contract D is C {
function D() C(5){}
}
)";
BOOST_CHECK(expectError(text) == Error::Type::TypeError);
}
BOOST_AUTO_TEST_CASE(index_access_for_bytes)
{
char const* text = R"(