From 033e96a263c4fb14e25b40141552a3602d89cace Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 20 Jul 2017 19:53:54 +0000 Subject: [PATCH] compiler: add explicit convert in Type_guard_expression::do_get_backend The current recipe in Type_guard_expression for creating a Bexpression performs a type conversion at the Type level, but doesn't invoke Backend::convert_expression to capture the conversion for the back end. Add code to create a BE type conversion operation. Reviewed-on: https://go-review.googlesource.com/50373 From-SVN: r250400 --- gcc/go/gofrontend/MERGE | 2 +- gcc/go/gofrontend/expressions.cc | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index f6d7a002cbf..5f624b4b795 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -3d9ff9bc339942922f1be3bef07c6fe2978ad81a +6572f7e35f962bdb8a7c174920dbb70350b96874 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 597f0a0daef..96a0731c222 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -14307,7 +14307,10 @@ Type_guard_expression::do_get_backend(Translate_context* context) Expression::convert_for_assignment(context->gogo(), this->type_, this->expr_, this->location()); - return conversion->get_backend(context); + Gogo* gogo = context->gogo(); + Btype* bt = this->type_->get_backend(gogo); + Bexpression* bexpr = conversion->get_backend(context); + return gogo->backend()->convert_expression(bt, bexpr, this->location()); } // Dump ast representation for a type guard expression. -- 2.30.2