diff options
author | cvs2svn <> | 2004-01-19 18:28:59 +0000 |
---|---|---|
committer | cvs2svn <> | 2004-01-19 18:28:59 +0000 |
commit | 19a58aa1e1b6710a4fe969ea55492f5fb7a0771d (patch) | |
tree | 5f47f649884879464a64357ffa3ebad0ddb2819e /include/obstack.h | |
parent | 2cb060991433298d2f701adc7fc22adacf88eeb1 (diff) | |
download | cygnal-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.h | 40 |
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))) |