Commit fc490e04 by Ian Lance Taylor

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
parent 52af3071
085ef4556ec810a5a9c422e7b86d98441dc92e86
960637781ca9546ea2db913e48afd7eccbdadfa9
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
......@@ -7821,8 +7821,10 @@ Builtin_call_expression::lower_make(Statement_inserter* inserter)
cap_arg);
mem = Expression::make_unsafe_cast(Type::make_pointer_type(et), mem,
loc);
call = Expression::make_slice_value(type, mem, len_arg->copy(),
cap_arg->copy(), loc);
Type* int_type = Type::lookup_integer_type("int");
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)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment