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