[kaffe] Re: inlining sysdepCallMethod for m68k-linux

Chris Gray chris at kiffer.eunet.be
Tue Apr 27 11:04:02 PDT 2004


Dali,

In the *BSD world, alloca() is regarded as a liability. Here's the FreeBSD 
man page:

>>>>>>>>

ALLOCA(3)              FreeBSD Library Functions Manual              ALLOCA(3)

NAME
     alloca - memory allocator

LIBRARY
     Standard C Library (libc, -lc)
 
SYNOPSIS
     #include <stdlib.h>
 
     void *
     alloca(size_t size);
 
DESCRIPTION
     The alloca() function allocates size bytes of space in the stack frame of
     the caller.  This temporary space is automatically freed on return.
 
RETURN VALUES
     The alloca() function returns a pointer to the beginning of the allocated
     space.  If the allocation failed, a NULL pointer is returned.
 
SEE ALSO
     brk(2), calloc(3), getpagesize(3), malloc(3), realloc(3)
 
BUGS
     The alloca() function is machine dependent; its use is discouraged.
 
FreeBSD 4.6                      June 4, 1993                      FreeBSD 4.6

<<<<<<<<

If you're using alloca() to mean "subtract N bytes from the stack pointer, 
and tell me where it points now" then you have to realise that you're 
assuming a _lot_ about how the stack is used.  Especially in an inlined 
function!

All the best

Chris

-- 
Chris Gray                    chris at kiffer.eunet.be          +32 477 599 703




More information about the kaffe mailing list