| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- #ifndef _ALLOCA_H
- #include <stdlib/alloca.h>
- # ifndef _ISOMAC
- #include <elf.h>
- #undef __alloca
- /* Now define the internal interfaces. */
- extern void *__alloca (size_t __size);
- #ifdef __GNUC__
- # define __alloca(size) __builtin_alloca (size)
- #endif /* GCC. */
- extern int __libc_use_alloca (size_t size) __attribute__ ((const));
- extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const));
- libc_hidden_proto (__libc_alloca_cutoff)
- #define __MAX_ALLOCA_CUTOFF 65536
- #include <allocalim.h>
- #if defined stackinfo_get_sp && defined stackinfo_sub_sp
- # define alloca_account(size, avar) \
- ({ void *old__ = stackinfo_get_sp (); \
- void *m__ = __alloca (size); \
- avar += stackinfo_sub_sp (old__); \
- m__; })
- #else
- # define alloca_account(size, avar) \
- ({ size_t s__ = (size); \
- avar += s__; \
- __alloca (s__); })
- #endif
- # endif /* !_ISOMAC */
- #endif
|