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.
Change-Id: I395b3ab9e8aa2c1413055f8df3d9a87b5a0d4ffa
Reviewed-on: https://go-review.googlesource.com/50373
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/go/expressions.cc b/go/expressions.cc
index 597f0a0..96a0731 100644
--- a/go/expressions.cc
+++ b/go/expressions.cc
@@ -14307,7 +14307,10 @@
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.