----Original Message---- >From: Andrew Pinski >Sent: 08 March 2005 16:13
> On Mar 8, 2005, at 10:59 AM, Nathan Sidwell wrote: > >> Bug 20375 is logged as a C++ bug, but it is a middle end >> bug that cannot be expressed in C. Here's a reduced testcase >> >> union U >> { >> void *m[7]; >> }; >> >> struct C; >> >> void f(struct C *c, float f, union U, ...) >> { } > > I almost want to say this is undefined as there is no way to get > at the varaidic arguments. > > > -- Pinski There was under varargs, which didn't require to pass a named argument to va_start; it's only with stdargs that it would be impossible. I suspect that this is the underlying reason for the code having developed this way: sometimes the first variadic arg is the last named arg (stdargs), sometimes it is the first arg _after_ the last named arg. cheers, DaveK -- Can't think of a witty .sigline today....