From: Ian Lance Taylor Date: Wed, 28 Mar 2012 22:31:02 +0000 (+0000) Subject: compiler: fix null-dereference on invalid len() arg. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2e540b505941a63f422d865c2a1490193e459d38;p=gcc.git 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: r185935 --- diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index f1e06397cfa..13c7de37835 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -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(); }