This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Ada in gcc-3.4.3 on x86_64
- From: Robert Dewar <dewar at adacore dot com>
- To: Dean Kolosiek <kolosiekweb04 at qwest dot net>
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 03 Jan 2005 20:34:06 -0500
- Subject: Re: Ada in gcc-3.4.3 on x86_64
- References: <1104797374.12314.197.camel@plato>
Dean Kolosiek wrote:
Ada could always set %al for all calls to C. It can be set either to the actual
number of registers or always to 8.
That would be unnecessary overhead to achieve something that is not supported
in any case.
An extension should not be necessary. From an Ada perspective it is supposed
to work with pragma Import (C, certainly if Ada and C are from the same vendor.
The Ada 95 LRM Annex B.3 Interfacing with C has a specific reminder on handling
variadic calls:
(12) A C function that takes a variable number of arguments can correspond
to several Ada subprograms, taking various specific numbers and types of
parameters.
The above is a note, which has no normative force whatsoever. Furthermore.
it says "can" which in standardeese means that this is an allowable
implementation. In some architectures, the calling sequences are radically
different, so it would be impsosible to "follow" the suggestion of this
note.
So, the LRM is saying that the proper approach is to use overloaded Ada
subprograms to call variadic C routines.
It is not saying that at all!