compiler: fix null-dereference on invalid len() arg.

This patch fixes an ICE caused by syntax errors in arguments
to unary built-in functions like len().

Updates issue 7.

From Rémy Oudompheng.

From-SVN: r185936
This commit is contained in:
Ian Lance Taylor 2012-03-28 22:31:20 +00:00
parent e72e40d1b5
commit 24f609f690
1 changed files with 2 additions and 2 deletions

View File

@ -6609,7 +6609,7 @@ Builtin_call_expression::do_lower(Gogo* gogo, Named_object* function,
if (this->code_ == BUILTIN_LEN || this->code_ == BUILTIN_CAP)
{
Expression* arg = this->one_arg();
if (!arg->is_constant())
if (arg != NULL && !arg->is_constant())
{
Find_call_expression find_call;
Expression::traverse(&arg, &find_call);
@ -6929,7 +6929,7 @@ Expression*
Builtin_call_expression::one_arg() const
{
const Expression_list* args = this->args();
if (args->size() != 1)
if (args == NULL || args->size() != 1)
return NULL;
return args->front();
}