diff options
| -rw-r--r-- | gcc/go/gofrontend/gogo.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/gogo.cc b/gcc/go/gofrontend/gogo.cc index 39072e0..b278711 100644 --- a/gcc/go/gofrontend/gogo.cc +++ b/gcc/go/gofrontend/gogo.cc @@ -3126,7 +3126,10 @@ Variable::type_from_tuple(Expression* expr, bool report_error) const else if (expr->receive_expression() != NULL) { Expression* channel = expr->receive_expression()->channel(); - return channel->type()->channel_type()->element_type(); + Type* channel_type = channel->type(); + if (channel_type->is_error_type()) + return Type::make_error_type(); + return channel_type->channel_type()->element_type(); } else { |
