----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....