Update the code in Array_type::get_value_pointer that handles
"lvalue" context to look for both regular var expressions
and temp var expressions, since both can appear in array/slice
index expressions on the left hand side of assignments.
Reviewed-on: https://go-review.googlesource.com/46170
From-SVN: r249486
-a4b455aa584e0d6e362a88597f11bba1427088e2
+0b93af68feb0a4135e83dd9e6c11df1563d862a9
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
{
Temporary_reference_expression* tref =
array->temporary_reference_expression();
+ Var_expression* ve = array->var_expression();
if (tref != NULL)
{
tref = tref->copy()->temporary_reference_expression();
tref->set_is_lvalue();
array = tref;
}
+ else if (ve != NULL)
+ {
+ ve = new Var_expression(ve->named_object(), ve->location());
+ ve->set_in_lvalue_pos();
+ array = ve;
+ }
}
return Expression::make_slice_info(array,