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:
parent
e72e40d1b5
commit
24f609f690
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue