gcc varargs problem

whoosh whoosh777 at blueyonder.co.uk
Fri Aug 1 01:36:54 UTC 2008


all gcc's so far have accepted the following code,

until now using gcc on Fedora 9:


void f( va_list *pargs )
{
va_list args = *pargs ;
...
}

64 bit Fedora 9's gcc regards this as an error, all the other gcc's eg 
on 32 bit Fedora Core 3 have no problem with this.


I use this a lot in order to pass var args to another function.
eg I have recursive functions which take variable numbers of args
and redirect to user supplied functions to process those args.


for porting code I dont want to have to rewrite everything,


also the gcc gives endless signedness warnings because my
code uses 

unsigned char *

instead of

char *

for strings, I do that because I need to guarantee that chars are unsigned,

in order to avoid the ambiguity of EOF versus 255.





More information about the users mailing list