aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend/expressions.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2022-07-03 14:37:23 -0700
committerIan Lance Taylor <iant@golang.org>2022-07-05 17:11:05 -0700
commitc70a48a8f8f6a43b35f783b5672c9a3c0a363c31 (patch)
treec51ac04b3992234f5f135371b95e750896ae8bd5 /gcc/go/gofrontend/expressions.cc
parentccc39d9e97ce24623aefae2097bff791e01619d9 (diff)
downloadgcc-c70a48a8f8f6a43b35f783b5672c9a3c0a363c31.zip
gcc-c70a48a8f8f6a43b35f783b5672c9a3c0a363c31.tar.gz
gcc-c70a48a8f8f6a43b35f783b5672c9a3c0a363c31.tar.bz2
compiler: propagate array length error marker farther
Fixes golang/go#53639 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/415936
Diffstat (limited to 'gcc/go/gofrontend/expressions.cc')
-rw-r--r--gcc/go/gofrontend/expressions.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index 00d35a9..2492d9f 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -8486,6 +8486,11 @@ Builtin_call_expression::do_flatten(Gogo* gogo, Named_object* function,
pa != this->args()->end();
++pa)
{
+ if ((*pa)->is_error_expression())
+ {
+ go_assert(saw_errors());
+ return Expression::make_error(loc);
+ }
if ((*pa)->is_nil_expression())
{
Expression* nil = Expression::make_nil(loc);
@@ -13391,6 +13396,7 @@ Array_index_expression::do_check_types(Gogo*)
if (array_type == NULL)
{
go_assert(this->array_->type()->is_error());
+ this->set_is_error();
return;
}