Subject: Re: va_list pointers, bad(?) gcc code
To: Frank van der Linden <fvdl@netbsd.org>
From: Michal Ludvig <mludvig@suse.cz>
List: tech-toolchain
Date: 11/11/2003 11:03:25
Frank van der Linden told me that:

> (no include files used to make it OS
> independent):

That might be the problem. Try to replace

> #define va_list __builtin_va_list
> #define va_start __builtin_va_start
> #define va_arg __builtin_va_arg
> #define va_end __builtin_va_end

With

#include <stdarg.h>

and

> void
> vfoo1(const char *a, va_list l)
> {
> 	vfoo2(a, &l);
> }

with

void
vfoo1(const char *a, va_list l)
{
         va_list l2;
         va_copy (l2, l);
         vfoo2(a, &l2);
}

Now it should work...

Michal Ludvig
-- 
sUsE cR, s.R.o             mludvig@suse.cz | Cray is the only computer
(+420) 296.545.373      http://www.suse.cz | that runs an endless loop
Personal homepage http://www.logix.cz/~mic | in just four hours.