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
This commit is contained in:
Ian Lance Taylor 2017-07-20 19:53:54 +00:00
parent 2953b72fdd
commit 033e96a263
2 changed files with 5 additions and 2 deletions

View File

@ -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.

View File

@ -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.