compiler: avoid orphaning Bexpressions when processing conversions

The method Type_conversion_expression::do_get_backend was (in some
circumstances) creating a Bexpression for the source expression of the
conversion and then throwing it away before using it. Fix up this
method to insure that the call to get_backend() on the source
expression is only made when the result will be used.

Change-Id: I8424ed358a0455e72aa25ee9c3642c70404db9f5
Reviewed-by: Cherry Zhang <>
Reviewed-by: Ian Lance Taylor <>
1 file changed