From: Ian Lance Taylor Date: Thu, 12 Dec 2013 20:42:24 +0000 (+0000) Subject: compiler: Tweak untyped nil error message. X-Git-Tag: releases/gcc-4.9.0~2111 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3a24b26591ef6a0f19901ddc4fd7931c9297b899;p=thirdparty%2Fgcc.git compiler: Tweak untyped nil error message. From-SVN: r205941 --- diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 4f9368ed2551..a5a056b12edd 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -7310,7 +7310,11 @@ Builtin_call_expression::do_lower(Gogo* gogo, Named_object* function, Type* slice_type = args->front()->type(); if (!slice_type->is_slice_type()) { - error_at(args->front()->location(), "argument 1 must be a slice"); + if (slice_type->is_nil_type()) + error_at(args->front()->location(), "use of untyped nil"); + else + error_at(args->front()->location(), + "argument 1 must be a slice"); this->set_is_error(); return this; } @@ -8008,7 +8012,10 @@ Builtin_call_expression::do_type() const Expression_list* args = this->args(); if (args == NULL || args->empty()) return Type::make_error_type(); - return args->front()->type(); + Type *ret = args->front()->type(); + if (!ret->is_slice_type()) + return Type::make_error_type(); + return ret; } case BUILTIN_REAL: