aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2017-07-20 19:53:54 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2017-07-20 19:53:54 +0000
commit033e96a263c4fb14e25b40141552a3602d89cace (patch)
treeb96e4ead16411d6708a4ae393a9fc31ab1c07e9b /gcc
parent2953b72fdd6c7d812028a636dfadf1c0e89ca314 (diff)
downloadgcc-033e96a263c4fb14e25b40141552a3602d89cace.zip
gcc-033e96a263c4fb14e25b40141552a3602d89cace.tar.gz
gcc-033e96a263c4fb14e25b40141552a3602d89cace.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--gcc/go/gofrontend/expressions.cc5
2 files changed, 5 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index f6d7a00..5f624b4 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 597f0a0..96a0731 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.