Re: [PATCH 1/3] do full type check in COPY_ARRAY and MOVE_ARRAY
- From
René Scharfe <l.s.r@web.de>
- Date
- Jan 1, 2023, 12:32 UTC
- Message-ID
- <269d85de-1448-0198-8251-9af898fedc67@web.de>
- In-Reply-To
- <xmqqzgb2fo8g.fsf@gitster.g>
Am 01.01.23 um 13:11 schrieb Junio C Hamano:
Show 20 quoted lines
> René Scharfe <l.s.r@web.de> writes: > >> On second thought, what do we gain by using __builtin_types_compatible_p >> here? Does it catch cases that the assignment check plus the element >> size check wouldn't? > > I was reacting to this part of an earlier message in the thread: > > Presumably we cannot catch > > int *ip; > unsigned *up; > > (0 ? (*(ip) = *(up), 0) : 0); > (0 ? (*(up) = *(ip), 0) : 0); > > with the approach? > > i.e. *ip and *up are of the same size. Would the assignment check > trigger?
Ah, right, __builtin_types_compatible_p returns 0 in this case and an assignment is silently allowed.
René