summaryrefslogtreecommitdiffstats
path: root/include/obstack.h
diff options
context:
space:
mode:
authorcvs2svn <>2004-01-19 18:28:59 +0000
committercvs2svn <>2004-01-19 18:28:59 +0000
commit19a58aa1e1b6710a4fe969ea55492f5fb7a0771d (patch)
tree5f47f649884879464a64357ffa3ebad0ddb2819e /include/obstack.h
parent2cb060991433298d2f701adc7fc22adacf88eeb1 (diff)
downloadcygnal-19a58aa1e1b6710a4fe969ea55492f5fb7a0771d.tar.gz
cygnal-19a58aa1e1b6710a4fe969ea55492f5fb7a0771d.tar.bz2
cygnal-19a58aa1e1b6710a4fe969ea55492f5fb7a0771d.zip
This commit was manufactured by cvs2svn to create branchcagney_bigcore-20040122-branchpoint
'cagney_bigcore-20040122-branch'. Sprout from ezannoni_pie-20030916-branch 2003-09-16 01:47:54 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch' Cherrypick from master 2004-01-19 18:28:58 UTC Mark Kettenis <kettenis@gnu.org> '* common.h (NT_OPENBSD_IDENT): Define.': COPYING.NEWLIB ChangeLog Makefile.def Makefile.in Makefile.tpl config-ml.in config/ChangeLog config/acinclude.m4 config/acx.m4 config/gettext.m4 configure configure.in gettext.m4 include/ChangeLog include/ChangeLog-9103 include/aout/ChangeLog include/aout/stab.def include/bfdlink.h include/coff/ChangeLog include/coff/ChangeLog-9103 include/coff/internal.h include/demangle.h include/dis-asm.h include/elf/ChangeLog include/elf/ChangeLog-9103 include/elf/common.h include/elf/frv.h include/elf/m32r.h include/elf/mips.h include/elf/mmix.h include/elf/ppc.h include/elf/sh.h include/elf/xtensa.h include/fibheap.h include/floatformat.h include/gdb/ChangeLog include/gdb/callback.h include/gdb/sim-frv.h include/hp-symtab.h include/obstack.h include/opcode/ChangeLog include/opcode/ChangeLog-9103 include/opcode/h8300.h include/opcode/m68k.h include/opcode/mips.h include/opcode/mmix.h ltconfig src-release
Diffstat (limited to 'include/obstack.h')
-rw-r--r--include/obstack.h40
1 files changed, 26 insertions, 14 deletions
diff --git a/include/obstack.h b/include/obstack.h
index d86d9f2c4..5496ff240 100644
--- a/include/obstack.h
+++ b/include/obstack.h
@@ -343,7 +343,7 @@ extern int obstack_exit_failure;
#endif
-#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
+#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = (achar))
#define obstack_blank_fast(h,n) ((h)->next_free += (n))
@@ -411,7 +411,7 @@ __extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + 1 > __o->chunk_limit) \
_obstack_newchunk (__o, 1); \
- *(__o->next_free)++ = (datum); \
+ obstack_1grow_fast (__o, datum); \
(void) 0; })
/* These assume that the obstack alignment is good enough for pointers or ints,
@@ -423,19 +423,28 @@ __extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
_obstack_newchunk (__o, sizeof (void *)); \
- *((void **)__o->next_free)++ = ((void *)datum); \
- (void) 0; })
+ obstack_ptr_grow_fast (__o, datum); })
# define obstack_int_grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (int) > __o->chunk_limit) \
_obstack_newchunk (__o, sizeof (int)); \
- *((int *)__o->next_free)++ = ((int)datum); \
+ obstack_int_grow_fast (__o, datum); })
+
+# define obstack_ptr_grow_fast(OBSTACK,aptr) \
+__extension__ \
+({ struct obstack *__o1 = (OBSTACK); \
+ *(const void **) __o1->next_free = (aptr); \
+ __o1->next_free += sizeof (const void *); \
(void) 0; })
-# define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr)
-# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
+# define obstack_int_grow_fast(OBSTACK,aint) \
+__extension__ \
+({ struct obstack *__o1 = (OBSTACK); \
+ *(int *) __o1->next_free = (aint); \
+ __o1->next_free += sizeof (int); \
+ (void) 0; })
# define obstack_blank(OBSTACK,length) \
__extension__ \
@@ -443,7 +452,7 @@ __extension__ \
int __len = (length); \
if (__o->chunk_limit - __o->next_free < __len) \
_obstack_newchunk (__o, __len); \
- __o->next_free += __len; \
+ obstack_blank_fast (__o, __len); \
(void) 0; })
# define obstack_alloc(OBSTACK,length) \
@@ -530,26 +539,29 @@ __extension__ \
# define obstack_1grow(h,datum) \
( (((h)->next_free + 1 > (h)->chunk_limit) \
? (_obstack_newchunk ((h), 1), 0) : 0), \
- (*((h)->next_free)++ = (datum)))
+ obstack_1grow_fast (h, datum))
# define obstack_ptr_grow(h,datum) \
( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
- (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum)))
+ obstack_ptr_grow_fast (h, datum))
# define obstack_int_grow(h,datum) \
( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
- (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum)))
+ obstack_int_grow_fast (h, datum))
+
+# define obstack_ptr_grow_fast(h,aptr) \
+ (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr))
-# define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr)
-# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
+# define obstack_int_grow_fast(h,aint) \
+ (((int *) ((h)->next_free += sizeof (int)))[-1] = (aptr))
# define obstack_blank(h,length) \
( (h)->temp = (length), \
(((h)->chunk_limit - (h)->next_free < (h)->temp) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
- ((h)->next_free += (h)->temp))
+ obstack_blank_fast (h, (h)->temp))
# define obstack_alloc(h,length) \
(obstack_blank ((h), (length)), obstack_finish ((h)))