This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: portable cdecl 'elliptic' function calls
- From: Fergus Henderson <fjh at cs dot mu dot OZ dot AU>
- To: Camm Maguire <camm at enhanced dot com>
- Cc: gcc at gcc dot gnu dot org, gcl-devel at gnu dot org, axiom-developer at nongnu dot org
- Date: Tue, 29 Jul 2003 11:29:27 +1000
- Subject: Re: portable cdecl 'elliptic' function calls
- References: <E19hFdA-0003kJ-00@intech19.enhanced.com>
On 28-Jul-2003, Camm Maguire <camm@enhanced.com> wrote:
> object
> c_apply_n(object (*fn)(), int n, object *x)
> {object res=Cnil;
> #if 1
> object *stack;
>
> if (!(stack=alloca(n*sizeof(*stack))))
> FEerror("Cannot allocate stack for elliptic call", 0);
> memcpy(stack,x,n*sizeof(*stack));
> res=fn();
This code is extremely non-portable.
I suggest you try using libffi, which is included in the GCC sources.
See libffi/README.
--
Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit
The University of Melbourne | of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.