/* alloca.h: Stack based allocation */ /* Copyright 1999 ARM Limited. All rights reserved */ /* * RCS $Revision$ * Checkin $Date$ * Revising $Author: drodgman $ */ #ifndef __alloca_h #define __alloca_h #define __ARMCLIB_VERSION 5060044 #ifndef __ALLOCA_DECLS #define __ALLOCA_DECLS #ifdef __cplusplus namespace std { extern "C" { #endif /* __cplusplus */ #if defined(__cplusplus) || !defined(__STRICT_ANSI__) /* unconditional in C++ and non-strict C for consistency of debug info */ #if __sizeof_ptr == 8 typedef unsigned long size_t; /* see */ #else typedef unsigned int size_t; /* see */ #endif #elif !defined(__size_t) #define __size_t 1 #if __sizeof_ptr == 8 typedef unsigned long size_t; /* see */ #else typedef unsigned int size_t; /* see */ #endif #endif #undef NULL #define NULL 0 /* see */ #define alloca(n) (__builtin_alloca(n)) /* Allocate a block of at least size bytes. Returns a pointer to the first * word, or NULL if the allocation isn't successful. * Deallocation of all blocks allocated in a function is done on return. * Alloca can not be used as a function pointer. */ #ifdef __cplusplus } /* extern "C" */ } /* namespace std */ #endif /* __cplusplus */ #endif /* __ALLOCA_DECLS */ #ifdef __cplusplus #ifndef __ALLOCA_NO_EXPORTS using ::std::size_t; #endif #endif /*__cplusplus*/ #endif /* end of alloca.h */