On Fri, Jul 11, 2025 at 09:17:28PM +0200, Alejandro Colomar wrote: > Hi David, > > On Fri, Jul 11, 2025 at 06:43:43PM +0100, David Laight wrote: > > On Fri, 11 Jul 2025 01:23:49 +0200 > > Alejandro Colomar wrote: > > > > > Hi Linus, > > > > > > [I'll reply to both of your emails at once] > > > > > > On Thu, Jul 10, 2025 at 02:58:24PM -0700, Linus Torvalds wrote: > > > > You took my suggestion, and then you messed it up. > > > > > > > > Your version of sprintf_array() is broken. It evaluates 'a' twice. > > > > Because unlike ARRAY_SIZE(), your broken ENDOF() macro evaluates the > > > > argument. > > > > > > An array has no issue being evaluated twice (unless it's a VLA). On the > > > other hand, I agree it's better to not do that in the first place. > > > My bad for forgetting about it. Sorry. > > > > Or a function that returns an array... > > Actually, I was forgetting that the array could be gotten from a pointer > to array: > > int (*ap)[42] = ...; > > ENDOF(ap++); // Evaluates ap++ D'oh! That should have been ENDOF(*ap++). > Anyway, fixed in v6. > > > Cheers, > Alex > > -- > --