On 6/13/19 10:46 AM, Tom Tromey wrote:
"Jeff" == Jeff Law <l...@redhat.com> writes:

Jeff> I'd like to move C-alloca support to the ash heap of history.  But I'm
Jeff> not sure we can realistically do that.

Are there still platforms or compilers in use where it's needed?

For gdb I was planning to just remove these calls.

The only implementation I know about is Doug Gwyn's alloca.
A Google search returns a pointer to QNX CAR that documents it
with the following note:

 *  By default, alloca() is implemented as __builtin_alloca().
    If you compile with the -fno-builtin option, you'll use
    the libc version of alloca(), which is a cover for malloc()
    and behaves in a slightly different manner:
    -  It keeps track of all blocks allocated with alloca() and
       reclaims any that are found to be deeper in the stack than
       the current invocation. It therefore doesn't reclaim storage
       as soon as it becomes invalid, but it will do so eventually.
    -  As a special case, alloca(0) reclaims storage without
       allocating any. You can use this feature to force garbage
       collection.

The implementation details aren't important.  What matters is
that to call the library implementation one has to prevent GCC
from treating alloca as a built-in and eliminating the zero size
calls.

When the function is not treated as a built-in no warnings for
calls to it are issued and so no problem for us to solve.

Martin

http://www.qnx.com/developers/docs/qnxcar2/index.jsp?topic=%2Fcom.qnx.doc.neutrino.lib_ref%2Ftopic%2Fa%2Falloca.html

Reply via email to