This is the mail archive of the gcc-patches@gcc.gnu.org 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]

Re: Bootstrap failure (Re: [Patch] Java: Prepare for %q, %< and %>in diagnostic messages)


I wonder if it is it legal to declare a va_list which is an array, and even if it is, why not changing it to an array-within-a-struct.

That would change the ABI.


If you pass va_list by value to say vprintf and the arch in question
doesn't pass structures by reference, it is different if va_list
is an array (in which case you pass its address) or if it is a structure
with array inside (in that case you pass the structure).

Sorry, I omitted an important detail: according to s390.c, "the specifies that only structures of size 1, 2, 4, or 8 bytes are passed by value, all other structures (and complex numbers) are passed by reference". The same in rs6000.c, where it says that "aggregates and long double are passed by reference".


Paolo


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