compiler: use int type for len & cap in slice value
Slice value expression has backend type a struct of a pointer and two ints. Make sure the len and cap are converted to int when creating slice value expression. Reviewed-on: https://go-review.googlesource.com/c/156897 From-SVN: r267745
This commit is contained in:
parent
52af30719f
commit
fc490e0478
@ -1,4 +1,4 @@
|
|||||||
085ef4556ec810a5a9c422e7b86d98441dc92e86
|
960637781ca9546ea2db913e48afd7eccbdadfa9
|
||||||
|
|
||||||
The first line of this file holds the git revision number of the last
|
The first line of this file holds the git revision number of the last
|
||||||
merge done from the gofrontend repository.
|
merge done from the gofrontend repository.
|
||||||
|
@ -7821,8 +7821,10 @@ Builtin_call_expression::lower_make(Statement_inserter* inserter)
|
|||||||
cap_arg);
|
cap_arg);
|
||||||
mem = Expression::make_unsafe_cast(Type::make_pointer_type(et), mem,
|
mem = Expression::make_unsafe_cast(Type::make_pointer_type(et), mem,
|
||||||
loc);
|
loc);
|
||||||
call = Expression::make_slice_value(type, mem, len_arg->copy(),
|
Type* int_type = Type::lookup_integer_type("int");
|
||||||
cap_arg->copy(), loc);
|
len_arg = Expression::make_cast(int_type, len_arg->copy(), loc);
|
||||||
|
cap_arg = Expression::make_cast(int_type, cap_arg->copy(), loc);
|
||||||
|
call = Expression::make_slice_value(type, mem, len_arg, cap_arg, loc);
|
||||||
}
|
}
|
||||||
else if (is_map)
|
else if (is_map)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user