diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2008-06-24 01:42:31 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2008-06-24 01:42:31 +0000 |
commit | 190a9bd7ee25cd212923a48cae0cb390a96099bb (patch) | |
tree | 0cd6318463ccb586c88eabe8a770ff46194e4e44 | |
parent | 64e12224ea1e9814875db72e9bb328287cfb5e14 (diff) | |
download | gcc-190a9bd7ee25cd212923a48cae0cb390a96099bb.zip gcc-190a9bd7ee25cd212923a48cae0cb390a96099bb.tar.gz gcc-190a9bd7ee25cd212923a48cae0cb390a96099bb.tar.bz2 |
libiberty.h (XALLOCA, [...]): New.
* libiberty.h (XALLOCA, XDUP, XALLOCAVEC, XDUPVEC, XALLOCAVAR,
XDUPVAR, XOBNEWVEC, XOBNEWVAR): New.
From-SVN: r137058
-rw-r--r-- | include/ChangeLog | 5 | ||||
-rw-r--r-- | include/libiberty.h | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index 2ace7e0..bf1af8d 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2008-06-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * libiberty.h (XALLOCA, XDUP, XALLOCAVEC, XDUPVEC, XALLOCAVAR, + XDUPVAR, XOBNEWVEC, XOBNEWVAR): New. + 2008-03-24 Ian Lance Taylor <iant@google.com> * sha1.h: New file, from gnulib. diff --git a/include/libiberty.h b/include/libiberty.h index 6ea8761..e3eca9d 100644 --- a/include/libiberty.h +++ b/include/libiberty.h @@ -320,26 +320,34 @@ extern double physmem_available (void); /* Scalar allocators. */ +#define XALLOCA(T) ((T *) alloca (sizeof (T))) #define XNEW(T) ((T *) xmalloc (sizeof (T))) #define XCNEW(T) ((T *) xcalloc (1, sizeof (T))) +#define XDUP(T, P) ((T *) xmemdup ((P), sizeof (T), sizeof (T))) #define XDELETE(P) free ((void*) (P)) /* Array allocators. */ +#define XALLOCAVEC(T, N) ((T *) alloca (sizeof (T) * (N))) #define XNEWVEC(T, N) ((T *) xmalloc (sizeof (T) * (N))) #define XCNEWVEC(T, N) ((T *) xcalloc ((N), sizeof (T))) +#define XDUPVEC(T, P, N) ((T *) xmemdup ((P), sizeof (T) * (N), sizeof (T) * (N))) #define XRESIZEVEC(T, P, N) ((T *) xrealloc ((void *) (P), sizeof (T) * (N))) #define XDELETEVEC(P) free ((void*) (P)) /* Allocators for variable-sized structures and raw buffers. */ +#define XALLOCAVAR(T, S) ((T *) alloca ((S))) #define XNEWVAR(T, S) ((T *) xmalloc ((S))) #define XCNEWVAR(T, S) ((T *) xcalloc (1, (S))) +#define XDUPVAR(T, P, S1, S2) ((T *) xmemdup ((P), (S1), (S2))) #define XRESIZEVAR(T, P, S) ((T *) xrealloc ((P), (S))) /* Type-safe obstack allocator. */ #define XOBNEW(O, T) ((T *) obstack_alloc ((O), sizeof (T))) +#define XOBNEWVEC(O, T, N) ((T *) obstack_alloc ((O), sizeof (T) * (N))) +#define XOBNEWVAR(O, T, S) ((T *) obstack_alloc ((O), (S))) #define XOBFINISH(O, T) ((T) obstack_finish ((O))) /* hex character manipulation routines */ |