compiler: correct condition for calling memclrHasPointers

When compiling append(s, make([]typ, ln)...), where typ has a pointer,
and the append fits within the existing capacity of s, the condition
used to clear out the new elements was reversed.

Fixes golang/go#47771

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/344189
This commit is contained in:
Ian Lance Taylor 2021-08-21 12:42:19 -07:00
parent 01b5038718
commit b7f84702b3
2 changed files with 2 additions and 2 deletions

View file

@ -1,4 +1,4 @@
e42c7c0216aec70834e8827174458aa4a50169fa
21b30eddc59d92a07264c3b21eb032d6c303d16f
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View file

@ -9350,7 +9350,7 @@ Builtin_call_expression::flatten_append(Gogo* gogo, Named_object* function,
ref2 = Expression::make_cast(uint_type, ref2, loc);
cond = Expression::make_binary(OPERATOR_GT, ref, ref2, loc);
zero = Expression::make_integer_ul(0, int_type, loc);
call = Expression::make_conditional(cond, call, zero, loc);
call = Expression::make_conditional(cond, zero, call, loc);
}
}
else