This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

new gcc __attribute__ for linear varargs


I'm currently using a modified version of gcc 2.95.3 which has
support for linear varargs. The OS I'm using (MorphOS, for more info) runs on PPC processors and
uses the svr4 ABI. Since it has the ability to run both PPC
native executables and Amiga m68k executables in a mixed environment,
we added an attribute to gcc to be able to use the common 68k API
for varargs (so that old stuff doesn't break). 

For example:

void foobar(int bla, ...);

would be declared as:

void foobar(int bla, ...) __attribute__((varargs68k));

Then, to get the linear array from a PPC native app, we simply do:

va_list va;
va_start(va, bla);

and it's in va->overflow_arg_area

Just like if we would use &bla + 1 on a 68k system. There's more
info on how the whole thing works at

Now, since we would like to eventually contribute our changes to
gcc 3.x I was wondering if it would be possible to agree on a name
for that attribute as "varargs68k" might be a bit obscure. Would
something like "vararg_linear" be better ?

David Gerber

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]